更新写 | - insert into SinkTable values()
- insert into SinkTable select * from SourceTable
| 常用于集成加工Hudi表,按照主键去更新SinkTable的数据。 |
覆盖写 | - insert overwrite SinkTable values()
- insert overwrite SinkTable select * from SourceTable
| - SinkTable是无分区表,则是整表覆盖。
- SinkTable是分区表,则是分区级覆盖。
|
覆盖写 | - insert overwrite table SinkTable values()
- insert overwrite table SinkTable select * from SourceTable
| - SinkTable是无分区表,则是整表覆盖。
- SinkTable是分区表,则是分区级覆盖。
|
bulk_insert写入 | 参考常用参数介绍及使用场景章节. | 仅适用Hudi表做第一次迁移。 |
更新写 | - update SinkTable set 字段名=值 where 字段名=值
| 常用于快速修正Hudi中的小批量数据,不适合直接用于集成加工。 |
merge into语法 | - merge into SinkTable as t1 using (子查询) as t2 on t1.字段 =t2.字段 when matched then
| 不推荐。 |
删除行级数据 | - delete from SinkTable where 字段名=值
- delete from SinkTable where 字段名 in (子查询)
| delete操作会写入数据,删除的数据量越大,delete执行越慢,适合用于删除小批量数据。 |
查询Hudi表结构 | desc formatted SinkTable | 查询Hudi表所有信息,推荐使用。 |
查询Hudi表结构 | show create table SinkTable | 查询Hudi表所有信息,不推荐,可读性差。 |
删除分区 | - 单分区
alter table SinkTable drop partition (分区列 =分区值) - 多分区
alter table SinkTable drop partition (分区列1 =分区值, 分区列2 =分区值, 分区列3......)
| - MRS后台客户端执行该命令,必须source Hudi的component_env。
- DGC执行该命令,如果是api连接必须在作业的运行中参数添加--conf spark.support.hudi=true。
|
删除表 | - drop table 表名
- drop table 表名 purge
| - 对内表执行"drop table 表名"会删除hive上的表以及数据存储目录。
- 对外表执行""drop table 表名""仅会删除hive上的表,不删除数据存储目录。
- 对Hudi表进行彻底清理,直接使用"drop table 表名 purge"。对COW表执行,hive上的表以及数据目录将全部被清理。对MOR表执行,hive上的3张表(主表,rt表,ro表)以及数据目录将全部被清理。
|
查看Hudi表compaction计划 | show compaction on SinkTable | 查看返回结果的第二列action,如果值是commit则该计划已经被运行,如果值是compaction则该计划没有被执行。 |
变更Schema | Hudi Schema演进 | |
执行compaction | run compaction on SinkTable | 不能直接单条命令执行,请参考选择合适的表服务执行方式和常用参数介绍及使用场景。 |
执行clean | run clean on SinkTable | 不能直接单条命令执行,请参考选择合适的表服务执行方式和常用参数介绍及使用场景。 |
执行archive | run archivelog on SinkTable | 不能直接单条命令执行,请参考选择合适的表服务执行方式和常用参数介绍及使用场景。 |