A公司基于Vertica的数仓建设,需要将Oracle数据库中历史数据和增量数据实时同步至Vertica数仓用于数据分析。
通常数仓建设会将源库中的所有业务表同步至数仓,源CDC组件可以模糊匹配某个模式下的所有表,通过源CDC可以方便配置并监控Oracle库下的所有表,指定并行度后实现全量并行抽取历史数据并且无缝转增量抽取。
通过源CDC组件抽取Oracle数据库中历史数据和增量数据,然后通过目标端加载组件将数据实时同步至Vertica数仓。
图-1 实时作业图示
Oracle数据源已添加,测试连接通过并且用户有查看归档日志的权限。
Oracle库已开启日志归档并且启用logminer。
Vertica数据源已添加并测试连接通过。
配置源CDC相关参数
将需要进行数据同步的源数据源和目标数据源拖入作业设计画布,配置源端抽取组件的基本信息,抽取方式选择“增量+全量”,选择Oracle数据库中要抽取的数据表。
图-2 基本配置
在高级配置页签下根据抽取的数据量选择推荐的批量大小和并行度配置,如果抽取的表中包含blob、clob、xmltype等大字段时建议调小批量大小,批量大小建议不超过100。
图-3 高级配置
配置转换组件相关参数
字段转换页签:获取从源CDC组件输出的表,用户可根据实际的业务需求对表中的字段进行处理。
源字段:上游组件输出字段的字段名称。
重命名:重新定义上游组件输出字段的字段名称。
字段类型:上游组件输出字段的类型。
f(x)表达式:通过函数对字段进行处理。
输出:勾选要传递给下游组件的字段。
图-4 字段转换配置
数据标签页签:对源库中抽取出来的数据增加标签字段。
表达式各配置项含义:
option:该表达式是指数据操作类型,共有3种,INSERT、UPDATE、DELETE,使用该表达式字段类型必须选择STRING。其中DELETE选项需要用户勾选了“启动软删除”配置项后才会出现。
original time:指从源库抽取的时间。
now time:指当前时间。
source tablet id:源库名、源模式名(若有则展示)、源表名之间用英文句号连接,结构为:catalog.schema.table。如果源库是MySQL,结构为catalog.table。
source schema table:源库名/源模式名、源表名二者用英文句号连接,如果源库是MySQL,结构为catalog.table,如果源库是Oracle、SQL Server、PostgreSQL,结构为schema.table。
source catalog:代表源库名。
source schema:代表源模式名。
source table:代表源表名。
source ip:代表源库IP。
source port:代表源库端口。
source ip:port:结构为源库IP和端口用英文冒号连接。
图-5 数据标签配置
配置目标端加载组件配置参数
表名映射页签:当源库中模式名和表名与目标库中模式名和表名不一致时,需使用该配置项配置映射关系。
配合源模式、源表名与目标模式、目标表名的匹配关系。源表名和目标表名支持通过*进行匹配,*代表源表名和目标表名相同的部分。
自动建表如果选择是,则当目标表名匹配不到时会自动在目标库创建表。
图-6 表名映射配置
高级配置页签:配置增量并行度、提交间隔等参数。
图-7 高级配置页签