我在不使用爬虫的情况下使用AWS Glue创建了新的数据库和表结构,并且可以做同样的事情,我的意思是使用爬虫创建表结构。这不是问题,我想要的是基于AWS表元数据在AWS中创建相同的表结构。
我用Python手工完成了Django,得到了表的元数据,并创建了"CREATE table .“命令并执行。我已经有了另一种解决方案。--我们可以从AWS端或者使用AWS (如Boto3 )--来做这件事吗?我不需要表中的任何数据,只想在AWS红移中创建空表。这个是可能的吗?
我还检查了AWS红移光谱。如果我可以在AWS中创建这个表,那么我可以使用频谱命令从S3或任何其他资源中获取数据。所以我先要桌子。
发布于 2020-03-12 08:27:25
如果您用正确的模式填充Glue表及其所有分区,那么您应该能够使用Redshift谱运行查询,而不必使用CREATE TABLE...
语句创建实际的表。
在您的RedShift客户机/编辑器中,创建一个指向包含Glue表的数据目录数据库的外部(频谱)模式(此处,名为spectrum_db
)。iam_role
值应该是您的红移集群IAM角色的ARN,您可以在其中添加glue:GetTable
操作策略。
create external schema spectrum_schema from data catalog
database 'spectrum_db'
iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'
create external database if not exists;
现在,您应该能够在外部Glue表上运行查询。唯一这样做的约束是不能对表进行SELECT *
:
SELECT ... FROM spectrum_schema.Your_table
从那里你应该能够更容易地将数据从光谱移到标准红移。
参考资料:
https://stackoverflow.com/questions/60646635
复制相似问题