我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DataX SqlServerWriter手册参数

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DataX SqlServerWriter手册参数

DataX SqlServerWriter手册参数[数据库教程]

DataX SqlServerWriter


1 快速介绍

SqlServerWriter 插件实现了写入数据到 SqlServer 库的目的表的功能。在底层实现上, SqlServerWriter 通过 JDBC 连接远程 SqlServer 数据库,并执行相应的 insert into ... sql 语句将数据写入 SqlServer,内部会分批次提交入库。

SqlServerWriter 面向ETL开发工程师,他们使用 SqlServerWriter 从数仓导入数据到 SqlServer。同时 SqlServerWriter 亦可以作为数据迁移工具为DBA等用户提供服务。

2 实现原理

SqlServerWriter 通过 DataX 框架获取 Reader 生成的协议数据,根据你配置生成相应的SQL语句

  • insert into...(当主键/唯一性索引冲突时会写不进去冲突的行)

 

注意:
1. 目的表所在数据库必须是主库才能写入数据;整个任务至少需具备 insert into...的权限,是否需要其他权限,取决于你任务配置中在 preSql 和 postSql 中指定的语句。
2.SqlServerWriter和MysqlWriter不同,不支持配置writeMode参数。

3 功能说明

3.1 配置样例

  • 这里使用一份从内存产生到 SqlServer 导入的数据。
{
    "job": {
        "setting": {
            "speed": {
                "channel": 5
            }
        },
        "content": [
            {
                "reader": {},
                "writer": {
                    "name": "sqlserverwriter",
                    "parameter": {
                        "username": "root",
                        "password": "root",
                        "column": [
                            "db_id",
                            "db_type",
                            "db_ip",
                            "db_port",
                            "db_role",
                            "db_name",
                            "db_username",
                            "db_password",
                            "db_modify_time",
                            "db_modify_user",
                            "db_description",
                            "db_tddl_info"
                        ],
                        "connection": [
                            {
                                "table": [
                                    "db_info_for_writer"
                                ],
                                "jdbcUrl": "jdbc:sqlserver://[HOST_NAME]:PORT;DatabaseName=[DATABASE_NAME]"
                            }
                        ],
                        "preSql": [
                            "delete from @table where db_id = -1;"
                        ],
                        "postSql": [
                            "update @table set db_modify_time = now() where db_id = 1;"
                        ]
                    }
                }
            }
        ]
    }
}

3.2 参数说明

  • jdbcUrl

    • 描述:目的数据库的 JDBC 连接信息 ,jdbcUrl必须包含在connection配置单元中。

           注意:1、在一个数据库上只能配置一个值。这与 SqlServerReader 支持多个备库探测不同,因为此处不支持同一个数据库存在多个主库的情况(双主导入数据情况)
                2、jdbcUrl按照SqlServer官方规范,并可以填写连接附加参数信息。具体请参看 SqlServer官方文档或者咨询对应 DBA。
      
    • 必选:是

    • 默认值:无

  • username

    • 描述:目的数据库的用户名

    • 必选:是

    • 默认值:无

  • password

    • 描述:目的数据库的密码

    • 必选:是

    • 默认值:无

  • table

    • 描述:目的表的表名称。支持写入一个或者多个表。当配置为多张表时,必须确保所有表结构保持一致。

             注意:table 和 jdbcUrl 必须包含在 connection 配置单元中
      
    • 必选:是

    • 默认值:无

  • column

    • 描述:目的表需要写入数据的字段,字段之间用英文逗号分隔。例如: "column": ["id","name","age"]。如果要依次写入全部列,使用表示, 例如: "column": [""]

      	**column配置项必须指定,不能留空!**
      
      
             注意:1、我们强烈不推荐你这样配置,因为当你目的表字段个数、类型等有改动时,你的任务可能运行不正确或者失败
                  2、此处 column 不能配置任何常量值
      
    • 必选:是

    • 默认值:否

  • preSql

    • 描述:写入数据到目的表前,会先执行这里的标准语句。如果 Sql 中有你需要操作到的表名称,请使用 @table 表示,这样在实际执行 Sql 语句时,会对变量按照实际表名称进行替换。

    • 必选:否

    • 默认值:无

  • postSql

    • 描述:写入数据到目的表后,会执行这里的标准语句。(原理同 preSql )

    • 必选:否

    • 默认值:无

  • batchSize

    • 描述:一次性批量提交的记录数大小,该值可以极大减少DataX与SqlServer的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成DataX运行进程OOM情况。

    • 必选:否

    • 默认值:1024

3.3 类型转换

类似 SqlServerReader ,目前 SqlServerWriter 支持大部分 SqlServer 类型,但也存在部分个别类型没有支持的情况,请注意检查你的类型。

下面列出 SqlServerWriter 针对 SqlServer 类型转换列表:

DataX 内部类型SqlServer 数据类型
Long  
Double  
String  
Date  
Boolean  
Bytes  

4 性能报告

4.1 环境准备

4.1.1 数据特征

建表语句:


单行记录类似于:

4.1.2 机器参数

  • 执行 DataX 的机器参数为:

    1. cpu: 24 Core Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz
    2. mem: 94GB
    3. net: 千兆双网卡
    4. disc: DataX 数据不落磁盘,不统计此项
  • SqlServer 数据库机器参数为:

    1. cpu: 4 Core Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
    2. mem: 7GB

4.1.3 DataX jvm 参数

-Xms1024m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError

4.1.4 性能测试作业配置


4.2 测试报告

4.2.1 测试报告

5 约束限制

FAQ


Q: SqlServerWriter 执行 postSql 语句报错,那么数据导入到目标数据库了吗?

A: DataX 导入过程存在三块逻辑,pre 操作、导入操作、post 操作,其中任意一环报错,DataX 作业报错。由于 DataX 不能保证在同一个事务完成上述几个操作,因此有可能数据已经落入到目标端。


Q: 按照上述说法,那么有部分脏数据导入数据库,如果影响到线上数据库怎么办?

A: 目前有两种解法,第一种配置 pre 语句,该 sql 可以清理当天导入数据, DataX 每次导入时候可以把上次清理干净并导入完整数据。第二种,向临时表导入数据,完成后再 rename 到线上表。


Q: 上面第二种方法可以避免对线上数据造成影响,那我具体怎样操作?

A: 可以配置临时表导入

DataX SqlServerWriter手册参数

原文:https://www.cnblogs.com/jameswohu/p/13408913.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DataX SqlServerWriter手册参数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

DataX SqlServerWriter手册参数

DataX SqlServerWriter1 快速介绍SqlServerWriter 插件实现了写入数据到 SqlServer 库的目的表的功能。在底层实现上, SqlServerWriter 通过 JDBC 连接远程 SqlServer 数据库,并执行相应的
DataX SqlServerWriter手册参数
2022-01-03

Postgresql中文参考手册

http://www.postgres.cn/docs/9.3/index.html http://www.postgres.cn/docs/9.4/index.html http://www.postgres.cn/docs/9.5/index.html h
Postgresql中文参考手册
2015-01-12

DedeCms参考手册、函数及文件大全

文件:include/inc_function.php 系统默认会载入此文件 GetCurUrl() 获得当前的脚本的URL GetAlabNum($str) 把字符串里的全角数字转为半角数字(会把非数字类型字符删除) Text2Htm
2022-06-12

Python中datetime模块参考手册

前言 Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 time.h 基本一致。相比于 time 模块,datetime模块的接口则更直观、更容易调用。 模块
2022-06-04

css中文参考手册在哪

css 中文参考手册位于 w3c 网站上:导航至 w3c 网站。选择“标准”,再选“css”。向下滚动至“翻译”部分。点击“中文”重定向至中文参考手册。CSS 中文参考手册CSS 中文参考手册位于 W3C 网站上。详细说明:导航网站:前
css中文参考手册在哪
2024-04-26

MT7682芯片手册资料, MT7682处理器参数介绍

MT7682是一种高度集成的芯片组,包括一个应用处理器、一个低功耗的1x11n单波段Wi-Fi子系统和一个电源管理单元(Ppu)。MT7682基于arm Cortex-M4,带有浮点微控制器单元(MCU),包括1MB闪存。支持UART、I2
2023-06-05

官网PYthon语言参考手册The Py

This reference manual describes the syntax and “core semantics” of the language. It is terse, but attempts to be exact a
2023-01-31

Pytorch参数注册和nn.ModuleListnn.ModuleDict的问题

这篇文章主要介绍了Pytorch参数注册和nn.ModuleListnn.ModuleDict的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-03

mac电脑m1搭建java开发环境参考手册

1 背景介绍 开发人员经常会换电脑,或者换新电脑,意味着重新搭建开发环境,很麻烦。但新电脑到手里面了,不换又不好,此篇专门用来记录mac电脑m1搭建java开发环境的步骤。希望对读者有所帮助,一条龙服务。 后期有时间,会出关于win10环境
2023-08-18

Nodejs Stream 数据流使用手册

1、介绍 本文介绍了使用 node.js streams 开发程序的基本方法。"We should have some ways of connecting programs like ga
2022-06-04

Python学习手册之数据类型

在上一篇文章中,我们介绍了 Python 的异常和文件,现在我们介绍 Python 中的数据类型。查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9979931.html数据类型None 类型Non
2023-01-30

Golang函数库的性能优化手册

go 函数库性能优化提前分配内存:使用 make() 或 new() 预先分配内存,避免分配开销。并发安全:使用 sync 包实现并发安全的数据结构。减少函数调用次数:将复用操作封装在函数内,避免不必要的调用。实战案例:优化哈希表查找:使用
Golang函数库的性能优化手册
2024-04-19

PHP 手册:查找函数文档的指南

要查找 php 函数文档,请访问 php 手册并使用搜索栏搜索函数名称。文档包括函数原型、描述、参数、返回值和示例代码。使用“查找在页面中”功能搜索特定信息,查看“所有版本”选项卡了解不同 php 版本中的可用性,并利用“查看源代码”链接检
PHP 手册:查找函数文档的指南
2024-04-12

编程热搜

目录