etl 常用数据类型转换 元数据配置说明

在实施etl过程中,经常会遇到不同类型之间的转换,方式有很多种,下面是项目中使用etl-engine进行数据类型转换的收集整理,方便日后工作中查阅。
etl-engine转换的方式有多种,一种是通过sql语句直接转换(比较方便),另一种是通过在输出节点的beforeout 标签中嵌入go脚本对相应字段按业务要求进行转换(功能强大),下面只介绍第一种情况。

元数据Metadata配置说明

元数据文件定义目标数据格式(如输出节点中定义的renameOutputFields或renameOutputTags所对应的字段名称及字段类型)
outputFields是输入节点中数据结果集中的字段名称, 将outputFields定义的字段转换成renameOutputFields定义的字段,其renameOutputFields转换格式通过元数据文件来定义。

属性 说明 适合
id 唯一标示
field
name 输出数据源的字段名称 renameOutputFields,
renameOutputTags
type 输出数据源的字段类型 string,int,int32,float,
str_timestamp,decimal,
datetime,timestamp,bool,blob
default 默认值 当nullable为false时,如果输出值为空字符串,则可以通过default来指定输出的默认值
nullable 是否允许为空 false是不允许为空,必须和default配合使用。true是允许为空。
通过增加一个field并设置nullable为true可以实现增加字段功能。
errDefault 如果输入数据向输出数据类型转换失败时,是否启动默认值 如果设置值,则转换出错时也能向下执行,即出错的值使用该默认值,
如果不设置该值,则转换出错时不能向下执行。
dataFormat 对日期输出格式的配置 string -> datetime 或 datetime -> string 需要配置日期格式
日期格式配置如: YYYY-MM-DD hh:mm:ss 或YYYY-MM-DD hh:mm:ssZ+8h
dataLen 对小数位格式的配置 string -> decimal 格式设置输出数字小数点位数,代表保留小数点后几位 ; 或 输出string类型时 格式设置代表输出内容的总长度

样本

 <Metadata id="METADATA_01">
<!--    <Field name="time" type="str_timestamp" default="-1" nullable="false" errDefault=""/>-->
<!--    <Field name="time" type="string" default="-1" nullable="false" errDefault=""/>-->

    <Field name="c1" type="int32" default="-1" nullable="false" errDefault="" dataFormat="" />
<!--    <Field name="c2" type="decimal" default="-1" nullable="false" errDefault="" dataFormat="" />-->
    <Field name="c2" type="float" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="c3" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="c4" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="tag_1" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="tag_2" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="tag_3" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    <Field name="tag_4" type="string" default="-1" nullable="false" errDefault="" dataFormat="" />
    
<!--    <Field name="writetime" type="datetime" default="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值