如果您需要对RDS MySQL云盘数据进行查询分析,您可先使用高级下载功能将数据下载到阿里云OSS中,再将OSS中的数据导入到云原生数据仓库AnalyticDB MySQL版进行查询分析。
前提条件
注意事项
AnalyticDB MySQL版仅支持CSV、Parquet两种数据文件导入,因此使用RDS MySQL下载备份功能时,请选择下载格式为CSV或Parquet。
准备工作
通过以下步骤在对象存储(Object Storage Service,简称OSS)中创建存储AnalyticDB MySQL版数据的目录,并使用下载备份功能将数据下载到阿里云OSS中。
开通OSS服务。具体操作,请参见开通OSS服务。
在OSS控制台创建存储空间(Bucket)。具体操作,请参见控制台创建存储空间。
说明OSS与AnalyticDB MySQL版所属地域需相同。
在OSS控制台创建目录。具体操作,请参见创建目录。
使用下载备份功能下载云盘实例的备份数据,并选择下载目标为OSS。
说明如果下载目标选择为其他方式,后续请自行上传备份至阿里云OSS中。具体操作,请参见上传数据。
本文示例中,测试所用的RDS MySQL源库名为
mydb
,该库中存在表mytable
。表中的数据示例如下:INSERT INTO mytable (id, name) VALUES ("12", "hello_world_1"), ("27", "hello_world_2"), ("28", "hello_world_3"), ("33", "hello_world_4"), ("37", "hello_world_5"), ("40", "hello_world_6");
使用备份下载功能将
mytable
表中数据下载至OSS中的/bucket/_export/mydb/mytable/data/0-1csv
目录中。
OSS数据导入至AnalyticDB MySQL版
本文示例中,将/bucket/_export/mydb/mytable/data/0-1csv
中的数据导入至AnalyticDB MySQL版的adb_demo
库中。
连接目标AnalyticDB MySQL集群。详细操作步骤,请参见连接集群。
创建目标数据库。详细操作步骤,请参见创建数据库。
本示例中,AnalyticDB MySQL集群的目标库名为
adb_demo
。创建外部映射表。
说明在创建外部映射表时,表名可以选择与原表名相同,也可以使用不同的表名,按需命名即可。
由于ADB暂不支持全库分析,仅支持表分析,因此分析前AnalyticDB MySQL版库中必须有映射表。使用
CREATE TABLE
语句在目标库adb_demo
中创建CSV或Parquet格式的OSS外部映射表。本示例以创建CSV格式的OSS外部映射表为例(不带分区)。更多语法详情,请参见不带分区的数据文件创建OSS外表。CREATE TABLE IF NOT EXISTS mytable ( id string, name string ) ENGINE='OSS' TABLE_PROPERTIES='{ "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com", "url":"oss://bucket/_export/mydb/mytable/data/0-1csv", "accessid":"LTAIF****5FsE", "accesskey":"Ccw****iWjv", "delimiter":",", "format":"csv" }';
参数
说明
ENGINE='OSS'
表示该表是外部表,使用的存储引擎是OSS。
TABLE_PROPERTIES
用于告知AnalyticDB MySQL版如何访问OSS中的数据。
endpoint
OSS的EndPoint(地域节点)。
说明目前仅支持AnalyticDB MySQL版通过ECS的VPC网络访问OSS。
登录OSS控制台,单击目标Bucket,在Bucket概览页面查看EndPoint(地域节点)。
url
OSS中源数据文件或文件夹的绝对路径。建议文件夹绝对路径以正斜线(/)结尾。
示例:
文件:
oss://<bucket-name>/adb/oss_import_test_data.csv
。文件夹:
oss://<bucket-name>/adb_data/
。说明若指定为源数据文件夹的路径,成功创建外表后,外表中的数据为该文件夹下的所有数据。
accessid
您在访问OSS中的文件或文件夹时所持有的AccessKey ID。
如何获取您的AccessKey ID和AccessKey Secret,请参见账号与权限。
accesskey
您在访问OSS中的文件或文件夹时所持有的AccessKey Secret。
delimiter
定义CSV数据文件的列分隔符。例如您可以将列分隔符设置为英文逗号(,)。
format
数据文件的格式。
创建Parquet格式文件的外表时需设置为
parquet
。创建ORC格式文件的外表时需设置为
orc
。
说明不指定format时,默认格式为CSV。
说明如果在下载的文件中表格被存储为多个CSV文件,例如:
0-1csv
,0-2csv
,分析时,只需将url更改为data目录:"url":"oss://bucket/_export/mydb/mytable/data/"
,AnalyticDB MySQL版会将该路径下的文件合并到mytable
分析表中。此时,在AnalyticDB MySQL版数据库中可以看到
mytable
表,该表与下载源的mytable
表内容是完全一致的,可对其进行查询。执行如下语句,查询导入的数据。
-- mytable为数据库中表名称 SELECT * FROM mytable;
得到表格结果,该表内容与下载源的mytable表内容完全一致。
后续步骤
RDS MySQL云盘下载数据导入至AnalyticDB MySQL版后,就可通过AnalyticDB MySQL版的分析能力对下载的表做业务分析。如果涉及到多个表联表查询,您需要按以上步骤导入多个表格到adb_demo
数据库中。