阿里云数据湖分析(Data Lake Analytics)支持对AnalyticDB for MySQL 3.0 中的数据进行直接分析,这篇文章介绍一下用法。
创建数据库
在 DLA 里面创建一个底层映射到 AnalyticDB for MySQL 3.0 的Database的语法如下:
CREATE DATABASE `adb3_demo_db`
WITH DBPROPERTIES (
catalog = 'adb3',
location = 'jdbc:mysql://am-xxxxx.ads.aliyuncs.com/adb3_it_db',
user = 'dla_test',
password = 'openanalytics@2018',
vpc_id = 'vpc-xxxxxxxx',
instance_id = 'am-xxxxxx'
);
注意这里的 catalog = 'adb3'
指明了这个映射的库是一个AnalyticDB for MySQL 3.0的库。跟普通的建库不同的是这里多了两个属性: VPC_ID 和 INSTANCE_ID 。VPC_ID 是您的AnalyticDB for MySQL 3.0所在VPC的ID, 而 INSTANCE_ID 则是你的 AnalyticDB for MySQL 3.0 实例ID,如下图所示:

建表需要这两个额外信息是因为现在用户的数据库都是处于用户自己的VPC内部,默认情况下 DLA 是访问不了用户 VPC 里面的资源的,为了让DLA能够访问到用户 AnalyticDB 3.0 里面的数据,我们需要利用阿里云的VPC反向访问技术。
权限声明: 当您通过上述方式建库,就视为您同意我们利用VPC反向访问的技术去读写您的RDS。
另外您还需要把 100.104.0.0/16
IP地址段加入到你的 AnalyticDB for MySQL 3.0 的白名单列表,这是我们VPC反向访问的IP地段,如下图:

创建表
数据库建完之后,我们可以建表了,我们先在你的 AnalyticDB for MySQL 3.0 里面建立如下的 person 表用来做测试:
create table person (
id int,
name varchar(1023),
age int
);
并且向里面插入一下测试数据:
insert into person
values (1, 'james', 10),
(2, 'bond', 20),
(3, 'jack', 30),
(4, 'lucy', 40);
然后就可以在 DLA 的数据库里面建立相应的映射表了:
create external table person (
id int,
name varchar(1023),
age int
);
这样我们通过MySQL客户端连接到 DLA 数据库上面,就可以对 MySQL 数据库里面的数据进行查询了:
mysql> select * from person;
+------+-------+------+
| id | name | age |
+------+-------+------+
| 1 | james | 10 |
| 2 | bond | 20 |
| 3 | jack | 30 |
| 4 | lucy | 40 |
+------+-------+------+
4 rows in set (0.35 sec)
关于我们
数据湖分析Data Lake Analytics简介
欢迎大家使用数据湖分析(DLA),DLA不仅仅便宜,且快,且方便,专为阿里云数据湖分析方案而生
欢迎大家群内咨询
