查询和写入Iceberg表
查询Iceberg
可以查询Iceberg表中的数据。具体语法可参考SELECT。
注意事项:
当前仅支持查询最新全量数据。
示例:
1
|
SELECT * FROM iceberg_ext order by col1; |
写入Iceberg表
可以向Iceberg表中添加一行或多行数据。具体语法可参考INSERT。
注意事项:
- 如果频繁插入小数据,可能会出现小文件问题,建议定期重写data/manifest文件以保障存储、查询效率。
- 当前仅支持数据文件以Parquet格式写入。
示例:
1 2 3 |
INSERT INTO iceberg_ext VALUES (1, 'a', 1.1234567, 100.11, '2025-03-03', '2025-03-03 16:00:00'); INSERT OVERWRITE INTO iceberg_ext VALUES (1, 'b', 1.1234567, 100.11, '2025-03-03', '2025-03-03 16:00:00'); INSERT INTO iceberg_ext (col1, col2, col3, col4, col5, col6) SELECT col1, col2, col3, col4, col5, col6 FROM iceberg_table WHERE col1 > 18; |
删除Iceberg表数据
可以对Iceberg表中的一行或多行数据执行删除操作。具体语法可参考DELETE。
注意事项:
- 当前仅支持merge-on-read方式的delete操作。
- 如果有并发删除、更新时,delete时建议指定分区条件以减少并发冲突。
- 如果对分区表做整分区删除时,delete会通过标记元数据状态来加速删除操作,是否可以走优化可以通过explain delete查看关键字“Do speed up for delete”,如果可以走删除优化,删除返回的行数可能大于实际删除的行数。
示例:
1
|
DELETE FROM iceberg_ext where a = 1; |
更新Iceberg表数据
可以对Iceberg表中的一行或多行数据执行更新操作。具体语法可参考UPDATE。
注意事项:
- 当前仅支持merge-on-read方式的delete操作。
- 如果有并发删除、更新时,update时建议指定分区条件以减少并发冲突。
示例:
1
|
UPDATE iceberg_ext set b = 1 where a = 1; |