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相同。
  1. 创建MySQL数据库dla_db。
     MySQL [(none)]> CREATE DATABASE dla_db;
  2. 执行以下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数据库。
  3. 执行以下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。