如何卸载 Redshift 权限?

How to UNLOAD Redshift permissions?

我试图将 Redshift 权限卸载到 S3,但函数 HAS_TABLE_PRIVILEGE() 使用 leader-node,这与 UNLOAD 不兼容。

有替代方案吗?

如您所见,不能像 Redshift 上的其他数据一样对待仅限领导者的数据。在 Redshift 内部有一个解决方法,但它有点笨拙。您可以将 select 语句结果推入游标,然后从游标中读取此信息并将其读入数据 table,然后您可以像处理任何其他数据一样操作这些数据。这是在存储过程中完成的 - 例如将仅领导系统 table 的数据移动到正常的 table How to join System tables or Information Schema tables with User defined tables in Redshift

或者,您可以让发出查询的工具只将结果保存到 S3。这可以是 Lambda 函数,也可以只是您的工作台,后面有 AWS CLI 命令。当涉及到这些“外部”选项时,有很多不同的选项。