这是我的场景:
我从 S3 存储桶中的一个文件夹加载数据。让我们将此存储桶称为“new_data”。
CREATE EXTERNAL TABLE new_data (col1 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://some-bucket/folder'
接下来,我从 S3 中的另一个文件夹加载数据,我们称之为“data_already_imported”。
CREATE EXTERNAL TABLE data_already_imported (col1 string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION 's3://some-bucket/another-folder'
然后,我发现 new_data 和 data_already_imported 之间的区别
创建表差异为 SELECT * FROM ( SELECT n.* FROM new_data n LEFT OUTER JOIN data_already_imported old ON n.col1 = old.col1 WHERE old.col1 IS NULL ) i;
现在,我想将此“差异”移动到 data_already_imported 文件夹中。目前我有
INSERT INTO TABLE data_already_imported
SELECT * FROM difference;
问题是这会覆盖 data_already_imported 中已经存在的数据。注意:我也试过了INSERT OVERWRITE
。有人可以指出我在这里做错了什么吗?