云原生数据湖分析DLA支持通过标准JDBC对RDS(MySQL、SQLServer、PostgreSQL)中的数据进行查询和分析,并可以将分析结果回写入RDS。RDS一键同步元数据功能,只需要在DLA中创建RDS
Schema,然后通过MSCK REPAIR TABLE
命令一键将数据库中所有表的信息同步至DLA中。本文以MySQL为例,详细介绍RDS一键同步元数据功能。
注意事项
在DLA中创建MySQL、SQLServer、PostgreSQL Schema之前,需要将IP地址段100.104.0.0/16
加入到RDS的白名单列表中。具体操作请参见设置IP白名单。
由于RDS实例位于VPC内,默认情况下DLA无法访问VPC中的资源。为了让DLA能访问RDS,需要利用VPC反向访问技术,即在RDS白名单中添加100.104.0.0/16
IP地址段。
说明 当您在RDS白名单中添加了
100.104.0.0/16
IP地址段,即视为您同意阿里云利用VPC反向访问技术读写RDS数据。
准备工作
通过DLA读写RDS数据前,您需要通过以下操作在RDS中准备好测试数据:
操作步骤
您可以在DMS页面编写SQL创建MySQL Schema,也可以先通过MySQL客户端或者MySQL命令行工具连接DLA,然后再编写SQL创建MySQL Schema。
- 创建RDS Schema
- 登录DLA控制台。
- 在左侧导航栏单击 。
- 在SQL访问点页面的VPC网络区域,定位到RDS所在的VPC网络,然后单击登录到DMS。
您也可以在公网网络区域,单击登录到DMS通过公网登录到DMS创建RDS Schema。
- 在登录实例对话框中,选择RDS数据库类型、实例地区、实例ID,输入数据库账号和密码,单击登录。说明 您需要将DMS IP地址添加至RDS实例的白名单设置中,才能正常登录到DMS。具体操作请参见设置IP白名单。
- 在DMS的SQL information_schema页签中,创建MySQL Schema的语法如下所示:
CREATE SCHEMA hello_mysql_vpc_rds WITH DBPROPERTIES ( CATALOG = 'mysql', LOCATION = 'jdbc:mysql://rm-2zer0vg58mf*****.mysql.rds.aliyuncs.com:3306/rds_mysql_dbname', USER = 'rds_mysqldb_username', PASSWORD = 'rds_mysqldb_password', INSTANCE_ID = 'rds_mysql_instance_id', VPC_ID = 'rds_mysqldb_vpcid' );
- 执行MSCK REPAIR TABLE命令同步表信息。
- 先执行show tables查询Schema中是否存在表。
mysql> use hello_mysql_vpc_rds; Database changed mysql> show tables; Empty set (0.01 sec)
- 再执行MSCK REPAIR TABLE,将RDS数据库中的所有表一键同步至Schema中。
mysql> msck repair database hello_mysql_vpc_rds; +-------------------------------+-----------+ | TableName | Operation | +-------------------------------+-----------+ | admin_acc_log | CREATED | | fractest | CREATED | | person | CREATED | | prep_stmt_test | CREATED | | staples | CREATED | | test_datetime | CREATED | | top10_user | CREATED | | type_test | CREATED | | world1 | CREATED | | world2 | CREATED | +-------------------------------+-----------+ 17 rows in set (1.60 sec) mysql> show tables; +-------------------------------+ | Table_Name | +-------------------------------+ | admin_acc_log | | fractest | | person | | prep_stmt_test | | staples | | test_datetime | | top10_user | | type_test | | world1 | | world2 | +-------------------------------+ 17 rows in set (0.02 sec)
- 先执行show tables查询Schema中是否存在表。
表信息同步成功之后,接下来您就可以通过DLA管理RDS数据了。