クラウドディスクを使用するApsaraDB RDS for MySQLインスタンスのデータをクエリおよび分析する場合は、高度なダウンロード機能を使用して、データをObject Storage Service (OSS) バケットにダウンロードできます。 その後、ダウンロードしたデータをAnalyticDB for MySQLクラスターにインポートして、クエリと分析を実行できます。
前提条件
RDSインスタンスはクラウドディスクを使用し、高度なダウンロード機能をサポートしています。 詳細については、「ApsaraDB RDS For MySQLインスタンスのバックアップファイルのダウンロード」をご参照ください。
AnalyticDB for MySQLクラスターが作成されました。 詳細については、「Data Warehouse Editionクラスターの作成」または「Data Lakehouse Editionクラスターの作成」をご参照ください。
AnalyticDB for MySQLクラスターがエラスティックモードの場合、クラスター情報 ページの ネットワーク情報 セクションでEniネットワークをオンにする必要があります。
使用上の注意
AnalyticDB for MySQLでは、CSVおよびParquetファイルをインポートできます。 RDSインスタンスのバックアップファイルをダウンロードするときは、ダウンロード形式をCSVまたはParquetに設定する必要があります。
準備
AnalyticDB for MySQLクラスターのデータをOSSバケットに保存するためのディレクトリを作成します。 次に、バックアップダウンロード機能を使用して、必要なデータをOSSバケットにダウンロードします。 詳細については、「OSSの概要」をご参照ください。
OSSの有効化 詳細については、「OSSの有効化」をご参照ください。
OSSコンソールでバケットを作成します。 詳細については、「バケットの作成」をご参照ください。
説明OSSバケットとAnalyticDB for MySQLクラスターが同じリージョンにあることを確認します。
OSSコンソールでディレクトリを作成します。 詳細については、「ディレクトリの管理」をご参照ください。
バックアップダウンロード機能を使用してRDSインスタンスのバックアップファイルをダウンロードし、ダウンロード先パラメーターをOSSに設定します。 詳細については、「ApsaraDB RDS For MySQLインスタンスのバックアップファイルのダウンロード」をご参照ください。
説明このパラメーターに別の値を選択した場合、バックアップファイルをOSSバケットにアップロードする必要があります。 詳しくは、「オブジェクトのアップロード」をご参照ください。
この例では、RDSインスタンスのソースデータベースの名前は
mydb
で、mytable
テーブルがデータベースに作成されます。 表のサンプルデータ:INSERT INTO mytable (id, name) 値 ("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 for MySQLクラスターへのデータのインポート
この例では、データは /bucket/_export/mydb/mytable/data/0-1csv
ディレクトリからAnalyticDB for MySQLクラスターのadb_demo
データベースにインポートされます。
AnalyticDB for MySQLクラスターに接続します。 詳細については、「AnalyticDB For MySQLクラスターへの接続」をご参照ください。
データベースを作成します。 詳細については、「データベースの作成」をご参照ください。
この例では、
adb_demo
という名前のデータベースがAnalyticDB for MySQLクラスターに作成されます。外部マッピングテーブルを作成します。
説明外部マッピングテーブルを作成するときは、元のテーブルと同じテーブル名を使用するか、別のテーブル名を使用できます。
AnalyticDB for MySQLはテーブル分析のみをサポートしています。 データ分析の前に、マッピングテーブルがAnalyticDB for MySQLクラスターに作成されていることを確認してください。
mytableが存在しない場合はCREATE TABLE
ステートメントを実行して、adb_demo
データベースにCSVまたはParquet形式のOSS外部マッピングテーブルを作成できます。 この例では、パーティションを持たず、CSV形式のOSS外部マッピングテーブルが作成されます。 構文の詳細については、「外部テーブルを使用してデータをdata Warehouse Editionにインポートする」をご参照ください。テーブルを作成する ( id文字列、 名前文字列 ) エンジン='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" } ';
パラメーター
説明
エンジン='OSS'
外部テーブルに使用されるストレージエンジン (OSS) 。
タブレット_プロパティ
AnalyticDB for MySQLがOSSへのアクセスに使用する接続情報。
endpoint
OSSバケットのエンドポイント。
説明AnalyticDB for MySQLは、VPC経由でElastic Compute Service (ECS) インスタンスからのみOSSにアクセスできます。
OSSコンソールにログインしてバケットを見つけ、[概要] ページでエンドポイントを表示します。
url
OSS内のソースオブジェクトまたはディレクトリの絶対パス。 ディレクトリの絶対パスの末尾にスラッシュ (/) を使用することをお勧めします。
例:
オブジェクト:
oss://<bucket-name>/adb/oss_import_test_data.csv
ディレクトリ:
oss://<bucket-name>/adb_data/
説明このパラメーターをソースディレクトリの絶対パスに設定した場合、作成された外部テーブルにはディレクトリ内のすべてのデータが含まれます。
accessid
OSSのオブジェクトまたはディレクトリへのアクセスに使用されるAccessKey ID。
AccessKey IDとAccessKeyシークレットの取得方法については、「アカウントと権限」をご参照ください。
accesskey
OSSのオブジェクトまたはディレクトリへのアクセスに使用されるAccessKeyシークレット。
delimiter
CSV形式のオブジェクトの列区切り文字。 たとえば、列の区切り文字をコンマ (,) に設定できます。
フォーマット
オブジェクトの形式。
Parquet形式で外部テーブルを作成する場合、このパラメーターを
parquet
に設定する必要があります。ORC形式で外部テーブルを作成する場合、このパラメーターを
orc
に設定する必要があります。
説明formatパラメーターが指定されていない場合は、CSV形式が使用されます。
説明ダウンロードしたファイルのテーブルが
0-1csv
や0-2csv
などの複数のCSVファイルに保存されている場合は、URLを"url":"oss:// bucket/_export/mydb/mytable/data/"
に変更するだけです。 次に、AnalyticDB for MySQLは、このディレクトリ内のファイルをmytable
分析テーブルにマージします。これにより、AnalyticDB for MySQLクラスターで
mytable
テーブルを表示できます。 このテーブルの内容は、元のmytable
テーブルの内容とまったく同じです。 mytableテーブルのデータをクエリできます。次の文を実行して、インポートしたデータを照会します。
-- mytableは、AnalyticDB for MySQLクラスターのデータベース内のテーブルの名前です。 SELECT * mytableから;
照会されたテーブルのデータが返されます。 返されるデータは、元のmytableテーブルのデータとまったく同じです。
次のステップ
クラウドディスクを使用するRDSインスタンスのデータをAnalyticDB for MySQLクラスターにインポートした後、AnalyticDB for MySQLを使用してデータのビジネス分析を実行します。 複数のテーブルを照会する場合は、上記の手順に従って、複数のテーブルをadb_demo
データベースにインポートします。