问题标签 [amazon-redshift-spectrum]

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 投票
1 回答
372 浏览

amazon-redshift-spectrum - 引擎盖下的亚马逊红移光谱?

我只是想知道当您在 Redshift 频谱中运行查询时,幕后发生了什么?
是在spark做作业吗?或map-reduce工作或presto完全不同的东西?

0 投票
2 回答
3899 浏览

mysql - Redshift 的 PERCENTILE_DISC 的 Presto 等效项

在 Redshift 中给出以下查询:

我需要将上面的 Query 转换为相应的 Presto 语法。我写的相应的 Presto 查询是:

在这里,一切正常,但在行中显示错误:

它对应的 Presto 语法是什么?

0 投票
1 回答
569 浏览

amazon-web-services - AWS Redshift 脚本导出

如何将所有 redshift 数据库 ddl 脚本保存到本地驱动器中,以便在 bitbucket 上管理存储库。这意味着我想从 redshift 数据库中导出所有 ddl 脚本,并希望保存在本地的相同结构文件夹中,例如 databasename => tablename =>tablescript.sql

提前致谢

0 投票
2 回答
1323 浏览

amazon-web-services - 在选择查询 AWS Redshift 频谱时从 S3 检索 NULL 值

我能够将数据卸载到 S3,并使用 Spectrum 查询结果,但在使用下面定义的分隔符时不能。这是我们的标准分隔符,适用于我们今天与 Redshift COPY 和 UNLOAD 命令相关的所有处理,所以我相信 UNLOAD 工作正常。但是在表定义和用于检索数据的 SQL 查询之间的某个地方,这是行不通的。我们只收到所有字段的 NULLS。您能否查看下面的示例以确定后续步骤。

0 投票
0 回答
660 浏览

amazon-web-services - Spectrum 中包含点的列名

我创建了一个客户表,其中包含 account_id.cust_id、account_id.ord_id 等列。我的创建外部表查询如下:

我得到一个错误:

无效操作:客户中不存在列 account_id.cust_id。

在创建表或编写选择查询时,是否有任何方法或语法来编写诸如 account_id.cust_id (text.text) 之类的列名?

请帮忙。

PS:单引号,反引号也不起作用。

0 投票
0 回答
814 浏览

amazon-web-services - Redshift Spectrum:使用 Parquet 选择时没有值/为空

我试过使用文本文件,它工作得很好。我正在使用红移光谱。为了提高性能,我正在尝试使用 PARQUET。该表已创建,但在触发 Select 查询时未返回任何值。以下是我的查询:

创建外部表 gf_spectrum.order_headers

( header_id numeric(38,18) , org_id numeric(38,18) , order_type_id numeric(38,18) )

由 (partition1 VARCHAR(240)) 分区

存储为 PARQUET

位置 's3://aws-bucket/Spectrum/order_headers';

select * from gf_spectrum.order_headers limit 1000;

另外,PARQUET 是否需要强制分区?我也试过了,表就创建好了。但是在检索数据时,我收到了无效版本号的 S3 Fetch 错误,文本文件没有发生这种错误。它与 PARQUET 格式有关吗?

谢谢你的帮助。

0 投票
1 回答
2478 浏览

amazon-redshift-spectrum - 对我的 Amazon Spectrum 表进行分区时遇到问题

特别是收到此错误:

错误:调用外部目录 API 时出错:分区键的数量与分区值的数量不匹配

0 投票
5 回答
22713 浏览

amazon-redshift - AWS Glue:如何处理具有不同架构的嵌套 JSON

目标: 我们希望使用 AWS Glue 数据目录为驻留在 S3 存储桶中的 JSON 数据创建一个表,然后我们将通过 Redshift Spectrum 对其进行查询和解析。

背景: JSON 数据来自 DynamoDB Streams,嵌套很深。第一级 JSON 有一组一致的元素:Keys、NewImage、OldImage、SequenceNumber、ApproximateCreationDateTime、SizeBytes 和 EventName。唯一的变化是有些记录没有NewImage,有些没有OldImage。但是,在这第一级之下,模式变化很大。

理想情况下,我们希望使用 Glue 仅解析 JSON 的第一级,并且基本上将较低级别视为大型 STRING 对象(然后我们将根据需要使用 Redshift Spectrum 对其进行解析)。目前,我们正在将整个记录加载到 Redshift 中的单个 VARCHAR 列中,但记录接近 Redshift 中数据类型的最大大小(最大 VARCHAR 长度为 65535)。因此,我们希望在记录到达 Redshift 之前执行第一级解析。

到目前为止我们尝试/参考的内容:

  • 将 AWS Glue Crawler 指向 S3 存储桶会导致数百个表具有一致的顶级架构(上面列出的属性),但在 STRUCT 元素的更深层次上会出现不同的架构。我们还没有找到一种方法来创建从所有这些表中读取并将其加载到单个表中的 Glue ETL 作业。
  • 手动创建表并没有什么成果。我们尝试将每一列设置为 STRING 数据类型,但该作业未能成功加载数据(大概是因为这将涉及从 STRUCT 到 STRING 的一些转换)。将列设置为 STRUCT 时,它需要一个定义的模式 - 但这正是从一条记录到另一条记录的不同,因此我们无法提供适用于所有相关记录的通用 STRUCT 模式。
  • AWS Glue Relationalize 转换很有趣,但不是我们在这种情况下要寻找的(因为我们希望保持部分 JSON 完整,而不是完全压平它)。几周前Redshift Spectrum 支持标量 JSON数据,但这不适用于我们正在处理的嵌套 JSON。这些似乎都无法帮助处理由 Glue Crawler 创建的数百个表格。

问题: 我们如何使用 Glue(或其他方法)来允许我们仅解析这些记录的第一级 - 同时忽略顶层元素下方的不同模式 - 以便我们可以从 Spectrum 访问它或加载它身体进入红移?

我是胶水新手。我在 Glue 文档中花了很多时间,并在论坛上浏览(有些稀疏的)信息。我可能会遗漏一些明显的东西 - 或者这可能是 Glue 在其当前形式中的一个限制。欢迎任何建议。

谢谢!

0 投票
3 回答
2913 浏览

amazon-redshift - AWS Redshift - 无法将外部表合并到本地目录中

我们在 redshift 中的一个外部表出现问题。

我们在 AWS Glue 中有 300 多个表,这些表已作为名为events. 中的大多数表events都可以很好地查询。但是在查询其中一个调用的表时,item_loaded 我们会收到以下错误;

奇怪的是它们在目录中。

AFAICT,该表的配置方式与相同模式中的其他表的配置方式完全相同,这些表运行良好。我尝试重新创建一个指向同一个 AWS Glue 数据库的新外部架构,但出现了同样的问题。

我还能检查什么?是否有任何可能导致表从目录中删除的情况?

0 投票
5 回答
15619 浏览

amazon-web-services - 雅典娜 vs Redshift Spectrum

我正在评估 Athena 和 Redshift Spectrum。两者都有相同的目的,Spectrum 需要一个 Redshift 集群,而 Athena 是纯无服务器的。Athena 使用 Presto,Spectrum 使用 Redshift 的引擎

Athena 或 Redshift 光谱有什么特定的缺点吗?使用 Athena 或 Spectrum 有什么限制吗?