如何解决如何使用 Glue 数据目录创建 Redshift 表
我正在使用 ETL 开发 AWS Glue 管道。所以我有一个 csv
文件,它使用 PySpark 以多种方式进行了转换,例如重复列、更改数据类型、添加新列等。我使用 S3 位置的数据存储运行了一个爬虫,所以它根据给定的 csv
文件创建了 Glue Table。我的意思是当我向 csv
文件添加一个新列时,它会在运行爬虫时相应地更改 Glue Table。
现在我想对 Amazon Redshift 做同样的事情,我想做的是在 Redshift 中创建一个类似于我之前提到的 Glue 表(使用 csv
创建)的表。许多答案解释了手动创建 Redshift 模式。我也这样做了,但是当数据类型发生变化时,我必须手动更新它。当 csv
文件更改时,必须相应地更新 Redhsift 表。
我可以使用爬虫来做同样的事情吗?我的意思是创建一个类似于胶水目录表的 Redhsift 表?因此,当数据类型更改或在 csv
文件中删除或添加列时,我们可以运行爬虫,我们可以使用爬虫来做到这一点,还是有其他方法可以满足我的需求?这应该是一个完全自动化的 ELT 管道。
任何帮助将不胜感激!
解决方法
回答所有问题是一项艰巨的任务。我的建议是正确理解你想拼凑的每一块拼图的概念。
csv 文件显然具有灵活性,这在 Redshift 中是无法实现的,这是因为列并不是真正键入的,它只是文本……而且速度非常慢。我建议您使用镶木地板文件。
关于Redshift,如果你的表不存在,你只需使用spark写表,它就会被创建,但是......你将无法设置DISTKEY,SORTKEY......它用于临时表正常。如果你有额外的列,你不需要手动创建它,spark 会做。但是改变列的数据类型,并不简单,你不会(轻易)通过ETL实现它。
最后是数据目录,它只是一个模式,元数据,大多数情况下你使用表来创建元数据,而不是元数据来创建表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。