北京价格网站建设,中国佛山营销网站建设,宝塔和WordPress一样吗,旧电脑做php网站服务器在快速发展的数据驱动时代#xff0c;实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时#xff0c;如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用 SqlServer CDC 源连接器在 SeaTunnel 框架下实现 SQL Server …
在快速发展的数据驱动时代实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用 SqlServer CDC 源连接器在 SeaTunnel 框架下实现 SQL Server 到其他数据系统的实时数据同步这对于希望提升数据处理能力和实时数据分析的企业来说具有重要的实践意义。
SQL Server CDC SqlServer CDC 源连接器 支持 SQL Server 版本
服务器2019或更高版本仅供参考
支持引擎 SeaTunnel Zeta Flink 主要特性 批处理 流处理 精确一次 列投影 并行处理 支持用户自定义分片
描述
SqlServer CDC 连接器允许从 SqlServer 数据库读取快照数据和增量数据。本文档描述了如何设置 SqlServer CDC 连接器以在 SqlServer 数据库上运行 SQL 查询。
支持的数据源信息
数据源支持的版本驱动URLMavenSqlServer服务器2019或更高版本仅供参考com.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;databaseNamecolumn_type_test下载
安装 Jdbc 驱动
请下载并将 SqlServer 驱动放在 ${SEATUNNEL_HOME}/lib/ 目录下。例如cp mssql-jdbc-xxx.jar ${SEATUNNEL_HOME}/lib/
数据类型映射
SQL Server 数据类型SeaTunnel 数据类型CHARVARCHARNCHARNVARCHARSTRUCTCLOBLONGVARCHARLONGNVARCHARSTRINGBLOBBYTESINTEGERINTSMALLINTTINYINTSMALLINTBIGINTBIGINTFLOATREALFLOATDOUBLEDOUBLENUMERICDECIMAL(column.length(), column.scale().orElse(0))DECIMAL(column.length(), column.scale().orElse(0))TIMESTAMPTIMESTAMPDATEDATETIMETIMEBOOLEAN BITBOOLEAN
源选项
名称类型必需默认值描述username字符串是-连接数据库服务器时使用的用户名。password字符串是-连接数据库服务器时使用的密码。database-names列表是-需要监控的数据库名。table-names列表是-表名为模式名和表名的组合databaseName.schemaName.tableName。base-url字符串是-必须包含数据库的URL如 jdbc:sqlserver://localhost:1433;databaseNametest。startup.mode枚举否INITIALSqlServer CDC 消费者的可选启动模式有效枚举为 initial、earliest、latest 和 specific。startup.timestamp长整型否-从指定的纪元时间戳以毫秒为单位开始。 注意当使用 startup.mode 选项为 timestamp 时此选项是必需的。startup.specific-offset.file字符串否-从指定的 binlog 文件名开始。注意当 startup.mode 选项使用 specific 时此选项是必需的。startup.specific-offset.pos长整型否-从指定的 binlog 文件位置开始。注意当 startup.mode 选项使用 specific 时此选项是必需的。stop.mode枚举否NEVERSqlServer CDC 消费者的可选停止模式有效枚举为 never。stop.timestamp长整型否-从指定的纪元时间戳以毫秒为单位停止。注意当 stop.mode 选项使用 timestamp 时此选项是必需的。stop.specific-offset.file字符串否-从指定的 binlog 文件名停止。注意当 stop.mode 选项使用 specific 时此选项是必需的。stop.specific-offset.pos长整型否-从指定的 binlog 文件位置停止。注意当 stop.mode 选项使用 specific 时此选项是必需的。incremental.parallelism整型否1增量阶段中并行读取器的数量。snapshot.split.size整型否8096表快照的分割大小行数快照期间的表会被分割成多个分片进行读取。snapshot.fetch.size整型否1024读取表快照时每次轮询的最大提取量。server-time-zone字符串否UTC数据库服务器中的会话时区。connect.timeout时长否30s连接器尝试连接到数据库服务器后等待超时的最大时间。connect.max-retries整型否3连接器尝试建立数据库服务器连接的最大重试次数。connection.pool.size整型否20连接池大小。chunk-key.even-distribution.factor.upper-bound双精度浮点型否100分块键分布因子的上界。此因子用于判断表数据是否均匀分布。如果计算出的分布因子小于或等于此上界值即 (MAX(id) - MIN(id) 1) / 行数则表分块将被优化为均匀分布。否则如果分布因子更大则表将被认为是不均匀分布的并且如果估计的分片数超过 sample-sharding.threshold 指定的值将使用基于抽样的分片策略。默认值为 100.0。chunk-key.even-distribution.factor.lower-bound双精度浮点型否0.05分块键分布因子的下界。此因子用于判断表数据是否均匀分布。如果计算出的分布因子大于或等于此下界值即 (MAX(id) - MIN(id) 1) / 行数则表分块将被优化为均匀分布。否则如果分布因子更小则表将被认为是不均匀分布的并且如果估计的分片数超过 sample-sharding.threshold 指定的值将使用基于抽样的分片策略。默认值为 0.05。sample-sharding.threshold整型否1000触发抽样分片策略的估计分片数阈值。当分布因子超出 chunk-key.even-distribution.factor.upper-bound 和 chunk-key.even-distribution.factor.lower-bound 指定的范围并且估计的分片数计算为近似行数 / 分块大小超过此阈值时将使用抽样分片策略。这可以帮助更有效地处理大型数据集。默认值为1000分片。inverse-sampling.rate整型否1000抽样分片策略中使用的抽样率的倒数。例如如果这个值设置为1000意味着抽样过程中应用了1/1000的抽样率。这个选项提供了在控制抽样粒度的灵活性从而影响最终的分片数量。特别是在处理非常大的数据集时更低的抽样率是首选。默认值为1000。exactly_once布尔型否true启用精确一次语义。debezium.*配置否-将Debezium的属性传递给用于从SqlServer服务器捕获数据变化的Debezium嵌入式引擎。查看Debezium的SqlServer连接器属性获取更多信息format枚举否DEFAULTSqlServer CDC 的可选输出格式有效枚举为 DEFAULT、COMPATIBLE_DEBEZIUM_JSON。common-options否-源插件的通用参数请参考源通用选项获取详细信息。
任务示例
初始读取简单示例 这是一个流模式CDC初始化读取的示例成功读取表数据后将进行增量读取。以下SQL DDL仅供参考。 env {# 在此处设置引擎配置execution.parallelism 1job.mode STREAMINGexecution.checkpoint.interval 5000
}source {# 仅用于测试和演示功能的示例源插件SqlServer-CDC {result_table_name customersusername sapassword Y.sa123456startup.modeinitialdatabase-names [column_type_test]table-names [column_type_test.dbo.full_types]base-url jdbc:sqlserver://localhost:1433;databaseNamecolumn_type_test}
}transform {
}sink {console {source_table_name customers}增量读取简单示例
这是一个增量阅读示例用于阅读变更数据并打印。
env {# 在此处设置引擎配置execution.parallelism 1job.mode STREAMINGexecution.checkpoint.interval 5000
}source {# 仅用于测试和演示功能的示例源插件SqlServer-CDC {# 设置精确一次读取exactly_oncetrue result_table_name customersusername sapassword Y.sa123456startup.modelatestdatabase-names [column_type_test]table-names [column_type_test.dbo.full_types]base-url jdbc:sqlserver://localhost:1433;databaseNamecolumn_type_test}
}transform {
}sink {console {source_table_name customers}
}
随着数据处理需求的不断增长和实时数据同步的重要性日益凸显SqlServer CDC 源连接器在 SeaTunnel 生态系统中扮演着至关重要的角色。
通过本文的深入解析我们希望您能够更好地理解并利用这一强大工具从而实现数据流的高效、稳定和精准同步。
无论您是数据工程师、系统架构师还是业务分析师掌握如何在 SeaTunnel 中部署和优化 SQL Server CDC 连接器都将为您的数据处理能力带来显著提升。 本文由 白鲸开源科技 提供发布支持