【问题标题】:How to create a Redshift table using Glue Data Catalog如何使用 Glue 数据目录创建 Redshift 表
【发布时间】:2021-05-30 00:55:30
【问题描述】:

我正在使用AWS Glue 开发ETL 管道。所以我有一个csv 文件,它使用PySpark 以多种方式进行转换,例如重复列、更改数据类型、添加新列等。我在 S3 位置运行了一个带有数据存储的爬虫,所以它创建了 Glue根据给定的csv 文件的表。我的意思是当我在csv 文件中添加一个新列时,它会在运行爬虫时相应地更改 Glue Table。

现在我想对Amazon Redshift 做同样的事情,我想做的是在Redshift 中创建一个类似于我之前提到的Glue 表(使用csv 创建)的表。很多答案解释了手动创建 Redshift 模式。我也这样做了,但是当数据类型发生变化时,我必须手动更新它。当csv 文件更改时,Redhsift 表必须相应更新。

我可以使用爬虫来做同样的事情吗?我的意思是创建一个类似于 Glue 目录表的 Redhsift 表?因此,当数据类型更改或在csv 文件中删除或添加列时,我们可以运行爬虫,我们可以使用爬虫来做到这一点,还是有其他方法可以满足我的需要?这应该是一个完全自动化的 ELT 管道。

任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    您所有问题的答案都是一项艰巨的任务。我的建议是弄清楚你想拼凑的每一块拼图的概念。

    csv 文件显然具有灵活性,在 Redshift 中您无法获得,这是因为列没有真正输入,它只是文本......而且速度很慢。我建议您使用镶木地板文件。

    关于Redshift,如果你的表不存在,你只需使用spark写表,它就会被创建,但是......你将无法设置DISTKEY,SORTKEY......它用于临时表正常。如果你有额外的列,你不需要手动创建它,spark 会做。但是更改列数据类型,这并不简单,您不会(容易)通过 ETL 实现它。

    最后是数据目录,它只是一个模式,元数据,大多数情况下你使用表来创建元数据,而不是元数据来创建表。

    【讨论】:

    • 非常感谢@fernolimits 抽出宝贵时间回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-05-11
    • 2021-08-09
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2021-11-28
    相关资源
    最近更新 更多