如何检查是否存在法律红移表



我有一个用例,我需要做以下事情:

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

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

您可以使用boto3 RedshiftDataAPIService list_tables函数(boto3 v1.25.2)。https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/redshift-data.html RedshiftDataAPIService.Client.list_tables

session = boto3.Session(
botocore_session=botocore.session.get_session()
region_name=region)
redshift_client = session.client("redshift-data")
tables = redshift_client.list_tables(
Database={database}
SecretArn={secretarn}
ClusterIdentifier={clusteridentifier}
SchemaPattern={schemapattern}, #optional
TablePattern={patternpattern}) #optional but recommended

从那里,您可以检查响应,看看您正在查找的表是否存在。如果没有选择模式模式和/或表模式,会有很多结果,所以我建议使用tablepattern=tablename来限制它们。

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

最新更新