Data Lake Analytics(简称DLA) 作为云上数据处理的枢纽,支持通过标准JDBC连接阿里云关系型数据库(Relational Database Service,简称RDS)(MySQL、SQLServer、PostgreSQL)数据库、云服务器(Elastic Compute Service,简称ECS)上的自建数据库(MySQL、SQLServer、PostgreSQL),并对其数据进行查询操作。
前提条件
通过DLA读写ECS自建MySQL数据前,必须先连接ECS,详情请参见连接方式概述ECS远程连接操作指南,然后通过以下操作创建MySQL数据库、写入测试数据。
注意 DLA将通过VPC连接ECS自建MySQL数据库,应确保DLA与ECS所属Region相同。
- 创建MySQL数据库dla_db。
MySQL [(none)]> CREATE DATABASE dla_db;
- 执行以下SQL,新增dla_user用户,并将适当的权限授权给dla_user。后续DLA将以该用户读取MySQL数据。
MySQL [(none)]> USE mysql; MySQL [mysql]> CREATE USER 'dla_user'@'%' IDENTIFIED BY 'dla_userpasswd'; MySQL [mysql]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on dla_db.* TO 'dla_user'@'%'; MySQL [mysql]> flush privileges;
注意 若DLA与ECS所属账号相同(同一主账号或者子账号),则上述授权GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on dla_db.* TO 'dla_user'@'%';
可改为GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on dla_db.* TO 'dla_user'@'100.104.0.0/255.255.0.0';
授权方式,为了更加细粒度地控制权限,仅允许DLA可连接MySQL数据库。 - 执行以下SQL,在MySQL数据库中创建person表,并写入测试数据。
CREATE TABLE person ( id int, name varchar(1023), age int );
INSERT INTO person VALUES (1, 'james', 10), (2, 'bond', 20),
说明
- 为了让DLA可以访问ECS自建MySQL数据库,需要在ECS的安全组中添加安全组规则:授权100.104.0.0/16 IP地址段。
- 添加安全组规则时,协议类型选择MySQL,授权对象设置为100.104.0.0/16。