主键模型的导入更新
在实时数仓与业务库同步场景中,用户经常面临以下问题:
- 业务表的数据需要根据主键持续更新(如订单状态变更、用户画像刷新),希望写入时能自动判断"插入"还是"更新"。
- 仅有部分字段发生变化(如只更新订单的
status),不希望每次都拼装完整记录。
针对上述场景,Doris 主键模型(Unique 模型)支持基于导入的两种更新方式:整行更新和部分列更新。本文档介绍这两种更新方式的使用方法。
整行更新
Doris 主键模型的导入是一种 Upsert 模式:写入新数据时,按主键自动判断执行"插入"还是"更新"。
| 场景 | 行为 |
|---|---|
| 主键不存在 | 插入新数据行 |
| 主键已存在 | 用新数据覆盖原有数据行 |
支持的导入方式包括:
- Stream Load
- Broker Load
- Routine Load
- Insert Into
整行更新与导入新记录的操作完全一致,详细用法可参考数据导入相关文档。
部分列更新
当只需要更新部分字段时,可以使用主键模型的部分列更新能力,避免拼装完整记录。详细说明(包括使用示例、灵活部分列更新和新行处理等)请参考列更新文档。