DB2是IBM的一款关系型数据库管理系统,JDBC DB2 Source Connector是一个用于通过JDBC读取外部数据源数据的连接器。Apache SeaTunnel如何支持JDBC DB2 Source Connector?请参考本文档。

支持引擎

Spark

Flink

SeaTunnel Zeta引擎

主要特性

  • 批处理(batch)
  • 精确一次(exactly-once)
  • 列投影(column projection)
  • 并行处理(parallelism)
  • 支持用户自定义分割(support user-defined split)

它支持查询SQL并可以实现投影效果。

描述

通过 JDBC 读取外部数据源数据。

支持数据源

数据源 支持版本 驱动程序 URL Maven
DB2 不同的依赖版本有不同的驱动程序类。 com.ibm.db2.jdbc.app.DB2Driver jdbc:db2://127.0.0.1:50000/dbname Download

数据库依赖

数据库依赖需要下载对应'Maven'的支持列表并复制到'$SEATNUNNEL_HOME/plugins/jdbc/lib/'工作目录。

例如,DB2数据源:cp db2-connector-java-xxx.jar $SEATNUNNEL_HOME/plugins/jdbc/lib/

数据类型映射

DB2数据类型 SeaTunnel数据类型
BOOLEAN BOOLEAN
SMALLINT SHORT
INT
INTEGER
INTEGER
BIGINT LONG
DECIMAL
DEC
NUMERIC
NUM
DECIMAL(38,18)
REAL FLOAT
FLOAT
DOUBLE
DOUBLE PRECISION
DECFLOAT
DOUBLE
CHAR
VARCHAR
LONG VARCHAR
CLOB
GRAPHIC
VARGRAPHIC
LONG VARGRAPHIC
DBCLOB
STRING
BLOB BYTES
DATE DATE
TIME TIME
TIMESTAMP TIMESTAMP
ROWID
XML
Not supported yet

源选项

名称 类型 必需 默认 描述
url String Yes - JDBC连接的URL。参考案例:jdbc:db2:127.0.0.1:50000/dbname
driver String Yes - 用于连接到远程数据源的jdbc类名。如果你使用db2,值是com.ibm.db2.jdbc.app.DB2Driver
user String No - 连接实例用户名
password String No - 连接实例密码
query String Yes - 查询语句
connection_check_timeout_sec Int No 30 用于验证连接到完成以等待数据库操作的时间(以秒为单位)
partition_column String No - 用于并行处理的分区列名,仅支持数值类型,仅支持数值类型主键,并且只能配置一个列。
partition_lower_bound Long No - partition_column的扫描最小值,如果未设置,SeaTunnel将查询数据库获取最小值。
partition_upper_bound Long No - partition_column的扫描最大值,如果未设置,SeaTunnel将查询数据库获取最大值。
partition_num Int 可选 作业并行度 分区计数的数量,仅支持正整数。默认值为作业的并行度。
fetch_size Int 可选 0 对于返回大量对象的查询,您可以配置在查询中使用的行抓取大小,以提高性能,减少满足选择条件所需的数据库访问次数。零表示使用 JDBC 的默认值。
common-options 可选 - 源插件的通用参数,请参考 Source Common Options 获取详细信息。

提示

如果未设置 partition_column,则将以单一并发方式运行;如果设置了 partition_column,则根据任务的并发度并行执行。

任务示例

简单示例:

此示例在单一并发模式下查询您的测试数据库中类型为 'table' 的 16 条数据,并查询其所有字段。您还可以指定要查询的最终输出到控制台的字段。

# Defining the runtime environment
env {
# You can set flink configuration here
execution.parallelism = 2
job.mode = "BATCH"
}
source{
Jdbc {
url = "jdbc:db2://127.0.0.1:50000/dbname"
driver = "com.ibm.db2.jdbc.app.DB2Driver"
connection_check_timeout_sec = 100
user = "root"
password = "123456"
query = "select * from table_xxx"
}
} transform {
# If you would like to get more information about how to configure seatunnel and see full list of transform plugins,
# please go to https://seatunnel.apache.org/docs/transform-v2/sql
} sink {
Console {}
}

并行示例:

如果想要读取整个表,可以根据您配置的分片字段和分片数据,在并行方式下读取查询表。

source {
Jdbc {
url = "jdbc:db2://127.0.0.1:50000/dbname"
driver = "com.ibm.db2.jdbc.app.DB2Driver"
connection_check_timeout_sec = 100
user = "root"
password = "123456"
# Define query logic as required
query = "select * from type_bin"
# Parallel sharding reads fields
partition_column = "id"
# Number of fragments
partition_num = 10
}
}

并行边界:

在查询中指定数据的上限和下限边界更加高效。根据您配置的上限和下限边界来读取您的数据源,效率更高。

source {
Jdbc {
url = "jdbc:db2://127.0.0.1:50000/dbname"
driver = "com.ibm.db2.jdbc.app.DB2Driver"
connection_check_timeout_sec = 100
user = "root"
password = "123456"
# Define query logic as required
query = "select * from type_bin"
partition_column = "id"
# Read start boundary
partition_lower_bound = 1
# Read end boundary
partition_upper_bound = 500
partition_num = 10
}
}

SeaTunnel DB2 Source Connector 使用文档(含详细操作步骤)的更多相关文章

  1. JavaDoc文档生成详细操作

    JavaDoc练习 JavaDoc是一种将注释生成HTML文档的技术,是用来生成自己API文档的. 参数信息 /* @author 作者名 @version 版本号 @since 知名最早需要使用的j ...

  2. 实战ASP.NET访问共享文件夹(含详细操作步骤)

    博客园找找看(http://zzk.cnblogs.com)的索引文件占用空间太大,需要移至另外一台服务器,所以要解决"在ASP.NET中通过共享文件夹访问索引文件"的问题. 假设 ...

  3. ready是先执行的,load后执行,DOM文档的加载步骤

    在jq中在文档载入完毕后有这几种方式去执行指定函数: $(document).ready(function() { // ...代码... }); //document ready 简写 $(func ...

  4. 可能比文档还详细--VueRouter完全指北

    可能比文档还详细--VueRouter完全指北 前言 关于标题,应该算不上是标题党,因为内容真的很多很长很全面.主要是在官网的基础上又详细总结,举例了很多东西.确保所有新人都能理解!所以实际上很多东西 ...

  5. Win7_Ultimate + VS2010 + openGL_MFC单文档应用开发框架搭建步骤

    Win7_Ultimate + VS2010 + openGL单文档应用开发框架搭建步骤 上一个配置是基于OpenGL的开发工具配置的,下面就是基于Vs2010的MFC单文档应用开发. 通过网上查找资 ...

  6. 关于Elasticsearch文档的描述以及如何操作文档的详细总结

    文档 什么是文档 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象. 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些 ...

  7. shift+alt 可对notepadplusplus 打开的文档进行列操作

    shift+alt 可对notepadplusplus 打开的文档进行列操作

  8. es之对文档进行更新操作

    5.7.1:更新整个文档 ES中并不存在所谓的更新操作,而是用新文档替换旧文档: 在内部,Elasticsearch已经标记旧文档为删除并添加了一个完整的新文档并建立索引.旧版本文档不会立即消失 ,但 ...

  9. C#使用NPOI对Word文档进行导出操作的dll最新版2.5.1

    Npoi导出非模板 最近使用NPOI做了个导出Word文档的功能,因为之前都是导出Excel很方便(不用模板),所以导出Word也选用了Npoi(也没有用模板,

  10. 【JAVA与DOM4J实现对XML文档的CRUD操作】

    一.简介 1.网上下载DOM4J 1.6.1压缩包,解压开之后,发现几个目录和一个jar文件,jar文件是必须的文件其它目录: docs目录:帮助文档的目录,单击index.html: Quick s ...

随机推荐

  1. 【IEEE 出版】 第三届能源与电力系统国际学术会议 (ICEEPS 2024)

    [连续2届会后4-5个月EI检索,检索稳定!特邀院士.Fellow 报告!]第三届能源与电力系统国际学术会议 (ICEEPS 2024)以"创造更加柔性.智能的能源电力系统"为主题 ...

  2. spring的问题-能耗、学习曲线

    说实话,在过去将近20年中,spring对于it行业的帮助还是很大的,尤其是信息系统建设方面. 但在我看来,spring的发展也许进入了一个困局. 开始的时候,spring的确是一个还是算小巧的工具, ...

  3. Debian安装Redis服务

    Debian安装Redis服务 安装命令 apt-get update apt-get install redis-server 等待安装完成 配置密码 编辑Redis的配置文件/etc/redis/ ...

  4. Linux 修改 hostname

    背景 之前安装Linux系统的时候,没有明确指定.现在因为在做某些实验的时候,为了更好地区分我所登录的每一台服务器. 于是有了此文. 做法 首先修改/etc/hostname,修改为自己想要的名字xx ...

  5. 《Programming from the Ground Up》阅读笔记:p1-p18

    <Programming from the Ground Up>学习第1天,p1-18总结,总计18页. 一.技术总结 1.fetch-execute cycle p9, The CPU ...

  6. 从零开始带你上手体验Sermant自定义插件开发

    本文分享自华为云社区<Sermant自定义插件开发上手体验>,作者:华为云开源. 一.研究缘由 由于目前我们所处的行业是汽车行业,项目上进行云服务的迁移时使用到了Sermant中的相关插件 ...

  7. ubuntu16 安装 python-networkmanager 失败

    前言 ubuntu16 安装 python-networkmanager 失败 解决方案 sudo apt-get install libdbus-1-dev sudo apt-get install ...

  8. Mysql 分表分库的策略

    为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了. 分表的目的就在于此,减小数据库的负担,缩短查询时间. 日常开发中我们经常会遇到大表的情况 ...

  9. sshd管理限制登录配置(centos7.9)

    背景情况:为了公网的主机,被无限的密码爆破,需要对主机的ssh进行安装加固 1.首先要禁用root的远程登录和修改ssh的端口 vi /etc/ssh/sshd_config# 修改端口,不适用22端 ...

  10. 在MoneyPrinterPlus中使用本地chatTTS语音模型

    之前MoneyPrinterPlus在批量混剪,一键AI生成视频这些功能上的语音合成功能都用的是云厂商的语音服务,比阿里云,腾讯云和微软云. 云厂商虽然提供了优质的语音服务,但是用起来还是要收费. 为 ...