基础算子
图2
从上图可以看出,当鼠标悬浮上任一算子上时,会显示操作按钮,包括对算子的编辑和禁用操作。点击“编辑”则会弹出编辑弹窗,可对算子的名称与描述进行修改;点击“禁用”则会弹出提示弹窗,进行二次禁用确认。
注意:上述管理功能仅对管理员用户开放,普通用户只可以查看和使用。普通用户的基础算子界面如下图:
基础算子的分类主要包括三种:一种是单张表的自运算算子,一种是两张表之间的关系碰撞算子,还有一种是即可以自运算又可以进行碰撞的混合算子。我们可以在模型管理的算子列表中看到这三个部分。
自运算算子
在所有的通用算子中,自运算算子主要用来对某些尚未完全达到使用标准的单张表进行数据的调整,目前DMC支持的自运算算子主要包括:表结构处理、数据过滤、添加字段、数据聚合、数据去重、机器学习、地址转经纬度、JSON解析、算数运算、时间处理、字符串处理、空值率。这些算子的具体功能将在下面详细介绍。 图3
表结构处理
表结构处理算子主要用于支持单张表的选择字段、修改字段、字段排序、等操作功能。
图4
选择字段:用户可以通过相关字段前面的“保留”复选框来决定是否保留该字段。
修改字段:当鼠标移动到字段名称时,会出现“编辑”按钮,可以对字段进行重命名和切换字段类型操作。
字段排序:甚至可以通过拖拽字段移动调整位置对字段进行排序操作。当然,鼠标悬浮到整条时会出现“置顶”、“置底”操作,可将该字段直接设置到顶部和底部。
设置完,点击“完成”即可,后续可预览调整后的数据。
数据过滤
数据过滤是一种数据筛选的工作,系统内置的数据筛选方式包括两种:条件过滤和表达式过滤。
条件过滤支持全部条件过滤以及任意条件过滤,条件过滤的基本规则为:字段满足某条件,即第一个选择框为字段选择,第二个选择框为逻辑运算规则选择,第三个输入框为逻辑输入。可以通过点击右边的“+”按钮添加多个条件,如下图所示:
图5、6、7
现在介绍一下表达式过滤的方式,需要输入表达式的方法与“添加字段”中的相同,也是由函数和字段组成的,其中字段选择支持模糊匹配,函数选择请参考《附录——表达式过滤》。如下图所示:
图8
表达式过滤--在填写完表达式后,点击“完成”按钮,系统会自动校验用户输入表达式的正误。当表达式无误后,可进行数据的预览。
添加字段
添加字段这一算子是用来对尚未完全可用的数据表进行添加某几列数据,从而使数据表更能满足我们的要求。
添加字段算子界面主要包括字段添加区域、函数选择区域、字段选择区域、已添加字段区域。如下图所示:
图9
字段添加区域包括字段名称的填写、字段类型的选择、添加字段的表达式。其中,添加字段的表达式可能会用到一些功能函数以及输入表的字段,因此,系统内置了函数的选择以及字段的选择。函数选择区域以及字段选择区域均支持模糊匹配。其中函数选择区域的功能函数的相关介绍请参考《附录-表达式过滤》。
已添加字段区域存放的是已经完成添加的字段目录。鼠标悬浮到已添加的字段上出现“编辑”和“删除”操作。操作完成后,用户可以再次点击算子或者右键进行数据预览。
图10
数据聚合
数据聚合算子通过预先设置好维度字段数据及数值字段数据来实现一些聚合功能,它可以对数值字段数据进行求和、平均值、计数、去重计数、最大值和最小值的操作,对非数值数据进行计数与去重计数的操作。 图11、12
并且选择完维度字段数据及数值字段数据并且点击“完成”后,在算子下面区域会显示出这些字段数据,并且可以进行数据的预览,如下图:
图13、14
数据去重
数据去重算子主要用来用于对工作表进行去重操作,用户可以使用该算子执行数据去重操作,这个算子是有两个配置项,去重字段和去重规则,去重字段就是选择哪些字段需要去掉重复的数据,去重规则就是根据条件进行去重提取。
具体操作如下:
1.点击“去重字段的设置”选择去重字段,可选多个去重字段,若去重字段选择的是日期类型的字段,可以定义字段的粒度(年、月、日、时、分、秒);
2.点击“去重规则的设置”选择规则字段,也可多选多个去重规则,系统会优先判断第一个,生效后后面的不予考虑,若不生效在依次考虑第二个等;
3.只有日期类型的字段在“去重字段”和“去重规则”中重复选择,但日期的去重规则的粒度要小于去重字段的,比如:去重字段中时按日,则去重规则中能够选的粒度只有时、分、秒;
4.去重结果支持数值和文本字段类型的排序,若去重规则中选了多个字段,则统一要么降序要么都升序,数值是按照大小排序,文本是按照首字母A-Z进行排序。
5.设置完成后,点击“完成”就完成了该算子的配置。
图15、16、17、18
机器学习
机器学习算子利用已有的训练模型(多维可视机器学习)作为中间运算算子,生成一个新字段,首先需要用户选择一个已有的训练模型,然后输入新字段的名字,这时训练模型中的工作表字段就会出现在下方,如下图:
图19、20
然后需要用户进行字段之间的映射选择,当然,如果字段名称存在一样的,可以使用“自动填入字段”按钮一键映射。
地址转经纬度
地址转经纬度算子主要实现利用某个地址字段生成经度和维度两个字段,用户需要选择一个地址性质的字段作为转换依据,当选择完地址字段后,点击完成,最后在完成配置后,保存该模型,再次运行模型后,可在“数据预览”中查看新生成的经度和维度字段。
注意:这个功能主要使用的是第三方服务,如果在内网使用,需要对接第三方的地址库。
图21、22、23
JSON分析
对选定对JSON文本字段进行解析,追加输出为新字段,例如{“a”:1 ,“b”:“str”},可以新增a、b两个字段。
图24
如上图,JSON解析默认添加一个解析字段,点击左上角可以添加新的解析字段。
在下拉列表选择包含JSON格式的字段,下方左侧JSON字符串窗口选择要输出为字段的字符串,右侧输出字段窗口显示输出字段的所属路径、原字段类型和名称、新字段类型和名称,其中,新字段类型和名称可进行选择和编辑。点击右侧按钮可删除输出字段,左侧对应字符串同步取消勾选。
算数运算
算数运算算子用于对数据表中的字段或常量进行算术运算。
图25
点击上方下拉列表选择算术运算规则,在下方选择运算值的类型,类型包括字段和常量。选择字段将在右侧下拉列表选择字段,选择常量将在右侧输入常量值。在右侧输入结果字段的名称,点击完成按钮完成算子配置。
日期处理
日期处理算子包含三种日期处理方式:时间提取、时间计算、时间差。
图26
时间提取:提取时间date中制定单位的值。 图27
步骤为:选择对应的日期字段,选择要提取的日期数值的单位,输入新字段的名称和勾选是否显示单位,点击完成。以图片为例,可提取到以年为单位的年份数值。
时间计算:按照指定的时间单位和幅度修改data的值。 图28
步骤为:选择对应的日期字段,选择运算符,输入需要修改的幅度值,选择日期单位,输入新字段名称,点击完成。以图片为例,可得到以年为单位、等于原年份数值减1的新字段。
时间差:计算两个时间在指定时间单位的差值。 图29
步骤为:选择两个时间字段的类型及字段,选择要作差的数值单位,输入新字段名称及勾选是否显示单位,点击完成。值得注意的是,字段可选择为相对现在,即可完成与现在时间进行作差运算。 图30
字符串处理
字符串处理算子总共包括六种处理方式:按位数截取、计算字符长度、字符串拼接、大小写转换、字符串拆分、首位去空格。
图31
按位数截取:按位数截取字符串的值。 图32
步骤为:选择对应的字段,选择输入要截取的字符串起始位置和截取位数,并输入数值,输入新字段的名称,点击完成。起始位置可在下拉列表选择起始位置,即从字符串第一位开始截取;截取位数可以选择末尾位置,即截取到字符串最后一位。
计算字符长度:计算字段中字符串的长度。 图33
步骤为:选择对应的字段,输入新字段的名称,点击完成。
字符串拼接:将多个字段拼接成新字段。 图34
步骤为:点击左侧拼接字段窗口右上方字段设置按钮,选择要拼接的字段,在右侧窗口输入新字段的名称。支持在字段之间添加可编辑常量作为两个字段的分隔符。
大小写转换:将字段中的值进行大小写转换。 图35
步骤为:选择对应字段,选择转换类型,输入新字段名称,点击完成。
字符串拆分;将字段进行拆分为多个新字段。 图36
步骤为:左侧窗口选择对应字段并输入分隔符,右侧窗口输入拆分位数和新字段名称。点击完成。可支持输出多个字段。
首位去空格:将字段中的值去除首位存在的空格。 图37
步骤为:选择对应的字段,输入新字段的名称,点击完成。
空值率
空值率是对选定的字段进行空值率计算。字段空值率:该字段下空值行数/总行数。
首先在编辑界面点击算子组件,弹出浮层,对空值率计算的输出字段进行选择,在勾选之后,点击完成即可;然后选择预览数据,则会展示对应字段的空值率。
图38、39
碰撞算子
在通用算子列表中,碰撞算子主要用于两张输入表之间的碰撞运算,主要包括:交集算子、左连接算子、差集算子、全部合并算子、全关联算子。下面具体介绍这些算子。
交集
交集算子,虽然不是完全意义上的交集运算,却也相差无几。交集算子运算符主要包括两种:等于、不等于。
①交集运算
当算子配置界面的运算符选择“等于”号的时候,这时候执行的是常规的交集运算,它输出满足交集运算的某一字段的交集(即某一字段的公共部分)。用数学中的韦恩图表示就是下图中的阴影部分: 图40
现在假设数据源甲及乙的内部数据如下图,通过交集运算(ID=ID)得出结果如下:
图41
②对称差集运算
当算子配置界面的运算符选择“不等于”号的时候,这时候执行的不再是常规的交集运算,而是交集的补集运算,也称为对称差集。
对称差集定义如下:
集合A与集合B的对称差集定义为集合A与集合B中所有不属于A∩B的元素的集合,记为A△B,也就是说A△B={x|x∈A∪B,x∉A∩B},即A△B=(A∪B)—(A∩B).也就是A△B=(A—B)∪(B—A)。很明显,对称差集运算满足交换律:A△B=B△A;对称差集也叫做对称差分。用数学中的韦恩图表示就是下图中的阴影部分: 图42
现在假设数据源甲及乙的内部数据如下图,通过对称差集运算(ID!=ID)得出结果如下:
图43
交集算子的编辑界面主要包括识别列的选择、匹配列的选择、两个列等于或者不等于、交集条件的增加减少、设置输出字段。并且点击“完成”按钮后再次点击该算子可以预览结果数据,操作界面如下图:
图44、45
左连接
左连接即left join,没有集合的概念,以左表为主进行关联,可以配置一个或多个字段作为关联字段,输出字段默认为所有字段。
左连接实现的就是以左表的字段为基本字段,右表中与该字段一致的数据会被读取出来,不一致的为空。
假设数据源甲及乙的内部数据如下图,通过左连接运算(ID=ID)得出结果如下:
图46
左连接算子的编辑界面主要包括识别列的选择、匹配列的选择、左连接条件的增加减少、设置输出字段。并且点击“完成”按钮后再次点击该算子可以预览结果数据,如下图:
图47、48
差集
差集算子,我们可以这样定义:设A,B是两个集合,由所有属于A且不属于B的元素组成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A, B,我们把集合{x/x∈A,且x¢B}叫做A与B的差集,记作A-B记作A-B(或A\B),即A-B={x|x∈A,且x ¢B}(或A\B={x|x∈A,且x ¢B} B-A={x/x∈B且x¢A} 叫做B与A的差集。
通过上述定义不难发现,差集是分前后的,即A-B不等同于B-A。下面利用数据源甲与数据源乙做差集运算,得到的结果如下:
图49
差集算子的编辑界面主要包括识别列的选择、匹配列的选择、左连接条件的增加减少、输出字段设置。并且点击“完成”按钮后再次点击该算子可以预览结果数据,如下图:
图50、51
全部合并
全部合并,指的是,两张数据表在进行合并的时候,保留这两张表的所有数据。现在以数据源甲与乙来说明该算子的业务逻辑。
图52
全部合并算子编辑界面主要需要用户按照自己的字段排列顺序进行字段顺序的合并,支持用户通过拖拽的方式进行字段的拖动。点击工作表表头的“更多”按钮可以选择映射的字段。点击“完成”按钮后再次点击该算子可以预览结果数据。
图53、54
全关联
全关联算子就是将两张数据表进行合并的时候,把相同的数据滤掉。现在以数据源甲与乙来说明该算子的业务逻辑。
图55
全关联算子的编辑界面主要包括识别列的选择、匹配列的选择、去重合并条件的增加减少、输出字段的设置。并且点击“完成”按钮后再次点击该算子可以预览结果数据,如下图:
图56、57
混合算子
SQL
SQL算子利用数据库对输入表格进行扩展,用户可通过SQL语句自定义需要增加的数据类型以及数据值。写SQL语句时可点击“语法帮助”参考语法提示进行编写,同时写SQL条件时通过“格式化”的按钮将SQL语法格式调整为标准结构,写完后可以点击“语法校验”进行校验是否写的合格正确。
图58、59
外接输出
算子列表除了用作数据清洗处理的自运算算子和碰撞算子,还有用于将清洗后的数据导出以供可视化的外接输出。
外接输出的添加方法与其他算子相同,仅需拉动拖拽即可添加到右侧空白区域。
使用方法也比较简单,仅需将其与前面已设置好的算子连线,然后对其进行命名,添加描述等,用户可以随自己需要手动修改。最后点击“完成”按钮即可。
图60
外接输出按照输出时的计算方式不同,可分为全量输出和增量输出。
全量输出
全量输出算子的作用是每次都对父节点的全部数据进行输出计算,保存为实体数据,生成一张新表,且对于全量输出,还支持对版本记录进行设置,点击版本记录开启或关闭tab后,选择记录周期,详情可查看‘数据管理-模型结果库-版本记录’,如下表:
增量输出
增量输出算子则是每次仅对源数据中新增的数据进行输出计算,保存为实体数据,并在原结果表基础上生成一张新表。
在使用增量输出时,点击该输出算子,弹出配置浮层页面,在该页面需要选择分区字段,分区粒度,以及数据处理方式来完成增量输出的设置,如下图: