【发布时间】:2017-08-04 13:02:36
【问题描述】:
Hive 中的 ACID 属性允许使用以下语法从表中删除行:
DELETE FROM table
WHERE id IN (SELECT id FROM raw_table)
但是当primary_key由多列组成时,删除行的最佳解决方案是什么?
我用 EXISTS 尝试了以下操作:
DELETE FROM table
WHERE EXISTS (SELECT id1, id2 FROM raw_table
WHERE raw_table.id1 = table.id1 AND raw_table.id2 = table.id2)
或以下(连接所有列,不确定这是否有效):
DELETE FROM table
WHERE CONCAT(id1, id2) IN (SELECT CONCAT(id1, id2) FROM raw_table)
您对最佳解决方案有什么建议吗?
【问题讨论】:
标签: sql hive sql-delete acid