阿里云Data Lake Analysis 查询Table Store数据。
Table Store
- 开通Table Store服务(OTS)
- 选择合适区域创建OTS实例,例 华北2北京区域下
labs
- 创建OTS数据表
web_page
Data Lake Analysis
- 开通Data Lake Analysis(DLA)服务并设置密码
- 创建DLA访问点
访问控制授权
在访问控制(RAM)中创建角色AliyunOpenAnalyticsAccessingOTSRole
,给其授权 AliyunOTSFullAccess
,并信任策略修改为
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"openanalytics.aliyuncs.com"
]
}
}
],
"Version": "1"
}
数据交互
首先连接DLA
-
在VPC内的ECS中通过
mysql
客户端连接DLA访问点,命令mysql -h[end_point_host] -P[end_point_port] -u[user_name] -p[password] -c -A
注意以上4项参数都是DLA的,而不是Table Store的。
-
创建Table Store Schema
CREATE SCHEMA labs WITH DBPROPERTIES ( catalog = 'ots', location = 'https://labs.cn-beijing.vpc.tablestore.aliyuncs.com', instance = 'labs' );
其中
catelog
设置为ots
,表示使用的是Table Store的实例,location
使用Tables Store实例labs
的VPC访问地址。如果没有进行上面的访问控制授权,这里会报错
The role not exists: aliyunopenanalyticsaccessingotsrole
或者listTable() failed,table_store_error, you are not authed
。 -
使用刚创建好的schema
use labs;
-
同步数据表
CREATE EXTERNAL TABLE web_page ( topic varchar(100) not NULL , url varchar(255) not NULL , content text NULL , http_code varchar NULL , title varchar(255) NULL , PRIMARY KEY (`topic`,`url`) );
数据结构和Table Store中web_page表的字段结构顺序保持一致,创建好之后,Table Store中web_page中的数据会自动同步过来。
-
接下来就可以像普通MySQL数据库一样查询数据了。