脚本模式组件用于配置系统组件不支持的配置项,以满足业务场景。
操作步骤
在Dataphin首页顶部菜单栏,选择研发 > 数据集成。
在集成页面顶部菜单栏选择项目(Dev-Prod模式需要选择环境)。
在左侧导航栏中单击离线集成,在离线集成列表中单击需要开发的离线管道,打开该离线管道的配置页面。
单击页面右上角的组件库,打开组件库面板。
在组件库面板左侧导航栏中需选择输入,在右侧的输入组件列表中找到脚本模式输入组件,并拖动该组件至画布。
单击脚本模式输入组件卡片中的
图标,打开脚本模式输入配置对话框。
在脚本模式输入配置对话框,配置参数。
参数
描述
参数
描述
步骤名称
即脚本模式输入组件的名称。Dataphin自动生成步骤名称,您也可以根据业务场景修改。命名规则如下:
只能包含中文、字母、下划线(_)、数字。
不能超过64个字符。
数据源类型
选择数据源类型。
数据源
选择相应的数据源实例。
生成同步配置文件
单击生成同步配置文件,系统将自动根据所选的数据源类型,在右侧配置文件区域生成配置JSON的模板,您可根据实际业务需求删减配置项或修改配置项的值。
配置文件
模板配置中主要由三部分组成:
table
和tables
:输入组件的单输入表和多输入表。多输入表的key值为tables,单输入表的key值为table。如果组件不涉及表,则没有该参数。column
:输入表的输入字段,字段至少有name
和type
。parameter
:同步配置相关的参数,数据源不同则配置不同,组件参数请参见对应组件的说明。
{ "table":"tableName",// "tables":["tableName"] "column":[{ "name":"", "type":"" }], "parameter":{} }
单击确认,完成脚本模式输入组件的属性配置。
最佳实践
脚本模式组件采用配置JSON的方式来配置离线集成任务,其主要使用场景包含:
使用无法白屏配置的组件高级配置项。
当元数据不支持(例如查表、查字段时出现错误或不可用),需手动配置相关表及字段。
解决关键字问题,例如表名、字段名等特殊关键字。
使用数据库函数。
分库分表。
直接使用查询SQL。
下文将以同步MySQL多表JOIN的结果数据为例进行说明,其他场景均可参照本例进行配置。
一:配置介绍
在脚本模式输入配置对话框中,配置参数。
参数 | 描述 |
参数 | 描述 |
步骤名称 | 输入脚本模式输入组件的名称。 |
数据源类型 | 选择MySQL。 |
数据源 | 选择相应数据源实例。 |
生成同步配置文件 | 单击生成同步配置文件,系统将自动根据所选的数据源类型,在右侧配置文件区域生成配置JSON的模板,您可根据实际业务需求删减配置项或修改配置项的值。 |
配置文件 | 模板配置中主要由三部分组成:
|
二:组件使用
不同使用场景,组件的使用示例如下。
例如,同步一个多表JOIN的结果数据或其他自定义SQL取数,配置文件内容如下。
{
"table": "sff_id_name",
"parameter": {
"connection": [
{
"querySql": [
"select a.id, b.name from sff_id_name a join sff_id_name_1 b on a.id = b.id"
]
}
]
},
"column": [
{
"name": "id",
"type": "Long"
},
{
"name": "name",
"type": "String"
}
]
}
若使用复杂的SQL,则需要使用querySql
配置项,该配置项为字符串数组,支持多个结构一致的SELECT语句。此外,该配置项必须嵌套在connection
中,并且支持多个connection
,即多个数据库连接。
分库分表是指在表结构一致的前提下,数据分布在多个数据库和多个表中。
使用querySql
{ "table": "sff_id_name", "parameter": { "connection": [ { "querySql": [ "select a.id, b.name from sff_id_name a join sff_id_name_1 b on a.id = b.id" ] }, { "jdbcUrl": [ "jdbc:mysql://ip:3306/dataphin" ], "querySql": [ "select id,name from sff_id_name" ] } ] }, "column": [ { "name": "id", "type": "Long" }, { "name": "name", "type": "String" } ] }
直接配置表名
{ "table": "sff_id_name1", "parameter": { "connection": [ { "table": [ "sff_id_name1","sff_id_name2" ] }, { "jdbcUrl": [ "jdbc:mysql://xxx:3306/dataphin1" ], "table": [ "sff_id_name3","sff_id_name4" ] }, { "jdbcUrl": [ "jdbc:mysql://xxx:3306/dataphin2" ], "table": [ "sff_id_name5","sff_id_name6" ] } ] }, "column": [ { "name": "id", "type": "Long" }, { "name": "name", "type": "String" } ] }
直接使用数据库支持的函数,比如使用MySQL的upper
函数。
{
"tables":[
"sff_id_name_2"
],
"parameter":{
"where":"id>0",
"splitPk":"id"
},
"column":[
{
"name":"id",
"type":"Long"
},
{
"name":"upper(name)",
"type":"String"
}
]
}
根据数据库对关键字的处理,MySQL使用反引号(``)来标识关键字。例如,关键字为id
,则可使用`id`
。
{
"tables":[
"sff_id_name_2"
],
"parameter":{
"where":"id>0",
"splitPk":"id"
},
"column":[
{
"name":"`id`",
"type":"Long"
},
{
"name":"upper(name)",
"type":"String"
}
]
}
- 本页导读 (0)
- 操作步骤
- 最佳实践
- 一:配置介绍
- 二:组件使用