云盤備份數(shù)據(jù)導(dǎo)入至AnalyticDB MySQL版
如果您需要對RDS MySQL云盤數(shù)據(jù)進行查詢分析,您可先使用高級下載功能將數(shù)據(jù)下載到阿里云OSS中,再將OSS中的數(shù)據(jù)導(dǎo)入到云原生數(shù)據(jù)倉庫AnalyticDB MySQL版進行查詢分析。
前提條件
RDS MySQL為云盤實例,且支持高級備份下載功能。是否支持,請參見前提條件。
已創(chuàng)建目標(biāo)云原生數(shù)據(jù)倉庫AnalyticDB MySQL集群。具體操作,請參見創(chuàng)建數(shù)倉版集群或創(chuàng)建湖倉版集群。
如果您的AnalyticDB MySQL集群是彈性模式,您需要在集群信息頁面的網(wǎng)絡(luò)信息區(qū)域,打開啟用ENI網(wǎng)絡(luò)的開關(guān)。
注意事項
AnalyticDB MySQL版僅支持CSV、Parquet兩種數(shù)據(jù)文件導(dǎo)入,因此使用RDS MySQL下載備份功能時,請選擇下載格式為CSV或Parquet。
準(zhǔn)備工作
通過以下步驟在對象存儲(Object Storage Service,簡稱OSS)中創(chuàng)建存儲AnalyticDB MySQL版數(shù)據(jù)的目錄,并使用下載備份功能將數(shù)據(jù)下載到阿里云OSS中。
開通OSS服務(wù)。具體操作,請參見開通OSS服務(wù)。
在OSS控制臺創(chuàng)建存儲空間(Bucket)。具體操作,請參見控制臺創(chuàng)建存儲空間。
說明OSS與AnalyticDB MySQL版所屬地域需相同。
在OSS控制臺創(chuàng)建目錄。具體操作,請參見創(chuàng)建目錄。
使用下載備份功能下載云盤實例的備份數(shù)據(jù),并選擇下載目標(biāo)為OSS。
說明如果下載目標(biāo)選擇為其他方式,后續(xù)請自行上傳備份至阿里云OSS中。具體操作,請參見上傳數(shù)據(jù)。
本文示例中,測試所用的RDS MySQL源庫名為
mydb
,該庫中存在表mytable
。表中的數(shù)據(jù)示例如下: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
表中數(shù)據(jù)下載至OSS中的/bucket/_export/mydb/mytable/data/0-1csv
目錄中。
OSS數(shù)據(jù)導(dǎo)入至AnalyticDB MySQL版
本文示例中,將/bucket/_export/mydb/mytable/data/0-1csv
中的數(shù)據(jù)導(dǎo)入至AnalyticDB MySQL版的adb_demo
庫中。
連接目標(biāo)AnalyticDB MySQL集群。詳細(xì)操作步驟,請參見連接集群。
創(chuàng)建目標(biāo)數(shù)據(jù)庫。詳細(xì)操作步驟,請參見創(chuàng)建數(shù)據(jù)庫。
本示例中,AnalyticDB MySQL集群的目標(biāo)庫名為
adb_demo
。創(chuàng)建外部映射表。
說明在創(chuàng)建外部映射表時,表名可以選擇與原表名相同,也可以使用不同的表名,按需命名即可。
由于ADB暫不支持全庫分析,僅支持表分析,因此分析前AnalyticDB MySQL版庫中必須有映射表。使用
CREATE TABLE
語句在目標(biāo)庫adb_demo
中創(chuàng)建CSV或Parquet格式的OSS外部映射表。本示例以創(chuàng)建CSV格式的OSS外部映射表為例(不帶分區(qū))。更多語法詳情,請參見不帶分區(qū)的數(shù)據(jù)文件創(chuàng)建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" }';
參數(shù)
說明
ENGINE='OSS'
表示該表是外部表,使用的存儲引擎是OSS。
TABLE_PROPERTIES
用于告知AnalyticDB MySQL版如何訪問OSS中的數(shù)據(jù)。
endpoint
OSS的EndPoint(地域節(jié)點)。
說明目前僅支持AnalyticDB MySQL版通過ECS的VPC網(wǎng)絡(luò)訪問OSS。
登錄OSS控制臺,單擊目標(biāo)Bucket,在Bucket概覽頁面查看EndPoint(地域節(jié)點)。
url
OSS中源數(shù)據(jù)文件或文件夾的絕對路徑。建議文件夾絕對路徑以正斜線(/)結(jié)尾。
示例:
文件:
oss://<bucket-name>/adb/oss_import_test_data.csv
。文件夾:
oss://<bucket-name>/adb_data/
。說明若指定為源數(shù)據(jù)文件夾的路徑,成功創(chuàng)建外表后,外表中的數(shù)據(jù)為該文件夾下的所有數(shù)據(jù)。
accessid
您在訪問OSS中的文件或文件夾時所持有的AccessKey ID。
如何獲取您的AccessKey ID和AccessKey Secret,請參見賬號與權(quán)限。
accesskey
您在訪問OSS中的文件或文件夾時所持有的AccessKey Secret。
delimiter
定義CSV數(shù)據(jù)文件的列分隔符。例如您可以將列分隔符設(shè)置為英文逗號(,)。
format
數(shù)據(jù)文件的格式。
創(chuàng)建Parquet格式文件的外表時需設(shè)置為
parquet
。創(chuàng)建ORC格式文件的外表時需設(shè)置為
orc
。
說明不指定format時,默認(rèn)格式為CSV。
說明如果在下載的文件中表格被存儲為多個CSV文件,例如:
0-1csv
,0-2csv
,分析時,只需將url更改為data目錄:"url":"oss://bucket/_export/mydb/mytable/data/"
,AnalyticDB MySQL版會將該路徑下的文件合并到mytable
分析表中。此時,在AnalyticDB MySQL版數(shù)據(jù)庫中可以看到
mytable
表,該表與下載源的mytable
表內(nèi)容是完全一致的,可對其進行查詢。執(zhí)行如下語句,查詢導(dǎo)入的數(shù)據(jù)。
-- mytable為數(shù)據(jù)庫中表名稱 SELECT * FROM mytable;
得到表格結(jié)果,該表內(nèi)容與下載源的mytable表內(nèi)容完全一致。
后續(xù)步驟
RDS MySQL云盤下載數(shù)據(jù)導(dǎo)入至AnalyticDB MySQL版后,就可通過AnalyticDB MySQL版的分析能力對下載的表做業(yè)務(wù)分析。如果涉及到多個表聯(lián)表查詢,您需要按以上步驟導(dǎo)入多個表格到adb_demo
數(shù)據(jù)庫中。