Vertica
离线同步任务支持Vertica,支持该数据源的抽取(Reader)和导入(Writer),当前支持的版本为:10.0.1、11.1.1。
使用前提
在使用之前需要在项目中心(新)完成Vertica数据源的登记并测试通过。
数据源登记过程中,需要填写如下信息:
- 源系统账号鉴权:源系统账号鉴权开关,仅在首次登记数据源时可配置生效,保存后不可修改。对于开启的数据源,保存后会自动进入该数据源的详情页。在数据源的详情页可以编辑该数据源,添加本平台账号和源系统账号的映射关系(可参考源系统账号映射)
- 数据源名称:Vertica数据源的名称
- 数据源标识:仅允许包含英文小写、数字、下划线,只允许英文小写开头,最大长度为64个字符。平台内唯一,保存数据源后数据标识不可修改
- 归属项目:由于元数据中心是项目组级别,因此此处支持选择项目组下的项目,默认为当前项目名称
- 负责人:默认为当前创建人员
- 协助管理员:同负责人,有该数据源的管理权限,包括编辑、设置“源系统账号映射”。可在安全中心为自己或其他人设置该数据源的使用权限
- 版本:支持选择10.0.1
- 数据源连接:根据jdbc:vertica://ServerIP:Port/Database格式进行填写
- 用户名:填写访问数据源的用户名
- 密码:填写用户名所对应的密码
- 自定义属性:支持添加数据源的其它配置
唯一性校验规则: 1)如果未开启源系统账号鉴权,则基于数据源连接+用户名+schema进行校验; 2)如果开启源系统账号鉴权,则基于数据源连接进行校验。 |
数据源配置完成后,需点击测试连接按钮进行测试,测试通过后才可使用。
除了数据源需要准备之外,进行离线同步任务创建和数据源的使用都需要在安全中心-功能权限中添加相应的权限(可参考数据传输权限、元数据中心权限)。
Vertica作为数据来源
以Vertica to Hive为例,在数据来源端选择Vertica数据源类型及数据源名称,选择需要进行读取的schema和表。
数据过滤支持条件、流水型及自定义。
- 条件型:按列设置过滤规则,可添加一或多组条件,条件默认为AND关系。
- 流水型:从选择字段的起始值开始读取数据,读取到最新记录位置,下次从上次的最新记录读取至当前的最新记录。流水型数据过滤方式生效满足以下条件:1. 选取的字段是单调递增的;2. 离线开发任务提交到线上调度执行。
- 自定义:填写where过滤语句(不含where关键字),通常用作增量同步,支持系统参数和参数组参数。
特殊字符替换、并发读取、流量控制根据实际情况进行填写。
Vertica作为数据去向
以FTP to Vertica为例,当Vertica作为数据去向时,除了需要填写数据源类型、数据源等基础信息之外,还可以填写PreSql和PostSql。
- PreSql:执行数据同步任务之前率先执行的SQL语句;目前向导模式仅允许执行一条SQL语句,例如清除旧数据。
- PostSql:执行数据同步任务之后执行的SQL语句;目前向导模式仅允许执行一条SQL语句,例如加上某一个时间戳。
Vertica支持INSERT INTO、COPY写入规则。当选择INSERT INTO时,支持流量控制的配置,可根据实际情况进行填写。
写入规则 — COPY
Vertica写入规则Copy的使用前提条件如下:
- 数据来源端数据源类型为Hive、MySQL、Oracle、Vertica、FTP-text
- 当为FTP-text时,FTP读取方式为结构化
- 当为FTP-text时,文件格式需为text
- 关闭特殊字符替换
当满足上述条件后,Vertica支持选择Copy写入规则,如下:
当选择COPY时,支持配置报错时任务中止、错误记录容忍、错误记录保存、字段长度检验、消除转义字符。
- 报错时任务中止:开启后,如遇错误记录则任务中止,本次实例读取数据均不写入Vertica表。需要注意的是,当开启报错时任务中止时,不支持开启错误记录容忍。(对应参数:ABORT ON ERROR)
- 错误记录容忍:需要关闭报错时任务中止才能开启。开启后,支持设置错误记录容忍数,如果不填写,则默认允许脏数据,该功能不允许错误记录数达到错误记录容忍数,例如错误记录容忍数为5,则往去向表写入第4条错误记录时,任务自动结束。(对应参数:REJECTMAX)
- 错误记录保存:开启后,脏数据会写入指定的Vertica表中。支持配置脏数据写入的Vertica表,格式为schema.table。需要注意以下几种情况:
- 如果表名包含特殊字符,则表名格式为"schema.table"
- 如果未填写schema仅填写table,则默认schema为public
- 如果未指定vertica表,则schema默认为public,表名系统自动生成为 dirty_任务名称,此时如果任务名称中包含(-)则任务会报错
- 字段长度检验:开启后,当某条记录中存在数据类型为char、varchar、binary、varbinary的字段,且字段长度大于字段指定长度时,会被识别为错误记录。(对应参数:ENFORCELENGTH)
- 消除转义字符:开启后,能够防止表中数据被解析为转义序列。(对应参数:NO ESCAPE)
高级配置项说明
可通过高级配置添加Vertica Copy官方文档更多的命令参数。
target.handlingOptions.i支持Vertica官方Copy Parameters文档中Handling Options和Parser-Specific Options包含的参数,i为属性添加的顺序,从0开始递增。示例:target.handlingOptions.0=NO ESCAPE。
target.columnOptions.i支持Vertica官方Copy Parameters文档中Column OPTION包含的参数,可以指定列的属性,i为属性添加的顺序,从0开始递增。示例:target.columnOptions.0=id NULL 'xxx'。