问题标签 [amazon-redshift]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1678 浏览

csv - 将 CSV 中的 "" 转换为 \" 的命令

从外部来源,我得到巨大的 CSV 文件(大约 16GB),其中的字段可选地用双引号 (") 括起来。字段由分号 (;) 分隔。当字段在内容中包含双引号时,它会被转义作为两个双引号。

目前,我正在将这些导入到 MySQL 数据库中,该数据库了解"".

我正在考虑迁移到 Amazon Redshift,但他们(或者可能是一般的 PostgreSQL)要求使用反斜杠将引号转义为\".

现在我正在寻找最快的命令行工具(可能是 awk、sed?)以及转换文件的确切语法。

示例输入:

示例输出:

编辑:添加了更多测试。

0 投票
2 回答
1554 浏览

apache - 在亚马逊红移中加载 apache 日志

我正在尝试使用他们的 COPY 命令(http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html)将 apache 样式的日志加载到亚马逊 redshift 集群中,但是存在一些问题日期解析。我的日期如下所示:

[10/Oct/2000:13:55:36 -0700]

redshift [时间格式文档http://docs.aws.amazon.com/redshift/latest/dg/r_DATEFORMAT_and_TIMEFORMAT_strings.html 说“您必须在日期和时间部分之间指定一个空格字符”。因为实际上我在它们之间有一个冒号,所以我检查了如果我以我的时间格式使用它会发生什么,结果是名义上的成功,但分钟和秒设置为零。

(时区是另一个问题,但听起来目前没有打算支持它,所以我单独处理)

所以,我的问题:

  1. 有没有办法使用 COPY 来解析这个?

  2. 否则,我相信我必须在 EC2 上预处理日志文件,或者将日期加载为字符串并将它们解析为 redshift 上的正确时间戳列。关于哪个更可取的任何建议?

0 投票
2 回答
1269 浏览

servicestack - 如何修改 ServiceStack.OrmLite 生成的 SQL?

我想在 C# 中使用ServiceStack 的 OrmLite来查询AWS RedShift。AWS RedShift 使用 postgresql 有线协议作为其查询接口,并对可以运行的查询施加了一些限制,其中之一是它不能接受参数化查询(我被告知;我实际上还没有找到这在文档中得到了支持)。

因此,我正在研究是否可以使用 ORM 生成参数化 SQL,然后在参数值中查找/替换。

如何访问 OrmLite 生成的 SQL,然后在运行之前对其进行更改?

0 投票
1 回答
1175 浏览

php - 使用php将数据从S3复制到redshift

如何将 CSV 文件从 S3 存储桶复制到 Redshift 并避免重复行?我已阅读有关复制命令的信息,但没有找到任何有关通过 PHP SDK 使用它的文档。

0 投票
8 回答
30013 浏览

amazon-redshift - 亚马逊红移中 SQL Server 的 isNumeric() 等效项

  • 我使用 amazon redshift 作为我的数据仓库
  • 我有一个字符串类型的字段(field1)。一些字符串以四个数字开头,而另一些则以字母开头:

'测试 alpha'
'1382 测试 beta'

  • 我想过滤掉字符串不以四个数字开头的行
  • 查看 redshift 文档,我不相信 isnumber 或 isnumeric 是函数。似乎“喜欢”功能是最好的可能性。
  • 我试过了

    其中 left(field1, 4) 像 '[0-9][0-9][0-9][0-9]'

这不起作用,从下面的链接看来,redshift 可能不支持:

https://forums.aws.amazon.com/message.jspa?messageID=439850

'where' 子句中是否有错误?如果不是,并且 redshift 不支持该子句,有没有办法过滤?我正在考虑使用演员表

如果它产生错误,然后传递该行,但不确定如何在亚马逊红移中执行此操作。或者是否有其他用于非数字过滤器的代理。

谢谢

0 投票
2 回答
407 浏览

amazon-redshift - Redshift:如何将连接表的副本复制到集群中的每个切片上?

想象一下,我有一个大型事实表和一个小型且经常更改的连接表。

我的小连接表的全部内容可能适合一个切片。

如何将连接表的副本推送到集群的每个切片(或至少每个节点)上?如果我能做到这一点,我的加入不是会更快吗?

0 投票
1 回答
312 浏览

postgresql - 从 postgresql 数据库中选择值并根据我需要完整查询插入/更新

我需要在查询级别设计这个是否可以对表中的版本、已删除、标志列进行。

src_emp----> 源表

首先加载目标表 trg_emp 输出如下所示

现在这样做之后,我会将empno = 3的工资更改为sal = 4000然后更新我的目标表后看起来像

上面您可以观察到 empno=3 的版本增加到 2,最后一行的标志已更改为“Y”,前一行为“N”,用于 empno=3在源中删除,则该标志必须变为“Y”假设如果我在源表中删除 empno=2,那么我的最终目标表应如下所示

在目标表中,第二行标志必须将已删除标志值更新为“Y”。

0 投票
2 回答
8070 浏览

postgresql - 在redshift postgresql中,我可以使用复制功能跳过列吗

  • 我有一个 .csv 表(t1),其列:亚马逊 S3 存储中的 c1、c2、c3
  • 我想把它复制到亚马逊红移
  • 我创建了包含列的表:c1、c2、c3,其中所有列都可以为空
  • 我用命令复制:

    从 t1 复制 t1a (c1,c3)

  • 我希望它会从 t1 复制 c1 和 c3 并将默认的 null 值放在 c2 中,因此 t1a 中的一行可能看起来像(c1_rowX,null,c3_rowX)。

  • 相反,我收到了一个类型错误,因为它将 c2(字符串类型)数据从 t1 处理到 t1a 的 c3(int 类型)。

  • 当我不指定列时,复制命令可以正常工作:

    从 t1 复制 t1a

  • 我已经包含了红移复制命令文档的链接:

http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html

  • 主要问题是我使用指定列存在问题。谢谢
0 投票
10 回答
114533 浏览

amazon-web-services - 在 Amazon Redshift 中更改列数据类型

如何更改 Amazon Redshift 数据库中的列数据类型?

我无法更改 Redshift 中的列数据类型;有什么方法可以修改 Amazon Redshift 中的数据类型?

0 投票
3 回答
14473 浏览

amazon-redshift - 有多个排序键列是什么意思?

Redshift 允许将多个列指定为SORTKEY列,但大多数最佳实践文档的编写方式都好像只有一个 SORTKEY。

如果我创建一个表SORTKEY (COL1, COL2),这是否意味着所有列都按 COL1 排序,然后按 COL2 存储?或者,因为它是一个列存储,所以每一列都以不同的顺序存储?即 COL1 中的 COL1 顺序,COL2 顺序中的 COL2,而其他列无序?

我的情况是我有一个表(其中包括)一个 type_id 和一个时间戳列。数据大致按时间戳顺序到达。大多数查询都受到 type_id 和时间戳的限制。通常 type_id 子句更具体,这意味着通过查看 type_id 子句可以排除比查看时间戳子句更大比例的行。出于这个原因,type_id 是 DISTKEY。SORTKEY (type_id)我试图了解, SORTKEY (stamp), SORTKEY (type_id,stamp),的优缺点SORTKEY (stamp,type_id)

谢谢。