【问题标题】:AWS Glue Data Catalog with partitioned table over S3 files and different schemas in partitionsAWS Glue 数据目录,具有 S3 文件上的分区表和分区中的不同架构
【发布时间】:2021-12-15 15:06:30
【问题描述】:

是否可以通过 AWS S3 文件在 AWS Glue 数据目录中创建分区表,并在该表的不同分区中具有不同的数据架构?

如果是这样,我能否在 Redshift Spectrum 的帮助下将此分区表创建为 Redshift 中的外部表并进行查询?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-redshift aws-glue aws-glue-data-catalog


    【解决方案1】:

    如果文件是 json/parquet 类型,则定义表以使其包含所有列 - 某些列可能存在于某些分区文件中,而其他列可能存在于其他分区文件中。

    如果文件是 csv 类型,那么您需要在每个文件中以相同的顺序显示列,但每个文件可能不包括所有可能的列。

    【讨论】:

    • 感谢您的回答。我是否需要在 Glue 目录中创建表,在那里手动创建模式,然后通过目录中的元信息在 Redshift 中创建表?或者 Glue 爬虫可以自动发现表的模式,并且即使这些文件具有不同的模式,仍然会将全新的文件(稍后到达)附加到该表?或者在这种情况下(具有不同架构的新文件)Glue 爬虫会尝试在目录中创建一个全新的表?
    • 或者在 Glue 目录中手动创建表的情况下 - Glue 爬虫将不会运行,我将能够手动将具有不同架构的全新文件存储在 AWS 上该表的不同分区中S3?之后我是否需要以某种方式手动刷新 Glue 中的表 - 否则新数据将立即可用于查询.. 假设来自 Redshift Spectrum,以防我之前成功地将此类外部表连接到 Redshift?
    • 您可以使用 CREATE TABLE stmt 在 Athena 控制台中手动创建表。当您将文件复制到相关的 s3 路径时,您需要使用 ALTER TABLE ...ADD PARTITION stmt 添加分区。如果使用分区投影,则不需要使用 ALTER TABLE ADD PARTITION stmt 添加分区。
    • 在 Glue 目录中创建表后,您可以在 Redshift 中创建外部表,指向 Glue 目录中的表,您可以使用 Redshift 谱查询它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2021-06-16
    • 2019-04-15
    • 2022-08-05
    相关资源
    最近更新 更多