Amazon redshift 从多个输入文件填充表格

我有以下场景:几个csv文件包含同一个表的不同列。我可以用某种方式填充红移表吗?理想情况下,可以借助数据管道吗?我找不到实现这一目标的方法。有人能帮忙解决这个问题吗?如果可能的话,可以举个简单的例子。您可以在加载csv文件之前将其转换为json格式。然后在文件中找不到特定的Json标记:copy只会将其删除。据我所知,在copy语句的情况下,它将允许您使用清单文件将多个文件加载到一起,但具有相同的列顺序。如果列顺序不同或列数不同,您可能希望分别加载它们。

Amazon redshift 以红移方式更改现有表中的diststyle。可能吗?

我不想删除一个表并将其重新创建为diststyle,而是想更改表的diststyle,这可能吗 谢谢 似乎不可能。从旧表重新创建填充表更容易。我发现的最简单的方法是使用以下方法: BEGIN; CREATE TABLE mytable_tmp DISTSTYLE ALL -- You can also use DISTKEY(some_column) or DISTSTYLE EVEN AS SELECT * FROM mytable; DROP TABLE mytable; ALTER T

Amazon redshift 如何从红移字符串中提取西里尔字母或拉丁字符?

如果我在红移中有一个像‘Picá’这样的字符串,我怎么能只提取‘a’ 尝试获取一列字符串中的外来字符计数。如果需要非ascii字符计数,可以使用 select regexp_count('Picá', '[^\u0000-\u007F]'); 它返回值1 如果你真的想要一个拉丁或西里尔字母的计数,那么你可能必须恢复到红移UDF。你能更具体地说,你如何定义外来字符?与什么无关?主要是[A-Z]、[A-Z]、[0-9]和标点符号之外的任何东西。更具体地说,如果你看这里:。它是拉丁或西里尔字母表中的

Amazon redshift 将条件传递给红移UDF';s

我想使用红移中的用户定义函数在红移中实现mySQL IF函数等效。语法如下: IF(条件、值如果为真、值如果为假) 是否可以将条件/表达式传递给Redshift UDF?不能将表达式传递给UDF,但可以传递字符串。然后可以用python对其进行计算 然而,更简单的方法是使用case语句 case {condition} then {value_if_true} else {value_if_false} end case语句是SQL中的标准语句(如果不是,则为wheras) 我知道什么时候应该

Amazon redshift postgresql错误:值太长,无法更改类型字符(256)

我以前也研究过其他解决方案,但从解释中找不出问题所在。我正在尝试运行一个python脚本,其中数据从oltp MySQL数据库(AWS RDS)加载到AWS Redshift上的olap数据库。我已将我的表定义为红移,如下所示: create_product = ("""CREATE TABLE IF NOT EXISTS product ( productCode varchar(15) NOT NULL PRIMARY KEY, productN

Amazon redshift AWS红移模式和表以及组名的列表

我正在寻找SQL代码,它可以列出模式名和表名以及组名。这是为了找出哪个模式名或表名属于哪个组。通过下面的代码,我可以很容易地找到哪个用户在哪个组中,而不是模式名和表名。有没有办法将pg_名称空间与pg_组连接起来 SELECT usename, groname FROM pg_user, pg_group WHERE pg_user.usesysid = ANY(pg_group.grolist) AND pg_group.groname in (SELECT DISTINCT pg_grou

Amazon redshift 是';复印件';是否在Amazon红移原子中使用命令?

对于AmazonRedshift,通常使用“copy”命令从S3加载数据。我想知道这个命令是不是原子的。例如,在某些例外情况下,是否可能只将部分数据文件加载到红移表中?您可以在加载数据之前使用NOLOAD标记检查错误。这是一种更快的验证数据格式的方法,因为它不尝试加载任何数据,只需解析数据 您可以使用MAXERROR标志定义您愿意容忍的错误数量 如果您的计数超过了MAXERROR计数,则加载将失败,并且不会添加任何记录 请参阅此处的详细信息:带有默认选项的复制命令是原子的。如果文件包含可能导致加

Amazon redshift 正在红移中加载json数组的内容

我正在设置红移并从mongo导入数据。我已经成功地将json路径文件用于一个简单的文档,但现在需要从包含数组的文档导入 { "id":123, "things":[ { "foo":321, "bar":654 }, { "foo":987, "bar":567 } ] } 如何将上述内容加载到如下表中: select * from things;

Amazon redshift 在红移中将bigint数据类型转换为时间戳(随后转换为日期)

我需要将存储在bigint列中的值转换为日期字段。转换的第一步涉及将其转换为时间戳,然后使用TRUNC方法将此列转换为日期值。 但是,我的查询在将bigint值转换为timestamp时失败。 我得到的错误是:- Amazon无效操作:无法将类型bigint强制转换为没有时区的时间戳 我现在尝试的查询是这样的:- 从事件限制1中选择ts::timestamp 如果您从POSIX时间戳开始,并试图获得一个时区感知的datetime值,那么您将需要提供一个时区-即使您以后想要截断时间部分。我不熟悉红

Amazon redshift 是否可以在不将更改传播到从属视图的情况下以红移方式重命名表?

我注意到,如果以红移方式重命名一个表,那么新名称将自动应用于基于该表的所有视图 是否有办法防止这种行为,使视图定义包含旧表名?Mihai 这是一个极好的问题 当您手动执行表维护并且希望在不影响现有从属对象的情况下移动/创建/重命名表时,您正在搜索的功能将非常有用 对你的问题的简短回答是“不”。没有办法防止红移中出现这种行为 在“ALTERTABLE”语句或“CREATEVIEW”语句上,都无法防止在基础表更改时更改依赖视图 但是 在更改名称之前,您可以很容易地获得视图的DDL,并且可以在准备就绪

Amazon redshift 0行占用磁盘空间的红移表

我有许多表,其中所有行都已从中删除。然后我在这些表上运行了一个真空吸尘器,但它们仍然显示为占用磁盘空间。你知道为什么会这样吗。谢谢。如果要删除红移表中的所有行,请执行截断操作,而不是删除操作 此外,如果您不打算保留该表,或者您知道永远不会再填充它们,只需删除它们。记住,放下一张桌子会带走所有的特权和授权 说到你的问题,我也遇到过这种情况。我希望您正在查询系统表以获得表大小的近似值。给一些时间红移以稳定,然后再次运行查询以检查磁盘空间。该表占用的空间应为0,或者该表不希望出现在结果集中,这表示已释

Amazon redshift 基准红移查询

我想知道执行查询需要多长时间,这样我就可以看到我的更改是否改善了运行时 简单地为整个查询的执行计时是不合适的,因为这还考虑了在执行队列中等待的时间(高度可变) Redshift提供的表包含队列等待时间和执行时间的单独列。但是,我的查询不能可靠地显示在此表中。例如,如果我多次执行同一个查询,STL_WLM_查询中相应行的数量通常比重复的数量小得多。有时,但并非总是,无论我多久运行一次查询,都只生成一行。我怀疑正在进行缓存 有没有更好的方法来确定红移查询的实际执行时间,或者至少有人能解释一下在什么情

Amazon redshift 我想在将数据从S3存储桶复制到红移表时存储文件夹名

我试图将数据从S3 bucket加载到redshift表中,表中有一列作为源id,我想将源文件所在的文件夹名存储到该列中 实际上,我在S3 bucket中有多个文件夹,每个文件夹中有一个文件,我使用红移中的copy命令将所有文件移植到同一个表中,以便识别数据来自哪个文件夹,所以我需要将文件夹名称和数据存储到红移表中,我在表中有单独的列作为源id 任何人都可以帮助我。如果您使用的是红移复制命令,那么除了导入每个文件夹(例如,作为临时表)然后手动将值设置为还原文件夹的值之外,您别无选择。对每个文件夹

Amazon redshift 红移不支持的相关子查询备选方案

我对使用窗口函数没有太多经验,因此我很好奇除了执行连接之外,是否还有其他执行以下操作的方法: SELECT se.user_id, se.session_id FROM session_events AS se WHERE se.session_order < (SELECT DISTINCT se1.session_order FROM session_events AS se1 WHERE se.user_id = se1.user_id AND se1.e

Amazon redshift 在红移中为列使用dist键时,数据将如何分布

我是红移新手。我不知道哪一列适合设置分发密钥以提高查询性能。如何找到最好的专栏?以及如何使用dist key将数据分布在节点上 这是一个非常广泛的问题,很难给出你的简短答案。无论如何,让我在这里总结一下,在红移中有两种类型的键,distkey和sortkey。 distkey—表的distkey是将其分发到每个节点的列。此列中具有相同值的行保证位于同一节点上 sortkey—表的sortkey是在每个节点中按其排序的列。它应该应用于您通常按顺序执行的列 让我们在这里关注distkey 分发密钥可

Amazon redshift 如何删除已连接用户的Redshfit数据库

为了删除数据库,是否可以删除与红移的活动连接 在我的开发环境中,我发现自己非常频繁地重新创建模式,如果碰巧有一些游离的进程连接到数据库,这将失败。我知道Postgresql可以使用pg\u terminate\u backend来实现这一点,但这在红移上似乎不起作用 从STV_SESSIONS表中删除行也不是一个选项 有什么想法吗? 查找当前正在运行的查询的PID select pid from stv_recents where status = 'Running'; 并使用终止所有查询

Amazon redshift 红移-插入到目标时截断字符串

我有两张桌子。表A是一个操作存储,表B是目标表 表A DDL: A列Varchar(1000) 表B DDL: B列Varchar(250) 因此,我尝试插入截断列A,如下所示: 插入表B(选择左侧(表a.a列,249)),但它给出了错误 “错误:字符类型的值太长” 我也尝试过使用子字符串来截断文本,但没有效果。请注意,A列中也有阿拉伯文文本,但在表A中没有问题 如有任何帮助/建议,将不胜感激 问题在于,由于红移是Unicode DB,每个阿拉伯符号占用的字节数超过1个。varchar定义以字节

Amazon redshift 从逗号分隔列中查找最后一个值

我在给定的列中有一个逗号分隔的文本。有没有办法得到最后一个、倒数第二个和倒数第三个值 select mnumber from mytable limit 2; x, y, z, 1, 2, 3 a, b, c, d, e, f, g, h, 7, 8, 9 从该列返回的值应该如下所示 col3, col2 col1 1 2 3 7 8 9 但这不起作用: split_part(mnumber,',',-1) as last_col 如果split_part函数中允许负值,它将返回我需要的

Amazon redshift 高效的红移工作台设计

我有一个红移集群,只有一个dc1.1大型节点。我已经将数据写入其中,每天有5000万条记录,格式为时间戳、用户ID和项目ID。项目ID(varchar)是唯一的,用户ID(varchar)不是唯一的,时间戳(timestamp)不是唯一的 在我的大约110m记录的红移数据库中,如果我有一个没有排序键的表,搜索单个项目ID大约需要30秒 如果我有一个表,它的条目ID上有一个排序键,那么我得到的单个条目ID搜索时间大约为14-16秒 如果我有一个表,其中包含所有三列的交错排序键,则单个项目ID的搜索

Amazon redshift 红移-未找到行时出现raiseerror?

我试图在redshift->检查查询是否返回任何记录中实现以下功能,如果是,则运行另一个查询并返回结果,如果不是,则引发错误并使主查询失败。以下是它在sql server中的工作方式: IF exists (SELECT * from [TABLE] where COLUMN1 = 'ABC') SELECT [COLUMN2] from [TABLE] where COLUMN1 = 'ABC' ELSE RAISERROR ('Error',16, 1); 我在使

Amazon redshift 无超级用户访问权限的红移部署

如果不使用管理员用户(具有超级用户访问权限)将更改部署到红移群集,则希望创建一个组,该组将具有部署更改的权限,并且可以将该组分配给部署团队。 但是,如果不成为视图的所有者或超级用户,就无法修改视图。是否有任何方法可以在不授予超级用户对开发/devops团队的访问权的情况下完成部署(包括更改表/更新现有视图-而不更改其所有权)?您可以从任何用户创建视图/表,然后使用grant ALL ON table\u或\u view\u name向这些视图/表授予ALL权限,以部署用户或组。您可以从任何用户创

Amazon redshift Amazon红移和删除性能

我有两个红移的表格-t1和t2 t2已包含约30万条记录 t1包含约10000条记录 我需要根据id字段删除t1中已经存在于t2中的所有记录 为此,我将执行以下查询(其中一个): 或 或 在我对真实数据执行此操作之前,我想问一下——从性能角度来看,在红移中使用此类查询是一个好主意,还是有其他(更好的)技术用于此类情况?执行此操作的最大性能因素将是t1和t2的分布,而不是查询结构。这些表是否基于列id的键分布 尽管如此,我还是建议您使用“delete-using”结构。所有这些查询都将t1和t2连

Amazon redshift 暂时关闭redshift以减少账单

亚马逊在红移账单上说了以下几点 节点使用小时数按数据仓库群集在可用状态下运行的每小时计费。如果不再希望为数据仓库群集收费,则必须终止该群集,以避免为额外的节点小时数计费 这意味着,如果我只是创建了一个集群,无论是否使用它,我都将被24/7计费,因为集群没有任何类似“挂起”的状态。有没有一种方法可以在不使用时关闭整个Redshift服务器,这样我就只需要在需要使用集群的时间内付费 编辑:根据Tomasz的回复,听起来如果我想在周末关闭集群,就像在周五晚上备份整个数据库,在周日晚上恢复一样。这听起来

Amazon redshift 红移:如何生成一系列数字而不在红移(Postgres 8.0.2)中创建名为“数字”的表?

我需要为一个报告创建一个空的时间表序列,这样我就可以将多个表中的join活动留给它。一天中的每个小时不一定都有数据,但我希望它在不活动时显示null或零,而不是忽略一天中的那个小时 在后期版本的Postgres post 8.0.2中,这在以下几个方面都很简单: 选择unnestarray[0,1,2,3,4…]作为数字 或 交叉连接选择按小时生成_系列 从generate_seriesnow::timestamp, 现在::时间戳+间隔“1天”, “1小时”:间隔 日期系列 Redshift可

Amazon redshift 用红移在临时表中编码

我使用临时暂存表TempStaging来进行一些合并。主表MainTable的某些列中的数据用lzo编码,比如C1。合并输出返回MainTable 为了确保TempStaging使用相同的dist键,我使用createtable创建它。由于某些原因,我不能使用createtable作为 那么我应该把C1列编码成lzo吗?还是不编码?红移会不会短路[在从MainTable选择时解码,在写入TempStaging时编码,在从Tentable进行合并时解码,在写入MainTable时再次编码] 因为我

Amazon redshift 如何在AWS红移中使现有列不为NULL?

我已经通过glue job动态创建了一个表,它成功地运行良好。但根据新的要求,我需要添加一个新的列,该列生成唯一的值,并且应该是红移中的主键。 我已经使用rownum()函数实现了同样的功能,它工作得很好。但最新的要求是特定列应该是主键 When I try to do that, it asks the column to have not null. Do you know how to make the column not null dynamically through glue jo

Amazon redshift Amazon红移获取表的标识列列表

如何在Amazon Redshift中获取表的标识列列表?使用系统的表 谢谢。该表包含有关表和列的信息: select * from pg_table_def where tablename = 't2'; schemaname|tablename|column| type | encoding | distkey |sortkey| notnull ----------+---------+------+---------+----------+---------+-------+--

Amazon redshift 删除表后通过红移回收磁盘空间

删除表后,redshift是否会回收可用磁盘空间,或者我们是否需要运行vaccum。删除表释放空间 若您正在对表的行执行删除操作,那个么应该触发vaccumm delete only命令 红移时升降台无需启动真空 激发下面的命令以检查表放置前后的数据库大小,查看是否获得空间 select sum(mbytes)/1024 as db_size_in_gb, database from ( select trim(pgdb.datname) as Database, trim(a.name) as

Amazon redshift 如何在红移中查看UDF补助金

团队, 您能否帮助我获取sql查询以了解以下内容: 1) 我将“在语言PLPYTHONU上的用法”授予数据库TESTDB1上的TESTUSER1。如何确定该用户是否在特定的DB testdb1中被授予此权限 testdb1=>grant USAGE ON LANGUAGE PLPYTHONPU to testuser1; 2) 我将一个函数的执行权限授予TESTUSER1。如何查找此用户是否在特定的db testdb1中授予此权限 testdb1=> grant execute o

Amazon redshift 红移:Delete语句不允许表别名?

获取以下代码以尝试清除表中的重复项: DELETE FROM events a WHERE a.ctid <> (SELECT min(b.ctid) FROM events b WHERE a.eventid = b.eventid and left(b.eventtimestamp,10)='2016-01-15'); 它反对这个别名。我试过不同的名字,我试过插入AS关键字,都没有

Amazon redshift AWS红移锁定写入和不读取

在允许其他连接执行SELECT操作的事务中,如何对表执行锁写入 执行此操作时: BEGIN; LOCK TABLE my_table; <very long commands> 开始; 锁桌我的桌子; 其他连接无法执行从my_表中选择计数(*)之类的选择操作 我想要实现的是在我写的时候阻止其他人写,而不阻止他们读。在事务块中锁定表,将不允许其他用户/会话读或写该表。 如果希望事务是只读的,可以使用以下语法 BEGIN [READ ONLY]; <very long comm

Amazon redshift 使用ApacheNIFI将数据从vertica传输到Redshift

我想使用ApacheNIFI将数据从vertica传输到redshift。 我需要设置哪些处理器和配置?如果Vertica和Redshift有“性能良好”的JDBC驱动程序,您可以为每个驱动程序设置一个,然后设置一个SQL处理器,例如,或(后者生成SQL以在ExecuteSQL中使用)。这些将把您的记录转换成Avro格式,然后(在NiFi 1.2.0之前)您可以使用->->将您的记录插入红移 在NiFi 1.2.0中,您可以使用设置用于PutDatabaseRecord的AvroReader。然

Amazon redshift 在红移中执行表交换的最佳实践

我们正在红移集群上运行一些每小时一次的脚本,这些脚本为数据使用者构建汇总表。组装暂存表后,脚本将运行一个事务,删除现有表并将其替换为暂存表,如下所示: BEGIN; DROP TABLE IF EXISTS public.data_facts; ALTER TABLE public.data_facts_stage RENAME TO data_facts; COMMIT; ALTER TABLE public.data_facts RENAME TO data_facts_old; AL

Amazon redshift 红移创建不带基表的视图

我试图在我们的亚马逊红移中创建视图。问题是,一些基表还没有由我的合作伙伴创建,所以我希望在没有它们的情况下创建视图 我发现Oracle有一个FORCE关键字来解决这个问题。然而,红移似乎没有它(或者我用错了) 创建或替换强制视图…返回语法错误 如何在没有基表的情况下创建视图?您需要创建“没有模式绑定”的视图 这将创建一个“后期绑定视图”,它不检查底层数据库对象,例如表和其他视图 请参阅此处的AWS文档请从标题中删除PostgreSQL,因为它与此问题的红移完全不同。

Amazon redshift 如何在红移psql查询中使用now函数?

红移表不支持每个信息消息一个指定类型或函数 我犯了这个错误。当它通过PyCharm发生时,我无法理解信息的另一部分。但当我直接在终端中运行它时,我收到了一条消息,就在错误出现之前,它说INFO:Function now not supported 似乎我现在可以使用,但只能在静态查询中使用。如果我在查询中包含一个数据库表,那么它不起作用 这项工作: WITH cteDates AS ( SELECT (now() - interval '7 da

Amazon redshift 在AWS红移中,查询取消如何完全自动化?

在AWS红移中,我可以使用pg\u terminate\u后端(pid)终止查询命令 问题是,只有在通过查询stv_recents表运行查询后,才能获得pid 这给自动化带来了一个问题——如何以编程方式终止查询(可能是因为它超出了时间限制)?就我所见,我可以通过过滤查询、用户和开始时间列(在pid中)来获得pid。问题是,所有查询都来自应用程序用户(同一用户),有些用户可能执行相同的查询 是否有任何方法可以在执行查询时/之后命中某种类型的回调并获取pid?否则,如何自动取消查询 提前感谢。我已经

Amazon redshift Amazon红移授权-即使用户已授权架构中的所有表,也无法访问新表

在AmazonRedshift中有一个有趣的情况,我有一个用户X,他对模式公共中的所有表都授予select权限,但是一旦创建了一个新表,这个权限似乎就不适用于新表。这是正常的行为吗?如果是,如何处理它,以保持模式级别的授权。谢谢。这是正常的行为。默认情况下,只有对象所有者/超级用户有权使用该对象 您可以将grant命令添加到create table语句中,并为用户授予所需的权限。在红移中,表和视图不会自动继承其父架构的权限。新创建的表只能由创建它们的用户和超级用户访问 在最近的一个红移补丁中,实

Amazon redshift 我可以在本地运行Google colaboratory吗?

在我的公司,我们的大多数数据库都存储在红移服务器上,只有连接到公司VPN才能访问这些服务器 此外,我们的大多数内部公司软件包只能与VPN一起运行。因此,我想创建google colab文档,我可以与同事共享这些文档,但这些文档依赖于本地安装的软件包和到VPN的活动连接 这可能吗/有解决方法吗?Colab现在支持使用本地后端执行!您可以按照以下说明开始操作: 默认情况下,Colab将所有代码单元输出存储在Google Drive中。如果您的本地连接将访问敏感数据,并且您希望忽略这些数据,则可以在连

Amazon redshift 删除组(如果存在)<;集团>;

红移中的命令没有IF EXISTS子句 这很奇怪,因为DROP USER确实有这样一个子句 我如何才能清晰地编写创建用户和组的脚本,如果存在组,则删除这些组?您如何编写脚本?您的脚本语言是否包含逻辑(IF)或错误处理?为什么你不能只运行DROP GROUP?如果我只运行DROP GROUP,我有时会收到一条消息说该组不存在。如果在上一次运行脚本时删除了组,但脚本随后失败,我必须再次运行,则可能会发生这种情况。是的,但是如果DROP group返回错误,是否会导致特定问题?即使脚本语言出现错误,它

Amazon redshift 是否可以在红移中创建多方案视图?如何创建?

我有红移的多路径方案,它们彼此相似 基本上,为每个新客户创建一个新方案 在每个方案中,我都有products表:product\u id、product\u name 我有一个视图显示了scheme\u name和scheme\u id 我需要创建一个视图,该视图将显示所有产品标识和产品名称,并在其旁边显示方案标识 因此,在最后,我将有一个视图,其中包含来自所有方案的所有产品和方案id,以便我知道它属于哪一个 如何为其创建动态视图?在数据库中,先指定模式,然后指定“.”再指定表 e、 g 您可以

Amazon redshift 红移:将时间戳转换为特定时区中的日期

使用psycopg连接到我试图按日期分组的红移数据库(在查询时给定的特定时区)。所有日期时间都存储在没有时区的位置(并与UTC时间戳相对应) 我一直在尝试以下方法: 选择不同的日期(时区(%(时区)s,日期时间戳))作为日期, 总糖的总和(餐用糖) 饭后 内部连接日期\时间\尺寸 用餐时。创建时间=日期时间dim.timestamp 用餐地点。患者id=%(患者id)s 和日期时间dim.timestamp>=%(utc开始日期时间)s 和date\u time\u dim.timestamp红

上一页   1   2    3   4   5   6  ... 下一页 最后一页 共 19 页