新建DataArts Studio与MySQL数据库的连接
本章节以新建MySQL连接为例,介绍如何建立DataArts Studio与数据库底座之间的数据连接。
前提条件
- 在创建数据连接前,请确保您已创建所要连接的数据湖(如DataArts Studio所支持的数据库、云服务等)。
- 在创建DWS类型的数据连接前,您需要先在DWS服务中创建集群,并且具有KMS密钥的查看权限。
- 在创建MRS HBase、MRS Hive等MRS类型的数据连接前,需确保您已购买MRS集群,集群的“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”,并且集群中包含所需要的组件。
- 在创建数据连接前,请确保待连接的数据湖与DataArts Studio实例之间网络互通。
- 如果数据湖为云下的数据库,则需要通过公网或者专线打通网络,确保数据源所在的主机可以访问公网,并且防火墙规则已开放连接端口。
- 如果数据湖为云上服务(如DWS、MRS等),则网络互通需满足如下条件:
- DataArts Studio实例(指DataArts Studio实例中的CDM集群)与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。
- DataArts Studio实例(指DataArts Studio实例中的CDM集群)与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。
- 此外,您还必须确保该云服务的实例与DataArts Studio工作空间所属的企业项目必须相同,如果不同,您需要修改工作空间的企业项目。
- 如果使用企业模式,您还需要注意以下事项:
由于企业模式下需要区分开发环境和生产环境,因此您需要分别准备对应生产环境和开发环境的两套数据湖服务,用于隔离开发和生产环境:
- 对于集群化的数据源(例如MRS、DWS、RDS、MySQL、Oracle、DIS、ECS),如果使用两套集群,DataArts Studio通过管理中心的创建数据连接区分开发环境和生产环境的数据湖服务,在开发和生产流程中自动切换对应的数据湖。因此您需要准备两套数据湖服务,且两套数据湖服务的版本、规格、组件、区域、VPC、子网以及相关配置等信息,均应保持一致。创建数据连接的详细操作请参见创建DataArts Studio数据连接。
- 对于Serverless服务(例如DLI),DataArts Studio通过管理中心的环境隔离来配置生产环境和开发环境数据湖服务的对应关系,在开发和生产流程中自动切换对应的数据湖。因此您需要在Serverless数据湖服务中准备两套队列、数据库资源,建议通过名称后缀进行区分,详细操作请参见配置DataArts Studio企业模式环境隔离。
- 对于DWS、MRS Hive和MRS Spark这三种数据源,如果在创建数据连接时选择同一个集群,则需要配置数据源资源映射的DB数据库映射关系进行开发生产环境隔离,详细操作请参见DB配置。
- 离线处理集成作业不支持在企业模式下运行。
例如,当您的数据湖服务为MRS集群时,需要准备两套MRS集群,且版本、规格、组件、区域、VPC、子网等保持一致。如果某个MRS集群修改了某些配置,也需要同步到另一套MRS集群上。
创建数据连接
- 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。
- 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。
- 在管理中心页面,单击“数据连接”,进入数据连接页面并单击“创建数据连接”。
图1 创建数据连接
- 单击“创建数据连接”,在弹出的页面中,选择“数据连接类型”为“RDS”,并参见表1配置相关参数。
- 不建议使用MySQL(待下线)连接器,推荐使用RDS连接MySQL数据源。
- RDS数据连接方式依赖于OBS。如果没有与DataArts Studio同区域的OBS,则不支持RDS数据连接。
图2 RDS连接配置参数
表1 RDS数据连接 参数
是否必选
说明
数据连接类型
是
RDS连接固定选择为RDS。
数据连接名称
是
数据连接的名称,只能包含字母、数字、下划线和中划线,且长度不超过100个字符。
标签
否
标识数据连接的属性。设置标签后,便于统一管理。说明:标签的名称,只能包含中文、英文字母、数字和下划线,不能以下划线开头,且长度不能超过100个字符。
适用组件
是
选择此连接适用的组件。勾选组件后,才能在相应组件内使用本连接。
说明:- 当开启数据集成作业特性后,可勾选数据集成组件,勾选后在数据开发组件创建集成作业时支持选择本数据连接。
- 离线处理集成作业功能当前需申请白名单后才能使用。如需使用该特性,请联系客服或技术支持人员。
基础与网络连通配置
IP或域名
是
关系型数据库数据源的访问地址,可填写为IP或域名。
“IP或域名”如果手动填写,必须写内网IP,端口必须为对资源组网段放开的端口(如需设置请参见设置安全组规则),否则可能导致网络连接不通。
- 如果为RDS或GaussDB等云上数据源,可以通过管理控制台获取访问地址:
- 根据注册的账号登录对应云服务的管理控制台。
- 从左侧列表选择实例管理。
- 单击某一个实例名称,进入实例基本信息页面。在连接信息标签中可以获取到内网IP、域名和端口等信息。
说明:仅GaussDB数据源支持多域名的方式,多个域名之间用“,”分隔。
- 如果为MySQL、PostgreSQL或达梦数据库 DM等线下数据源,可以通过数据库管理员获取相应的访问地址。
端口
是
关系型数据库数据源的访问端口。
- 如果为RDS或GaussDB等云上数据源,可以通过管理控制台获取访问地址:
- 根据注册的账号登录对应云服务的管理控制台。
- 从左侧列表选择实例管理。
- 单击某一个实例名称,进入实例基本信息页面。在连接信息标签中可以获取到内网IP、域名和端口等信息。
说明:仅GaussDB数据源支持多域名的方式,多个域名之间用“,”分隔。
- 如果为MySQL、PostgreSQL或达梦数据库 DM等线下数据源,可以通过数据库管理员获取相应的访问地址。
KMS密钥
是
通过KMS加解密数据源认证信息,选择KMS中的任一默认密钥或自定义密钥即可。说明:第一次通过DataArts Studio或KPS使用KMS加密时,会自动生成默认密钥dlf/default或kps/default。关于默认密钥的更多信息,请参见什么是默认密钥。
绑定Agent
是
RDS类型数据源为非全托管服务,DataArts Studio无法直接与非全托管服务进行连接。CDM集群提供了DataArts Studio与非全托管服务通信的代理,所以创建RDS类型的数据连接时,请选择一个CDM集群。如果没有可用的CDM集群,请先进行创建。
CDM集群作为网络代理,必须和RDS网络互通才可以成功创建RDS连接,为确保两者网络互通,CDM集群必须和RDS处于相同的区域、可用区,且使用同一个VPC和子网,安全组规则需允许两者网络互通。
说明:CDM集群作为管理中心数据连接Agent时,单集群的并发活动线程最大为200。即当多个数据连接共用同一Agent时,通过这些数据连接提交SQL脚本、Shell脚本、Python脚本等任务的同时运行上限为200,超出的任务将排队等待。建议您按照业务量情况规划多个Agent分担压力。
SSL加密
否
支持对RDS服务启用SSL加密传输。
数据源驱动配置
驱动程序名称
是
驱动程序名称:
- com.mysql.jdbc.Driver:连接RDS for MySQL或MySQL数据源时,选择此驱动程序名称。
- org.postgresql.Driver:连接RDS for PostgreSQL或PostgreSQL数据源时,选择此驱动程序名称。
- com.microsoft.sqlserver.jdbc.SQLServerDriver: 连接RDS for SQL Server数据源时,选择此驱动名称。
- dm.jdbc.driver.DmDriver:连接达梦数据库 DM数据源时,选择此驱动程序名称。
- com.huawei.opengauss.jdbc.Driver:连接GaussDB数据源时,选择此驱动程序名称。
驱动文件来源
是
选择驱动文件的来源方式。
驱动文件路径
是
驱动文件在OBS上的路径。需要您自行到官网下载.jar格式驱动并上传至OBS中。
- MySQL驱动:获取地址https://downloads.mysql.com/archives/c-j/,建议5.1.48版本。
- PostgreSQL驱动:获取地址https://mvnrepository.com/artifact/org.postgresql/postgresql,建议42.3.4版本。
- SQL Server驱动:获取地址https://learn.microsoft.com/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16,建议8.4.1版本。
- 达梦数据库驱动:
DM JDBC驱动jar包请从DM安装目录/dmdbms/drivers/jdbc中获取DmJdbcDriver18.jar。
- GaussDB驱动:请在GaussDB官方文档中搜索“JDBC包、驱动类和环境类”,然后选择实例对应版本的资料,参考文档获取驱动包。
说明:- 驱动文件所在的OBS路径中不能包含中文。
- 如果需要更新驱动文件,则需要先在数据集成页面重启CDM集群,然后通过编辑数据连接的方式重新选择新版本驱动,更新驱动才能生效。
数据源认证及其他功能配置
用户名
是
数据库的用户名,创建集群的时候,输入的用户名。
密码
是
数据库的访问密码,创建集群的时候,输入的密码。
数据集成配置
数据库名称
是
配置为要连接的数据库名称。
使用本地API
否
可选参数,选择是否使用数据库本地API加速。
创建MySQL连接时,CDM会自动尝试启用MySQL数据库的local_infile系统变量,开启MySQL的LOAD DATA功能加快数据导入,提高导入数据到MySQL数据库的性能。注意,开启本参数后,日期类型将不符合格式的会存储为0000-00-00,更多详细信息可在MySQL官网文档查看。
如果CDM自动启用失败,请联系数据库管理员启用local_infile参数或选择不使用本地API加速。
如果是导入到RDS上的MySQL数据库,由于RDS上的MySQL默认没有开启LOAD DATA功能,所以同时需要修改MySQL实例的参数组,将“local_infile”设置为“ON”,开启该功能。
说明:如果RDS上的“local_infile”参数组不可编辑,则说明是默认参数组,需要先创建一个新的参数组,再修改该参数值,并应用到RDS的MySQL实例上,具体操作请参见《关系型数据库用户指南》。
local_infile字符集
否
“使用本地API”为是时,呈现此参数。MySQL通过local_infile导入数据时,可配置编码格式。默认utf8。
单次请求行数
否
可选参数,指定每次请求获取的行数,根据数据源端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。默认1000。
单次提交行数
否
指定每次批量提交的行数,根据数据目的端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。默认10000。
单次写入行数
否
可选参数,指定单次批量写入的行数,当写入行数累计到单次批量提交行数时提交一次,该值应当小于单次提交行数。默认100。
连接属性
否
可选参数,单击“添加”可增加多个指定数据源的JDBC连接器的属性,参考对应数据库的JDBC连接器说明文档进行配置。
常见配置举例如下:- connectTimeout=360000与socketTimeout=360000:迁移数据量较大、或通过查询语句检索全表时,会由于连接超时导致迁移失败。此时可自定义连接超时时间与socket超时时间(单位ms),避免超时导致失败。
- tinyInt1isBit=false或mysql.bool.type.transform=false:MySQL默认开启配置tinyInt1isBit=true,将TINYINT(1)当作BIT也就是Types.BOOLEAN来处理,会将1或0读取为true或false从而导致迁移失败,此时可关闭配置避免迁移报错。
- useCursorFetch=false:CDM作业默认打开了JDBC连接器与关系型数据库通信使用二进制协议开关,即useCursorFetch=true。部分第三方可能存在兼容问题导致迁移时间转换出错,可以关闭此开关;开源MySQL数据库支持useCursorFetch参数,无需对此参数进行设置。
- allowPublicKeyRetrieval=true:MySQL默认关闭允许公钥检索机制,因此连接MySQL数据源时,如果TLS不可用、使用RSA公钥加密时,可能导致连接报错。此时可打开公钥检索机制,避免连接报错。
引用符号
否
可选参数,连接引用表名或列名时的分隔符号,参考对应数据库的产品文档进行配置。默认为"。
- 单击“测试”,测试数据连接的连通性。如果无法连通,数据连接将无法创建。
- 测试通过后,单击“确定”,创建数据连接。