栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SeaTunnel 2.1.2的源码解析(1)seatunnel-connectors-flink-jdbc

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SeaTunnel 2.1.2的源码解析(1)seatunnel-connectors-flink-jdbc

SeaTunnel 2.1.2的源码解析(1)seatunnel-connectors-flink-jdbc
  • 本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star
    • 1、总览
    • 2、ST封装flink连接数据库的源码分析

本文已参与「开源摘星计划」,欢迎正在阅读的你加入。活动链接:https://github.com/weopenprojects/WeOpen-Star

你好! 这是我第一次简单分享一下开源项目SeaTunnel(下文简称ST,用于数据集成的项目)的一小部分的源码解析,如有出错,请多指教并在评论区指正。

1、总览

2、ST封装flink连接数据库的源码分析

ST对Hive、MySql、Oracle、Postgres等进行了jdbc的连接支持:

  1. DefaultTypeInformationMap ,主要是创建一个HashMap存储默认的数据类型的转换;
private static final Map> INFORMATION_MAP = new HashMap<>();

    static {
        {
            INFORMATION_MAP.put("VARCHAR", STRING_TYPE_INFO);
            INFORMATION_MAP.put("BOOLEAN", BOOLEAN_TYPE_INFO);
            INFORMATION_MAP.put("TINYINT", BYTE_TYPE_INFO);
            INFORMATION_MAP.put("SMALLINT", SHORT_TYPE_INFO);
            INFORMATION_MAP.put("INTEGER", INT_TYPE_INFO);
            INFORMATION_MAP.put("MEDIUMINT", INT_TYPE_INFO);
            INFORMATION_MAP.put("INT", INT_TYPE_INFO);
            INFORMATION_MAP.put("BIGINT", LONG_TYPE_INFO);
            INFORMATION_MAP.put("FLOAT", FLOAT_TYPE_INFO);
            INFORMATION_MAP.put("DOUBLE", DOUBLE_TYPE_INFO);
            INFORMATION_MAP.put("CHAR", STRING_TYPE_INFO);
            INFORMATION_MAP.put("TEXT", STRING_TYPE_INFO);
            INFORMATION_MAP.put("LONGTEXT", STRING_TYPE_INFO);
            INFORMATION_MAP.put("DATE", SqlTimeTypeInfo.DATE);
            INFORMATION_MAP.put("TIME", SqlTimeTypeInfo.TIME);
            INFORMATION_MAP.put("DATETIME", SqlTimeTypeInfo.TIMESTAMP);
            INFORMATION_MAP.put("TIMESTAMP", SqlTimeTypeInfo.TIMESTAMP);
            INFORMATION_MAP.put("DECIMAL", BIG_DEC_TYPE_INFO);
            INFORMATION_MAP.put("BINARY", BYTE_PRIMITIVE_ARRAY_TYPE_INFO);
        }
  1. 以此类推,PostgresTypeInformationMap,MysqlTypeInformationMap ,OracleTypeInformationMap,HiveTypeInformationMap也是创建一个HashMap存储相应的数据库字段类型的转换,因此还可以拓展更多的关系型数据库。
  2. JdbcSink 有这些核心的方法:设置配置setConfig(…)、获取配置getConfig()、检查配置checkConfig()、准备环境prepare(…)、流输出outputStream(…)、批输出outputBatch(…)、执行sql语句executeSql(…)、sink前执行sql语句executePreSql() 、sink后执行sql语句executePostSql()、关闭close();
  3. JdbcSource 有这些核心的方法:设置配置setConfig(…)、获取配置getConfig()、检查配置checkConfig()、准备环境prepare(…)、初始化分区initPartition(…)、获取数据集getData(…)、获取数据库字段对应的数据类型转换集合getRowInfo(…)、初始化表字段的数据类型initTableField(…)等等;
  4. Config 记录配置信息的一些常量:驱动名称、用户名、密码、链接等等。
    注:SeaTunnel开源项目地址
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号