模型配置
你可以使用 config()
宏来实现更细粒度且更强大的模型控制。
config()
的特点
config()
的特点1. 物化设置
config()
宏使用户能够决定模型在分析数据库中的物化方式,常见的物化策略包括:
Table(表):模型以表的形式创建。
View(视图):模型以视图的形式创建。
Incremental(增量):模型以增量方式构建,仅更新自上次运行以来的新数据,提高大数据集的处理效率。
2. 主键和分区设置
使用 config()
宏定义的配置可以继承或覆盖其他位置(如模型的元数据)中定义的设置。用户可以在 config()
宏中定义多种配置,包括:
为增量模型设置主键(unique key)。
指定增量策略(incremental strategy)。
指定分区(partition)。
不同数据库类型可以使用的 config 配置项有所差异,详见 数据库特定配置
3. 配置示例
config() 配置一般放置在模型代码的开头,例如:
配置增量模型
config()
宏的一个常见用途是定义数据模型的增量策略。
增量(Incremental) 是一种物化方式,每次运行时仅更新新增数据。相比于全量更新的表(Table),增量模型能够减少数据转换所需的时间和资源,适用于周期性更新的大数据集。
在模型的元数据面板中,你可以指定物化选项为 incremental
。默认情况下,此选项采用 追加(append) 的方式,每次构建时仅向表中追加新数据,可能会导致重复数据的写入。
因此,你可以指定以下配置来实现按主键字段增量更新:
unique_key
:定义数据的唯一标识符,实际运行时会根据主键字段的取值是否已存在,来决定插入新记录还是更新现有记录。incremental_strategy
:处理增量更新的方式,常见策略包括:merge:基于唯一键更新现有记录并插入新记录。
append:仅追加新记录,不更新现有记录。
insert_overwrite:根据指定条件覆盖现有记录。
is_incremental()
:用于筛选在运行过程中应增量更新的数据。你可以借助此语法指定增量更新的数据范围
示例:
在 orders
(订单)表中,我们可以实现增量物化,使其仅处理自上次运行以来新增或更新的订单,以减少处理时间并确保表数据保持最新:
数据库特定配置
由于不同数据库平台在优化数据处理方面采用不同的方法,因此某些配置是专门为特定平台设计和应用的。有关这些平台特定配置和行为的详细信息,请参考 PLATFORM SPECIFIC 文档。
Last updated