AnalyticDB for MySQLでは、外部テーブルを使用してデータをインポートおよびエクスポートできます。 このトピックでは、AnalyticDB for MySQL Data Warehouse Edition (V3.0) の外部テーブルを使用して、自己管理型MySQLデータベースにデータをエクスポートする方法について説明します。
前提条件
Elastic Compute Service (ECS) インスタンスは、AnalyticDB for MySQLクラスターと同じリージョン内の同じ仮想プライベートクラウド (VPC) に作成されます。
自己管理型MySQLデータベースはECSインスタンスでホストされています。
自己管理型MySQLデータベースが接続されているポート番号には、ECSインスタンスへのアクセスが許可されています。 詳細については、「セキュリティグループルールの追加」をご参照ください。
テストデータを準備する。
この例では、
test_adb
という名前のECSホストの自己管理型MySQLデータベースがターゲットデータベースとして使用されます。courses
という名前の宛先テーブルがデータベースに作成されます。 このテーブルは、AnalyticDB for MySQLクラスターからエクスポートされたデータを格納するために使用されます。 次の文を使用して、宛先テーブルを作成できます。テーブルコースの作成 ( id bigint NOT NULL, 名前varchar(32) NOT NULL, グレードvarchar (32) NOT NULL, submission_date timestamp NOT NULL, 主要なキー (id) );
AnalyticDB for MySQLクラスターがエラスティックモードの場合、クラスター情報 ページの ネットワーク情報 セクションでEniネットワークをオンにする必要があります。
手順
AnalyticDB for MySQLクラスターに接続します。 詳細については、「AnalyticDB For MySQLクラスターへの接続」をご参照ください。
- ソースデータベースを作成します。 詳細については、「データベースの作成」をご参照ください。
この例では、
adb_demo
という名前のデータベースがAnalyticDB for MySQLクラスターのソースデータベースとして使用されています。 ソーステーブルを作成し、ソーステーブルにデータを挿入します。
次のステートメントを実行して、
adb_demo
ソースデータベースにcourses
という名前のソーステーブルを作成します。 次に、ソーステーブルのデータをtest_adb
自己管理型MySQLデータベースのcourses
テーブルにエクスポートします。テーブルコースの作成 ( id bigint AUTO_INCREMENT、名前varchar NOT NULL, グレードvarchar DEFAULT '1st grade '、submission_dateタイムスタンプ ) ハッシュによる分配 (id);
次のステートメントを実行して、courses
ソーステーブルにデータの行を挿入します。insert into courses (name,submission_date) VALUES("Jams",NOW());
外部テーブルを作成します。
次のステートメントを実行して、adb_demo
データベースにcourses_external_table
という名前の外部テーブルを作成します。create table IF NOT EXISTS courses_external_table ( id bigint NOT NULL, 名前varchar(32) NOT NULL, グレードvarchar (32) NOT NULL, submission_date timestamp NOT NULL, 主要なキー (id) ) エンジン='mysql' TABLE_PROPERTIES='{ "url":"jdbc:mysql:// mysql-vpc-address:3306/test_adb" 、"tablename":"コース" 、"username":"mysql-user-name" 、"password":"mysql-user-password" 、"charset":"utf8" } ';
パラメーター
説明
エンジン='mysql'
外部テーブルに使用されるストレージエンジン。 この例では、MySQLが使用されています。
テーブル_プロパティ
AnalyticDB for MySQLクラスターがECSホストのセルフマネージドMySQLデータベースのデータにアクセスするために使用する接続情報。
url
ECSインスタンスのプライマリプライベートIPアドレスまたはVPCエンドポイント、およびターゲットデータベースの名前。 この例では、ターゲットデータベースの名前は
test_adb
です。 ECSインスタンスのVPCエンドポイントを表示するには、次の手順を実行します。ECSコンソールにログインし、ECSインスタンスを見つけます。
[インスタンスの詳細] タブの [ネットワーク情報] セクションで、ECSインスタンスの [プライマリプライベートIPアドレス] の値を表示します。
形式:
"jdbc:mysql:// mysql-vpc-address:3306/ecs-database-name"
例:
jdbc:mysql:// 192.168.128 ***:3306/test_adb
tablename
ECSホスト型の自己管理型MySQLデータベースのターゲットテーブルの名前。 この例では、
コース
が使用されています。ユーザー名
ECSホストの自己管理型MySQLデータベースへの接続に使用されるデータベースアカウントのユーザー名。
パスワード
データベースアカウントのパスワードを設定します。
charset
ソースデータベースで使用される文字セット。 有効な値:
gbk
utf8 (デフォルト)
utf8mb4
からデータをエクスポートするAnalyticDB for MySQLクラスターをECSホストの自己管理型MySQLデータベースに追加します。
次のステートメントを実行します。REPLACE INTO courses_external_table SELECT * FROMコース;
次のステップ
データがエクスポートされた後、test_adb
自己管理MySQLデータベースに接続できます。 次に、次のステートメントを実行して、データがソーステーブルからコース
の宛先テーブルにインポートされているかどうかを確認します。
SELECT * FROMコースLIMIT 100;