如何检查是不是存在 aws redshift 表

Posted

技术标签:

【中文标题】如何检查是不是存在 aws redshift 表【英文标题】:How to check if a aws redshift table is present or not如何检查是否存在 aws redshift 表 【发布时间】:2021-09-15 18:25:13 【问题描述】:

我有一个用例需要执行以下操作:

1.检查redshift_db.redhsift_tbl是否存在?如果存在表,则执行操作 A,否则执行操作 B。

我正在查看 boto3 文档以获取一个 api,该 api 将告诉该表是否存在但没有运气。检查红移表是否存在的最佳方法是什么?

【问题讨论】:

您可以考虑查询PG_TABLE_DEF,其中列出了用户可见的表 【参考方案1】:

有两种方法可供您选择。如果您使用的是外部编排工具,则此工具可以查询目录表(pg_table_def 或 stv_tbl_perm)并根据结果发出适当的下一个命令。或者,如果您需要 Redshift 来执行此操作,那么您将需要创建一个存储过程以根据检查目录表采取正确的操作。

【讨论】:

我必须从 pyspark-glue 脚本中以编程方式检查这个。你能告诉我该怎么做吗? 我建议您避免使用PG_TABLE_DEF。它的编写方式是,尽管使用在工作节点上工作的系统表,但该表实际上只能在领导节点上工作。我通常使用“pg_class”,因为我更信任 Postgres 表而不是 Redshift 表。

以上是关于如何检查是不是存在 aws redshift 表的主要内容,如果未能解决你的问题,请参考以下文章

如何授予 Redshift 中所有模式的使用权限?

AWS Redshift 中的查询结果大小

仅当表存在时如何删除 Amazon Redshift 中的表

如何编写 AWS Glue 脚本以将新数据插入 Redshift 表

Redshift集群,如何获取片数信息

如何使用更改表查询在 AWS Redshift 中添加多列