RDS のバックアップデータを大規模にクエリおよび分析するには、高度ダウンロード機能を使用して Object Storage Service (OSS) にダウンロードし、OSS 外部テーブル経由で AnalyticDB for MySQL クラスターにロードします。
仕組み
高度ダウンロード機能を使用して、RDS バックアップを CSV または Parquet 形式で OSS にエクスポートします。
AnalyticDB for MySQL クラスターに接続し、OSS パスを指す外部テーブルを作成します。
外部テーブルを通じてデータを直接クエリします。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
クラウドディスクを使用し、高度なダウンロード機能をサポートする ApsaraDB RDS for MySQL インスタンス。 詳細については、「バックアップのダウンロード」をご参照ください。
セットアップ手順については、「Data Warehouse Edition クラスターの作成」または「Data Lakehouse Edition クラスターの作成」をご参照ください。
AnalyticDB for MySQL クラスターと同一リージョンにある OSS バケット
(クラスターがエラスティックモードを使用する場合)ENI を クラスター情報 ページの ネットワーク情報 セクションで有効化済みであること

ステップ 1:RDS バックアップを OSS にダウンロード
OSS バケットをセットアップし、RDS バックアップデータをそのバケットにダウンロードします。
詳細については、「OSS の有効化」をご参照ください。
詳細については、「バケットの作成」をご参照ください。
説明 OSS バケットと AnalyticDB for MySQL クラスターは同一リージョンに配置する必要があります。詳細については、「ディレクトリの管理」をご参照ください。
高度なダウンロード機能を使用して RDS バックアップをダウンロードします。[ダウンロード先] を OSS に設定します。詳細については、「バックアップのダウンロード」をご参照ください。
説明 他のダウンロード送信先を選択した場合は、バックアップファイルを手動で OSS バケットにアップロードしてください。詳細については、「オブジェクトのアップロード」をご参照ください。
この例では、ソースデータベースは 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 にダウンロードされます。
ステップ 2:OSS から AnalyticDB for MySQL クラスターへのデータインポート
この例では、/bucket/_export/mydb/mytable/data/0-1csv のデータを AnalyticDB for MySQL クラスター内の adb_demo データベースにインポートします。
AnalyticDB for MySQL クラスターに接続します。詳細については、「AnalyticDB for MySQL クラスターへの接続」をご参照ください。
データベースを作成します。詳細については、「データベースを作成する」をご参照ください。この例では、
adb_demoという名前のデータベースを使用します。CREATE TABLEを使用して、adb_demoデータベース内に OSS 外部テーブルを作成します。このテーブルは、バックアップデータが格納されている OSS パスに対応します。以下の例は、CSV 形式の非パーティション外部テーブルを作成するものです。説明 外部テーブルには、ソーステーブルと同じ名前、または異なる名前を使用できます。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":"LTAI****************", "accesskey":"yourAccessKeySecret", "delimiter":",", "format":"csv" }';TABLE_PROPERTIES内のプレースホルダー値を、実際の構成情報に置き換えてください。パラメーター 説明 例 endpointOSS バケットの VPC エンドポイント。AnalyticDB for MySQL は VPC 経由でのみ OSS にアクセスするため、内部エンドポイントを使用してください。このエンドポイントは、OSS コンソールのバケットの 概要 ページで確認できます。 oss-cn-hangzhou-internal.aliyuncs.comurlOSS オブジェクトまたはディレクトリの絶対パス。ディレクトリを指定する場合は、パスの末尾に /を付けてください。オブジェクト: oss://<bucket-name>/adb/data.csv<br>ディレクトリ:oss://<bucket-name>/adb_data/accessidOSS にアクセスするために使用する AccessKey ID。詳細については、「アカウントと権限」をご参照ください。 LTAI5tXxxaccesskeyOSS にアクセスするために使用する AccessKey Secret。 — delimiterCSV ファイルの列区切り文字。 ,formatファイル形式: csv(デフォルト、指定不要)、Parquet ファイルの場合はparquet、ORC ファイルの場合はorcを指定します。csv説明 バックアップデータが複数の CSV ファイル(例:0-1csvおよび0-2csv)に分割されている場合は、urlをディレクトリパスに設定します:"url":"oss://bucket/_export/mydb/mytable/data/"。AnalyticDB for MySQL は、ディレクトリ内のすべてのファイルを自動的に外部テーブルにマージします。CREATE TABLEの完全な構文については、「外部テーブルを使用した Data Warehouse Edition へのデータインポート」をご参照ください。
ステップ 3:インポートされたデータの検証
以下のクエリを実行して、データが正しくインポートされたことを確認します。
-- mytable は AnalyticDB for MySQL クラスター内の外部テーブルの名前です。
SELECT * FROM mytable;返されたデータは、RDS インスタンス上の元の mytable テーブルと一致します。

次のステップ
クラウドディスクを使用する RDS インスタンスのデータを AnalyticDB for MySQL クラスターにインポートしたら、AnalyticDB for MySQL を使用してビジネス分析を実行できます。複数のテーブルが必要な場合は、上記の手順に従って、追加の各テーブルを adb_demo データベースにダウンロードおよびインポートしてください。