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

amazon-web-services - 从 redshift 中删除外部表的所有分区

我正在尝试删除 redshift 集群中外部表上的所有分区。我无法找到一种简单的方法来做到这一点。我目前正在通过运行动态查询以从表中选择日期并将其与删除逻辑连接并获取结果集并像这样单独运行它来执行此操作

select 'ALTER TABLE procore_iad_ext.active_histories DROP PARTITION (values='''||rtrim(ltrim(values, '["'),'"]') ||''');' from svv_external_partitions where tablename = 'xyz';

值看起来像这样->["2009-03-10"]

寻找更简单的直接解决方案。谢谢。

0 投票
2 回答
1013 浏览

amazon-redshift - 对时间戳查询的数据进行分区

我在 s3 上对我想通过频谱访问的数据进行了分区。当前的格式文件结构类似于:s3://bucket/dir/year=2018/month=11/day=19/hour=12/file.parquet

我使用胶水对数据进行了分区,方法是解析我用于时间戳的字段,ts. 我将执行的大多数查询都将在ts现场进行,因为它们是比每日更精细的时间戳范围查询(可能跨越多天或少于一天,但通常涉及时间。

我将如何在我的数据上创建每小时(首选,如果需要,每天可以工作)分区,因此当我查询ts(或另一个时间戳)字段时,它将正确访问分区。如果需要,我可以使用不同的分区重新创建我的数据。大多数示例/文档只是每天存储数据,并在查询中使用日期字段。

如果需要,我很乐意提供更多信息。

谢谢!

示例查询类似于:

0 投票
0 回答
394 浏览

amazon-web-services - 红移光谱时间戳列问题

我在 s3 中的文件很少。使用粘合数据目录来获取表定义。我已经调用了字段log_time,并且我在胶水目录中手动将数据类型设置为时间戳。现在,当我从 Athena 查询该表时,我可以正确看到时间戳值。

现在我转到 Redshift 频谱并创建一个外部模式,指向由胶水数据目录创建的模式。我可以看到那里定义的表,当我检查列的数据类型时,我看到它被定义为时间戳。但是,我可以在 Athena 中运行相同的查询,log_time字段正确显示日期部分。但是对于时间部分,所有行都是 00:00:00。

任何想法?

  1. **文件的日期值:**2018-12-16 00:47:20.28
  2. 当我在胶水数据目录中手动将字段日期类型更改为时间戳然后在 Athena 中查询时,我看到了值:2018-12-16 00:47:20.280
  3. 当我创建指向数据目录模式的 Redshift 频谱模式然后查询它时,我看到了值 2018-12-16 00:00:00
0 投票
1 回答
169 浏览

amazon-web-services - 可以在 Redshift 中的特定目录中创建外部表吗?

我创建了一个外部表,它使用以下脚本读取指定路径中所有文件夹的文件:

现在我只想指向以 201812 开头的文件。 查看图片

我一直在尝试以下方式,但它不保存任何数据:

0 投票
0 回答
1918 浏览

amazon-redshift - 引用 Redshift 外部表中的转义引号

我正在尝试从其中包含引号转义引号的 csv 在 Redshift 中创建一个外部表,如rfc4180中所述:

如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在其前面加上另一个双引号来进行转义。

例如:"aaa","b""bb","ccc"

我没有收到任何错误,但最终表的null值应该是我的字符串。

有没有办法告诉 Redshift 在创建外部表时理解这种 csv 格式?

不想更改 csv 文件的格式。


示例 csv:


外部表创建示例:


预期成绩:

  • 字段 a:一些“文本”
  • 字段 b:更多文本
  • 字段 c:更多,文本
  • 字段 d:等等

实际结果:

  • 字段一:null
  • 字段 b:更多文本
  • 字段 c:更多,文本
  • 字段 d:等等
0 投票
1 回答
101 浏览

python - 如何为 spectrify python 包指定 s3 配置?

如何s3_config为 python spectrify 包指定这个对象?

0 投票
0 回答
336 浏览

json - 如何检查 Redshift Spectrum 中的结构不为空?

我想使用 Redshift Spectrum 查询 JSON 数据,以确定 JSON 中的字段是否存在。

举个例子。给定数据:

鉴于我已将我的表定义为:

我希望能够通过以下方式查询它:

并得到结果:

但是我不断收到错误column field1 does not exist

知道怎么做吗?

0 投票
1 回答
3010 浏览

sql - Redshift上的SQL查询以获取第一个和最后一个值

我有一个这样的数据集。

在此处输入图像描述

我需要编写一个查询,它给我以下输出 在此处输入图像描述

对于每个 SessionID 和 VisitID,它应该根据 date_time 列进行排序,并为我提供第一个类别和最后一个类别。

我使用了以下代码

获取最后一个类别。但是我需要的是在单个查询中获得第一个和最后一个,对数据库的影响最小,因为数据量很大并且查询成本很高。

需要最优化的查询!

0 投票
0 回答
366 浏览

amazon-web-services - 从 AWS Glue 对 Parquet 文件进行版本控制,以使用 Redshift Spectrum 进行外部表查询

我正在开发一个 ETL 管道,以使用 AWS Glue 批处理作业将 JSON 文件转换为 Parquet 格式(存储成本),然后使用 RedShift 外部表使用 Parquet 文件查询 S3 存储桶。

我的障碍是如何处理 Parquet 文件的多个版本,以便外部表查询最新版本的 Parquet 文件或强制 AWS Glue 覆盖 Parquet 文件并始终保持最新版本。

作为一项服务,S3-AWSGlue-Redshift Spectrum 符合我的实施方案,但希望对如何处理版本控制问题提出建议。

0 投票
1 回答
556 浏览

amazon-redshift - 如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?

我们计划使用 AWS 红移频谱从另一个 AWS 账户的 S3 获取数据。但 Source 告知桶密钥每天都会更改,并且最新数据将在桶密钥位置以最新时间戳提供。谁能建议创建这个外部表的最佳方法是什么?