问题标签 [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 回答
685 浏览

amazon-web-services - Redshift Spectrum 为查询扫描的数据大小

我正在通过 Redshift Spectrum 查询 S3。我想知道为给定查询扫描的数据大小。

Athena 在其 UI 中提供了它,而我没有找到在 Spectrum 中找到相同的直接方法

有没有办法找到相同的?

0 投票
2 回答
59 浏览

postgresql - 允许您在 SELECT 语句中引用别名列的 PostgreSQL 函数是什么?

我的公司正在从 Netezza 过渡到 AWS/Redshift。使用 Netezza 时,可以方便地在 select 语句中命名列,然后可以再次引用它,例如:

Netezza 允许我这样做,但我不能在 Redshift 中这样做。(我也不能在 MS SQL 中这样做)。我不能在 SELECT 语句中引用列别名,也不能在 WHERE 子句中引用它。

这个功能的名称是什么,有没有办法实现它?如果没有这个功能,我就不得不繁琐地编写子查询。

谢谢

0 投票
1 回答
1340 浏览

amazon-redshift - 如何使用红移光谱查看 S3 中的数据目录表

我在 aws 胶水中为我的数据库创建了外部架构。我可以看到表格列表,但无法查看 json 数据。红移给我这个错误。

我不想创建外部表,因为我将在 aws 胶水中创建一个组合数据目录中的外部表的视图。

只是一个更新:

我在数据目录中创建表时使用了 aws 胶水爬虫。它们是 json 格式。如果我使用将在 redshift 中上传这些数据的作业,它们将作为平面文件(数组除外)加载到 redshift 表中。

json数据示例:

如果我使用 aws 胶水中的作业上传它们,输出将类似于(如表)

看图片

现在,我在数据目录中抓取了大量的表。我正在努力创建此表的单个脚本,这就是为什么亚马逊红移光谱外部模式会有所帮助的原因。

但是,当我在外部架构中查询外部表时,我收到了上面发布的错误。如果数据目录中的外部表作为 csv 加载,我不会遇到问题,但我需要在红移光谱中读取的格式文件应该是 json。

使用作业加载时,是否可以以相同格式查看红移光谱中的外部表?

0 投票
1 回答
430 浏览

amazon-redshift - 频谱错误:无法合并外部表

Redshift Spectrum 给出以下错误,它为创建的外部表执行 SELECT 语句。

外部表的列数有限,例如 50。

我可以使用超级用户和不同的用户集在同一张表上进行查询,而不会出现任何问题。除了 GRANT 之外,是否有任何用户设置需要更改

0 投票
1 回答
268 浏览

external-tables - Spectrum 相同的外部表在多个模式中显示 (svv_external_tables)

这实际上是一个非常简单的测试。我创建了几个外部模式并在其中一个模式中创建了一个外部表,然后查询 svv_external_tables 显示该表存在于所有模式中!我错过了什么?

0 投票
1 回答
4377 浏览

amazon-web-services - AWS Redshift 中的并发查询、复制和连接

我试图了解 Redshift 中并发连接和并发查询之间的区别。根据文档,我们可以与 Redshift 集群建立 500 个并发连接,但它说在一个集群中最多可以同时运行 15 个查询。现在确切的值是多少?

  1. 一个集群中可以同时有多少个查询处于运行状态?如果是 15,它是否也包括 RETURNING 状态查询?

  2. 一个集群中可以同时运行多少个 COPY 语句?

我们正在评估 Redshift 作为我们的主要报告数据存储。如果我们不能同时运行大量查询,我们可能很难采用这种模型。

0 投票
1 回答
2307 浏览

sql - 在 redshift 上查询数据时出错 - 获取条带数据时出错

我正在尝试对 redshift 中的外部表运行以下查询:

我得到一个错误:

[2018-06-20 12:03:14] [XX000][500310] Amazon 无效操作:S3 查询异常(获取)详细信息:错误:S3 查询异常(获取)代码:15001 上下文:由于内部错误,任务失败. 从 ORC 文件https://s3/XXXXXX.orc获取条带数据时出错文件大小

当我在 athena 中查询相同的文件时,它工作正常。架构中有更多表,我可以像往常一样查询它们。

任何人都可以帮忙吗?

谢谢

0 投票
1 回答
2052 浏览

amazon-web-services - AWS Glue:如何使用不同的架构 ETL 非标量 JSON

客观的

我有一个 S3 文件夹,里面装满了不同模式的 json 文件,包括数组(一个 dynamodb 备份,碰巧)。然而,虽然模式有所不同,但所有文件都包含一些常见元素,例如“id”或“name”,以及不同长度的嵌套数组,例如“选定项目”。我希望能够在闲暇时解析出这些元素。

我有一种使用外部 ETL 工具 (KNIME) 的工作方法,我希望通过 Glue 以无服务器方式复制该工具。

背景

工作方法是:

  1. 使用 Spectrum 将所有 S3 数据加载为外部表,每个 json 记录作为单个varchar(65535)条目。
  2. json_extract_path_text使用 Redshift SQL 函数解析出我需要的元素,包括特定的数组,例如json_array_length
  3. 通过对数组索引的引用表进行交叉连接来规范化所需的 json 数组
  4. 执行所需的表连接并写入 Redshift 以供 Tableau 使用

现在,这似乎是一项适合 Glue 的任务。即,我想要做的是,要么:

  1. 使用 Spectrum 加载所有数据,如上

  2. 在 Glue 中,从 Spectrum 表创建一个动态框架

  3. 使用诸如pyspark.sql.functions.explode()或可能使用 Glue 的 Relationalize 变换之类的函数从上述动态帧中解析数据

或者:

  1. 将所有标量数据抓取到单个 Glue 模式中(假设 Glue 尚不支持 JSON 数组)
  2. 使用上述方法之一解析 JSON 并分解数组

到目前为止的结果

不幸的是,我无法让这些方法中的任何一种发挥作用。对于各种方法,阻滞剂是:

  1. 使用 Glue 抓取 json 数据 - 根据这篇文章,Glue 的解析器启发式方法决定源的各种模式差异太大而无法与单个源相关,因此将它们解析为一堆不同的表。有一个爬虫只需爬取每个文件以生成一个表,该表具有类型为 varchar(65535) 的单列,每行包含一个 json 条目,但似乎没有任何 Glue 分类器 JSON 路径表达式可以实现这一目标。
  2. 'single varchar(65535) column' 方法可以通过将数据加载为 Spectrum 中的外部表来实现,但似乎 Spectrum 表无法作为动态帧加载到 Glue 中(请注意,相关表存在于 Glue 目录中它显示为具有预期的 varchar(65535) 架构)。在 Zeppelin Notebooks 工作,我发现

    newFrame = glueContext.create_dynamic_frame.from_catalog(database="<spectrum database>", table_name="<spectrum one column varchar table>")

    运行成功,但是会生成一个带有newFrame.count() = 0和的表newFrame.toDF().show(n),对于任何 n 值都会生成以下形式的奇数输出:

    ++ || ++ ++

    简而言之,pySpark 似乎无法通过 Glue 直接使用 Spectrum 表。

  3. 使用 Crawler 抓取 Spectrum 表。在这里,我通过与我的 Redshift 集群的 Glue 连接将爬虫指向了所需的表。但是,这会导致 S3 端点验证失败,我还不能解决这个问题。我不愿意深入研究 VPC 配置,因为我已经非常不确定将 Crawler 指向 Spectrum 表是否是正确的方法。

简而言之,我发现无法使用 Glue Crawler 或 Glue 和 Redshift Spectrum 的组合在 S3 上动态摄取和解析非标量 json。这可以说不是一项深奥的任务——事实上,任何想要一种相对自动化的方法来报告来自基于 dynamodb 的 Web 应用程序的数据的人都需要实现它。

问题

所以我的问题是,在一个声明中:有什么方法可以使用 Glue 解析 S3 上具有不一致架构的非标量 json 文件(另外,可能还有其他 AWS 服务,例如 RS Spectrum)?

0 投票
2 回答
5851 浏览

amazon-redshift - S3 查询异常(获取)

我已经以 Parquet 格式将数据从 Redshift 上传到 S3,并在 Glue 中创建了数据目录。我已经能够从 Athena 查询表,但是当我在 Redshift 上创建外部模式并尝试在表上查询时,我收到以下错误

查询在 Athena 中运行良好

0 投票
1 回答
4359 浏览

amazon-web-services - 在 Redshift 中检查用户的“连接限制”

我在 Redshift 中有一个用户名为“redshift_x”的用户,并且想知道当前为该用户设置的 CONNECTION LIMIT。我尝试使用以下查询对其进行查询:

select * from pg_user where usename = 'redshift_x';

但是此查询仅提供有关这些列的信息,即。用户名、usesysid、usecreatedb、usesuper、usecatupd、passwd、valuentil、useconfig。

请让我知道从哪里可以看到此特定用户"redshift_x"的 CONNECTION LIMIT 。