问题标签 [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.
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"]
寻找更简单的直接解决方案。谢谢。
amazon-redshift - 对时间戳查询的数据进行分区
我在 s3 上对我想通过频谱访问的数据进行了分区。当前的格式文件结构类似于:s3://bucket/dir/year=2018/month=11/day=19/hour=12/file.parquet
我使用胶水对数据进行了分区,方法是解析我用于时间戳的字段,ts
. 我将执行的大多数查询都将在ts
现场进行,因为它们是比每日更精细的时间戳范围查询(可能跨越多天或少于一天,但通常涉及时间。
我将如何在我的数据上创建每小时(首选,如果需要,每天可以工作)分区,因此当我查询ts
(或另一个时间戳)字段时,它将正确访问分区。如果需要,我可以使用不同的分区重新创建我的数据。大多数示例/文档只是每天存储数据,并在查询中使用日期字段。
如果需要,我很乐意提供更多信息。
谢谢!
示例查询类似于:
amazon-web-services - 红移光谱时间戳列问题
我在 s3 中的文件很少。使用粘合数据目录来获取表定义。我已经调用了字段log_time
,并且我在胶水目录中手动将数据类型设置为时间戳。现在,当我从 Athena 查询该表时,我可以正确看到时间戳值。
现在我转到 Redshift 频谱并创建一个外部模式,指向由胶水数据目录创建的模式。我可以看到那里定义的表,当我检查列的数据类型时,我看到它被定义为时间戳。但是,我可以在 Athena 中运行相同的查询,log_time
字段正确显示日期部分。但是对于时间部分,所有行都是 00:00:00。
任何想法?
- **文件的日期值:**2018-12-16 00:47:20.28
- 当我在胶水数据目录中手动将字段日期类型更改为时间戳然后在 Athena 中查询时,我看到了值:2018-12-16 00:47:20.280
- 当我创建指向数据目录模式的 Redshift 频谱模式然后查询它时,我看到了值 2018-12-16 00:00:00
amazon-redshift - 引用 Redshift 外部表中的转义引号
我正在尝试从其中包含引号转义引号的 csv 在 Redshift 中创建一个外部表,如rfc4180中所述:
如果使用双引号将字段括起来,则出现在字段内的双引号必须通过在其前面加上另一个双引号来进行转义。
例如:"aaa","b""bb","ccc"
我没有收到任何错误,但最终表的null
值应该是我的字符串。
有没有办法告诉 Redshift 在创建外部表时理解这种 csv 格式?
我不想更改 csv 文件的格式。
示例 csv:
外部表创建示例:
预期成绩:
- 字段 a:一些“文本”
- 字段 b:更多文本
- 字段 c:更多,文本
- 字段 d:等等
实际结果:
- 字段一:
null
- 字段 b:更多文本
- 字段 c:更多,文本
- 字段 d:等等
python - 如何为 spectrify python 包指定 s3 配置?
如何s3_config
为 python spectrify 包指定这个对象?
json - 如何检查 Redshift Spectrum 中的结构不为空?
我想使用 Redshift Spectrum 查询 JSON 数据,以确定 JSON 中的字段是否存在。
举个例子。给定数据:
鉴于我已将我的表定义为:
我希望能够通过以下方式查询它:
并得到结果:
但是我不断收到错误column field1 does not exist
知道怎么做吗?
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 符合我的实施方案,但希望对如何处理版本控制问题提出建议。
amazon-redshift - 如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?
我们计划使用 AWS 红移频谱从另一个 AWS 账户的 S3 获取数据。但 Source 告知桶密钥每天都会更改,并且最新数据将在桶密钥位置以最新时间戳提供。谁能建议创建这个外部表的最佳方法是什么?