更新时间:2026-10-09 GMT+08:00
向Paimon表中写入数据
INSERT INTO
INSERT INTO my_table VALUES (1, 'Alice', '2024-01-01'); INSERT INTO my_table SELECT * FROM source_table;
INSERT OVERWRITE
-- 覆盖整个表 INSERT OVERWRITE my_table SELECT ...; -- 覆盖指定分区 INSERT OVERWRITE my_table PARTITION (key1 = value1, key2 = value2) SELECT ...;
动态覆盖分区
Spark默认使用静态覆盖模式。启用动态覆盖需设置:
SET spark.sql.sources.partitionOverwriteMode=dynamic; INSERT OVERWRITE my_table VALUES (3, 'p1');
TRUNCATE TABLE
TRUNCATE TABLE my_table;
UPDATE(仅主键表)
UPDATE my_table SET name = 'Alice Updated' WHERE id = 1; -- 更新struct字段 UPDATE t SET s.c2 = 'a_new' WHERE s.c1 = 1;
注意:主键表不支持更新主键列的值。
DELETE(仅主键表)
DELETE FROM my_table WHERE currency = 'UNKNOWN';
MERGE INTO(仅主键表)
MERGE INTO target
USING source
ON target.a = source.a
WHEN MATCHED THEN
UPDATE SET *
WHEN NOT MATCHED THEN
INSERT *; 带条件的MERGE INTO:
MERGE INTO target
USING source
ON target.a = source.a
WHEN MATCHED AND target.a = 5 THEN
UPDATE SET b = source.b + target.b
WHEN MATCHED AND source.c > 'c2' THEN
UPDATE SET *
WHEN MATCHED THEN
DELETE
WHEN NOT MATCHED AND c > 'c9' THEN
INSERT (a, b, c) VALUES (a, b * 1.1, c)
WHEN NOT MATCHED THEN
INSERT *; 注意:在UPDATE子句中,主键表不支持更新主键列的值。
父主题: Paimon on Spark