红移。在条件下删除表
Posted
技术标签:
【中文标题】红移。在条件下删除表【英文标题】:Redshift. drop table under condition 【发布时间】:2018-12-06 13:57:51 【问题描述】:我有将数据加载到某个红移表 (tbl1_tmp) 的 ETL 过程。 现在,如果加载了数据(计数 > 0),我想删除另一个表(tbl1)并重命名 tmp1_tmp --> tbl1。
我可以编写一些 SQL 代码来允许我在满足特定条件下删除表吗? (在我的情况下计数 > 0)
谢谢
【问题讨论】:
为什么需要这个条件?这是否意味着您的 ETL 过程有时会加载空表,在这种情况下您不想继续?无论如何 - 在 sql 中,不能混合 DDL 语句 (DROP
/CREATE TABLE
) 和查询 (SELECT
)。您从哪里运行查询?如果它是 bash 或 python 脚本,那么你可以在那里设置条件。
@botchniaque 空表只是示例条件。我的 ETL 有时会出错,我不想在这种情况下实际使用损坏的数据。我在 AWS 数据管道中运行 ETL
【参考方案1】:
Amazon Redshift 基本上运行 SQL。它本身不是 ETL 工具。
您需要编写一些代码来检查表的内容,然后,如果需要,发出DROP TABLE
命令。没有“在某些情况下删除表”的能力。
【讨论】:
以上是关于红移。在条件下删除表的主要内容,如果未能解决你的问题,请参考以下文章