Redshift Spectrum 'alter table add partition' 安全性

Posted

技术标签:

【中文标题】Redshift Spectrum \'alter table add partition\' 安全性【英文标题】:Redshift Spectrum 'alter table add partition' securityRedshift Spectrum 'alter table add partition' 安全性 【发布时间】:2020-08-14 20:32:50 【问题描述】:

为了将分区添加到现有的 Redshift Spectrum 表,我需要保持什么安全性?

我尝试过:

alter table my_spectrum.my_outputs
add if not exists partition(client_num=101, env_tag='dev')
LOCATION 's3a://my-bucket/my-folder/my-outputs/'
;

这会引发 SQLException:

[Amazon](500310) Invalid operation: must be owner of relation my_spectrum;

我不是这里的所有者...但是如果我有一些批处理程序可能想要附加分区...我应该怎么做?他们不能称自己是所有者吧?

尝试授予自己访问权限也不起作用:

GRANT ALTER ON EXTERNAL SCHEMA my_spectrum to dedelstein;

投掷

Invalid operation: Grantee can only be an IAM Role or PUBLIC for grants on external resources

还是我误解了 Spectrum 的基本原理?如果我的文件遵循某种格式,它会自动添加分区吗?我的文件路径是否需要位于设置原始表位置时设置的主 s3 位置下方?每个分区键是否需要在文件路径中(例如 's3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/')。

感谢您的帮助!

【问题讨论】:

你能解决这个问题吗?超级用户可以添加分区,而标准用户不能。我不愿意搬胶水 使用胶水爬行器。除了运行爬虫作业需要时间之外,效果很好。 【参考方案1】:

AWS Support 回复了我们的请求,建议我们使用“Glue Crawler”。

    如果分区是特定格式和位置,Glue 爬虫可以自动添加分区 Glue 爬虫需要分区键在路径中 IAM 角色与湖泊形成有关。

【讨论】:

以上是关于Redshift Spectrum 'alter table add partition' 安全性的主要内容,如果未能解决你的问题,请参考以下文章

Redshift Spectrum 为查询扫描的数据大小

Redshift Spectrum 使用两个日期字段对表进行分区

如何更改 Redshift Spectrum 中的外部表?

Redshift Spectrum 性能对比 Athena

查询字符串列的 Redshift Spectrum 数组

Redshift Spectrum 和 Hive Metastore - 模棱两可的错误