全部產品
Search
文件中心

ApsaraDB RDS:雲端硬碟備份資料匯入至AnalyticDB MySQL版

更新時間:Jun 19, 2024

如果您需要對RDS MySQL雲端硬碟資料進行查詢分析,您可先使用進階下載功能將資料下載到阿里雲OSS中,再將OSS中的資料匯入到雲原生資料倉儲AnalyticDB MySQL版進行查詢分析。

前提條件

  • RDS MySQL為雲端硬碟執行個體,且支援進階備份下載功能。是否支援,請參見前提條件

  • 已建立目標雲原生資料倉儲AnalyticDB MySQL叢集。具體操作,請參見建立數倉版叢集建立湖倉版叢集

  • 如果您的AnalyticDB MySQL叢集是彈性模式,您需要在集群資訊頁面的網路資訊地區,開啟啟用ENI網絡的開關。啟用ENI網路

注意事項

AnalyticDB MySQL版僅支援CSV、Parquet兩種資料檔案匯入,因此使用RDS MySQL下載備份功能時,請選擇下載格式為CSV或Parquet。

準備工作

通過以下步驟在Object Storage Service(Object Storage Service,簡稱OSS)中建立儲存AnalyticDB MySQL版資料的目錄,並使用下載備份功能將資料下載到阿里雲OSS中。

  1. 開通OSS服務。具體操作,請參見開通OSS服務

  2. 在OSS控制台建立儲存空間(Bucket)。具體操作,請參見控制台建立儲存空間

    說明

    OSS與AnalyticDB MySQL版所屬地區需相同。

  3. 在OSS控制台建立目錄。具體操作,請參見建立目錄

  4. 使用下載備份功能下載雲端硬碟執行個體的備份資料,並選擇下載目標為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庫中。

  1. 串連目標AnalyticDB MySQL叢集。詳細操作步驟,請參見串連叢集

  2. 建立目標資料庫。詳細操作步驟,請參見建立資料庫

    本樣本中,AnalyticDB MySQL叢集的目標庫名為adb_demo

  3. 建立外部映射表。

    說明

    在建立外部映射表時,表名可以選擇與原表名相同,也可以使用不同的表名,按需命名即可。

    由於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-1csv0-2csv,分析時,只需將url更改為data目錄:"url":"oss://bucket/_export/mydb/mytable/data/"AnalyticDB MySQL版會將該路徑下的檔案合并到mytable分析表中。

    此時,在AnalyticDB MySQL版資料庫中可以看到mytable表,該表與下載源的mytable表內容是完全一致的,可對其進行查詢。

  4. 執行如下語句,查詢匯入的資料。

    -- mytable為資料庫中表名稱
    SELECT * FROM mytable;

    得到表格結果,該表內容與下載源的mytable表內容完全一致。

    image.png

後續步驟

RDS MySQL雲端硬碟下載資料匯入至AnalyticDB MySQL版後,就可通過AnalyticDB MySQL版的分析能力對下載的表做業務分析。如果涉及到多個表聯表查詢,您需要按以上步驟匯入多個表格到adb_demo資料庫中。