文档首页 > > SQL语法参考> 批作业SQL语法> 跨源连接RDS表> 创建DLI表关联RDS

创建DLI表关联RDS

分享
更新时间:2020/08/20 GMT+08:00

功能描述

使用CREATE TABLE命令创建DLI表并关联RDS上已有的表。该功能支持访问RDS的MySQL集群和PostGre集群。

前提条件

创建DLI表关联RDS之前需要创建跨源连接。管理控制台操作请参考经典型跨源连接增强型跨源连接

语法格式

1
2
3
4
5
6
7
CREATE TABLE [IF NOT EXISTS] TABLE_NAME
  USING JDBC OPTIONS (
  'url'='xx',
  'driver'='DRIVER_NAME',
  'dbtable'='db_name_in_RDS.table_name_in_RDS',
  'passwdauth' = 'xxx',
  'encryption' = 'true');

关键字

表1 CREATE TABLE参数描述

参数

描述

url

RDS的连接地址,需要先创建跨源连接,管理控制台操作请参考经典型跨源连接增强型跨源连接

创建经典型跨源连接后,使用经典型跨源连接中返回的连接地址。

创建增强型跨源连接后,使用RDS提供的"内网域名"或者内网地址和数据库端口访问,MySQL格式为"协议头://内网IP:内网端口",PostGre格式为"协议头://内网IP:内网端口/数据库名"。

例如:"jdbc:mysql://192.168.0.193:3306"或者"jdbc:postgresql://192.168.0.193:3306/postgres"。

说明:

经典型跨源的连接地址默认格式为:"协议头://访问地址:访问端口"

例如:jdbc:mysql://to-rds-1174405119-oLRHAGE7.datasource.com:3306

如果想要访问RDS的postgre集群,需要将连接地址中的协议头修改为"jdbc:postgresql",并在连接地址最后加上"/数据库名"。

例如:jdbc:postgresql://to-rds-1174405119-oLRHAGE7.datasource.com:3306/postgreDB

driver

jdbc驱动类名,访问MySQL集群请填写:"com.mysql.jdbc.Driver",访问PostGre集群请填写:"org.postgresql.Driver"。

dbtable

访问MySQL集群填写"数据库名.表名",访问PostGre集群填写"模式名.表名"。

user

(已废弃)RDS用户名。

password

(已废弃)RDS用户名密码。

passwdauth

跨源密码认证名称。跨源认证信息创建方式请参考《数据湖探索用户指南》>《跨源认证》。

encryption

使用跨源密码认证时配置为“true”

partitionColumn

读取数据时,用于设置并发使用的数值型字段。

说明:
  • “partitionColumn”“lowerBound”“upperBound”“numPartitions”四个参数必须同时设置,不支持仅设置其中某一个或某几个。
  • 为了提升并发读取的性能,建议使用自增列。

lowerBound

partitionColumn设置的字段数据最小值,该值包含在返回结果中。

upperBound

partitionColumn设置的字段数据最大值,该值不包含在返回结果中。

numPartitions

读取数据时并发数。

说明:

实际读取数据时,会根据“lowerBound”“upperBound”,平均分配给每个task,获取其中一部分的数据。例如:

'partitionColumn'='id',
'lowerBound'='0',
'upperBound'='100',
'numPartitions'='2'

表示在DLI中会起2个并发task,一个task执行id>=0 and id < 50,另一个task执行id >=50 and id < 100。

fetchsize

读取数据时,每一批次获取数据的记录数,默认值1000。设置越大性能越好,但占用内存越多,该值设置过大会有内存溢出的风险。

batchsize

写入数据时,每一批次写入数据的记录数,默认值1000。设置越大性能越好,但占用内存越多,该值设置过大会有内存溢出的风险。

truncate

执行overwrite时是否不删除原表,直接执行清空表操作,取值范围:

  • true
  • false

默认为“false”,即在执行overwrite操作时,先将原表删除再重新建表。

isolationLevel

事务隔离级别,取值范围:

  • NONE
  • READ_UNCOMMITTED
  • READ_COMMITTED
  • REPEATABLE_READ
  • SERIALIZABLE

默认值为“READ_UNCOMMITTED”

注意事项

创建RDS关联表时,不需要指定关联表的Schema。DLI会自动获取RDS中对应参数"dbtable"中的表的Schema。

示例

访问MySQL

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS dli_to_rds
  USING JDBC OPTIONS (
  'url'='jdbc:mysql://to-rds-117405104-3eAHxnlz.datasource.com:3306',
  'driver'='com.mysql.jdbc.Driver',
  'dbtable'='rds_test.test1',
  'passwdauth' = 'xxx',
  'encryption' = 'true');

访问PostGre

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS dli_to_rds
  USING JDBC OPTIONS (
  'url'='jdbc:postgresql://to-rds-1174405119-oLRHAGE7.datasource.com:3306/postgreDB',
  'driver'='org.postgresql.Driver',
  'dbtable'='pg_schema.test1',
  'passwdauth' = 'xxx',
  'encryption' = 'true');
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问