Redshift Spectrum 'alter table add partition' 安全性
Redshift Spectrum 'alter table add partition' security
要将分区添加到现有的 Redshift Spectrum table,我需要持有什么安全性?
我试过:
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 的一些基本知识?如果我的文件遵循某种格式,它会自动添加分区吗?我的文件路径是否需要位于设置原始 table 位置时设置的主要 s3 位置下方?并且每个分区键是否需要位于文件路径中(例如 's3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/')。
感谢您的帮助!
AWS Support 回复了我们的请求,建议我们使用 'Glue Crawler'。
- Glue 爬虫可以自动添加特定格式和位置的分区
- Glue 爬虫需要分区键位于路径中
- IAM 角色与湖泊形成一起工作。
要将分区添加到现有的 Redshift Spectrum table,我需要持有什么安全性?
我试过:
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 的一些基本知识?如果我的文件遵循某种格式,它会自动添加分区吗?我的文件路径是否需要位于设置原始 table 位置时设置的主要 s3 位置下方?并且每个分区键是否需要位于文件路径中(例如 's3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/')。
感谢您的帮助!
AWS Support 回复了我们的请求,建议我们使用 'Glue Crawler'。
- Glue 爬虫可以自动添加特定格式和位置的分区
- Glue 爬虫需要分区键位于路径中
- IAM 角色与湖泊形成一起工作。