数据集成模块中如何配置脚本模式输入组件

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: 脚本模式组件采用的是配置json的方式配置同步任务。当表单模式透出的配置参数无法支持同步场景诉求时或配置项比较复杂,目前dataphin自定义组件UI不支持时,可采用脚本模式输入组件进行配置。本文将介绍如何同步Mysql 多表join的结果数据作为示例,其余场景均可参照此例的配置。

作者:终古


1 组件简介

脚本模式组件采用的是配置json的方式配置同步任务。

主要使用场景:

  • 当表单模式透出的配置参数无法支持同步场景诉求:
  • 比如mysql等数据库输入组件读取多表join等任何复杂sql的结果
  • 比如读取一些数据库的元数据表
  • 比如某些组件需要一些额外的配置
  • 比如表、字段存在关键字,表单模式组件无法处理
  • 配置项比较复杂,目前dataphin自定义组件UI不支持时

本文将介绍如何同步Mysql 多表join的结果数据作为示例,其余场景均可参照此例的配置。

2 组件配置介绍

51.png

如上图所以,依次操作选择数据源类型、数据源、生成同步配置文件

  • 数据源类型

dataphin离线数据集成支持的数据源以及自定义数据源

  • 数据源实例

相应的数据源实例

  • 生成同步配置文件

会根据所选的数据源类型生成配置json的模板,可根据自己的业务需求删减配置项、修改配置项的值

  • 模版配置说明

主要有三部分组成: table、column、parameter

{
    "table":"tableName",
    "column":[
        {
            "name":"",
            "type":""
        }
    ],
    "parameter":{
    }
}


  • table

配置输入表,多表情况可以只写一个表

  • column

作为输入表的输入字段,为了能让其下游组件后去输入字段及类型,所以要求字段对象至少具备 name 和 type 两个值,有些输入组件可能需要字段在字段列表中的索引位置 index。

  • parameter

同步配置相关的参数,数据源不通配置不同

3 组件使用

本节,将介绍同步mysql(所有rdbms数据库都支持) 多表join的结果数据至odps。

join sql:

select a.id, b.name
from sff_id_name a
         join sff_id_name_1 b on a.id = b.id


3.1 rdbms数据库-querySql

52.png

  • 配置内容:
{
    "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也是个数组,也说明了是支持多个connection,即多个数据库连接。

  • 预览结果:

53.png

3.2 rdbms数据库-connection

如上所述,支持多个数据库连接,比如我有一张表,分布在多个数据库下,想一次性读取,那使用这种方式也是可以的。但前提是多个数据库连接的用户名、密码相同。

{
    "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://xxxxxxxxxx.mysql.rds.aliyuncs.com:3306/dataphin"
                ],
                "querySql": [
                    "select id,name from sff_id_name"
                ]
            }
        ]
    },
    "column": [
        {
            "name": "id",
            "type": "Long"
        },
        {
            "name": "name",
            "type": "String"
        }
    ]
}


如上所示,多个数据库连接,第一个可以不配置jdbcUrl,这个会使用数据源配置的url,第二个开始便需要配置jdbcUrl,每个连接配置自己的querySql,但一定要保持select 字段名称、顺序、类型一致。

当然,多connection既支持querySql也支持直接配置表,直接使用"table":["tab1","tab"2]即可。注意querySql和table不能同时配置,只能选择一种

4 总结

脚本模式输入输出组件比较强大、灵活。使用的前提是对json的配置比较了解,尤其是了解每个数据源的配置项格式。

也就是说,每个数据源其实有很多配置项,这些配置项有的是用于性能,有的是用于业务,这些配置可以参见脚本模式输入输出组件的右上角的"组件说明"。这里也介绍了组件的脚本模式配置模板及常见配置参数

54.png

目录
相关文章
|
2月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
3月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
80 3
|
2月前
|
缓存 负载均衡 Java
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
文章标题为“OpenFeign的Ribbon负载均衡详解”,是继OpenFeign十大可扩展组件讨论之后,深入探讨了Ribbon如何为OpenFeign提供负载均衡能力的详解。
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
|
2月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
49 1
|
2月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
【8月更文挑战第30天】在Jenkins服务器中,git和Gitee是常用的代码拉取终端。Git作为分布式版本控制系统,具备出色的灵活性和可扩展性;而Gitee则在国内网络环境下表现更佳,适合团队协作。Git配置包括安装、设置用户信息及生成SSH密钥等步骤;Gitee配置也类似,需注册账号、创建仓库、配置基本信息并设置远程仓库地址。开发人员提交代码后,可通过Webhook、定时轮询或事件监听等方式触发Jenkins动作,确保持续集成和部署高效运行。正确配置这些触发机制并通过测试验证其有效性至关重要。
54 2
|
1月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
53 0
|
2月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
48 0
|
3月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
192 6
|
2月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
【Azure Redis 缓存 Azure Cache For Redis】在创建高级层Redis(P1)集成虚拟网络(VNET)后,如何测试VNET中资源如何成功访问及配置白名单的效果
|
2月前
|
开发框架 NoSQL .NET
使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性
使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性

热门文章

最新文章

下一篇
无影云桌面