ApsaraDB RDSは、ApsaraDB RDS for MySQLインスタンスからデータウェアハウスにデータを同期するゼロETL機能を提供します。 データ同期タスクを作成または維持する必要はなく、データ同期タスクに対して課金されません。 これにより、データ伝送コストとO&Mコストが削減されます。 データウェアハウスは、AnalyticDB for MySQLクラスター、AnalyticDB for PostgreSQLクラスター、またはApsaraDB for ClickHouseクラスターです。
サポートされるリージョン
中国 (北京) 、中国 (杭州) 、中国 (上海) 、中国 (深セン)
この機能は、リージョンのRDSインスタンスに対して段階的に展開されます。 ApsaraDB RDSコンソールの情報が優先されます。
概要
ビッグデータの時代では、企業は、異なるシステムやプラットフォームに分散された大量のビジネスデータを効率的に管理および使用するために、ETL (extract-transform-load) ツールを使用する必要があります。
ETLツールは、上位レベルのビジネスシステムからデータを抽出し、データを変換した後、データをデータウェアハウスにロードします。 このプロセスは、さらなるコンピューティング、分析、およびビジネス意思決定のために、分散データをデータウェアハウスに組み込む。
次のセクションでは、従来のETLプロセスに関連する課題について説明します。
システムの複雑さの増加: ETLツールのメンテナンスは、O&Mの難易度を高め、ビジネスアプリケーションの開発に集中できなくなります。
リソースコストの増加: データソースごとに異なるETLツールが必要になる場合があり、ETLタスクの作成に追加料金が発生します。
データの適時性の低下: 特定のETLプロセスには定期的なバッチ更新が含まれます。 ほぼリアルタイムのシナリオでは、分析結果を迅速に生成することはできません。
この問題を解決するために、Alibaba Cloud ApsaraDBは、オンライントランザクション処理 (OLTP) データベースを使用するビジネスシステムとオンライン分析処理 (OLAP) データベースを使用するデータウェアハウスとの間でデータ同期タスクを迅速に作成できるゼロETL機能を提供しています。 この機能は、ビジネスシステムのデータを自動的に抽出、変換、クレンジング、およびデータウェアハウスにロードします。 このようにして、データの同期と管理をワンストップで完了し、トランザクション処理とデータ分析を統合できます。 これにより、データ分析に集中することができます。
メリット
使いやすさ: ETL操作を実行するために、複雑なデータパイプラインを作成または維持する必要はありません。 リアルタイムのデータ同期タスクを作成するには、ソースインスタンスとターゲットクラスターのみを選択する必要があります。 これにより、データパイプラインの構築と管理の課題が軽減され、アプリケーション開発に集中できるようになります。
ゼロコスト: ゼロETLタスクを作成して、データ分析に無料でデータをデータウェアハウスに同期できます。
マルチソースアグリゲーション: ゼロETLタスクを作成して、複数のRDSインスタンスからAnalyticDB for MySQLクラスター、AnalyticDB for PostgreSQLインスタンス、またはApsaraDB for ClickHouseクラスターにリアルタイムでデータを同期し、グローバル分析の観点を構築できます。
説明複数のRDSインスタンスのデータをApsaraDB for ClickHouseクラスターに同期する場合は、同期するオブジェクトが異なるタスク内で重複しないようにしてください。
同期リンク
ApsaraDB RDS for MySQLからApsaraDB for ClickHouseへ
ApsaraDB RDS for MySQLからAnalyticDB for MySQLへの3.0
ApsaraDB RDS for MySQLからAnalyticDB for PostgreSQLへ
課金ルール
ゼロETL機能を使用して、データを無料で同期できます。
前提条件
RDSインスタンスが作成されました。 詳細については、「ApsaraDB RDS for MySQL インスタンスの作成」をご参照ください。
ApsaraDB for ClickHouseクラスター、AnalyticDB for PostgreSQLインスタンス、またはAnalyticDB for MySQL Data Warehouse Editionクラスターが作成されています。 詳細については、「データベースの作成」、「インスタンスの作成」、および「Data Warehouse Editionクラスターの作成」をご参照ください。
ソースインスタンスとターゲットクラスターまたはインスタンスは同じリージョンにあります。
RDSインスタンスと移行先クラスターまたはインスタンスのデータベースアカウントが作成されます。 詳細については、ApsaraDB RDS For MySQLインスタンスのアカウントの作成、ApsaraDB for ClickHouseクラスターのアカウントの作成、AnalyticDB for MySQLクラスターのデータベースアカウントの作成、およびAnalyticDB for PostgreSQLクラスターのデータベースアカウントの作成をご参照ください。
準備
サービスにリンクされたロールを作成し、RAMユーザーに管理権限を付与します。
ApsaraDB RDS for MySQLからApsaraDB for ClickHouseへ
AliyunServiceRoleForClickHouseZeroETLサービスにリンクされたロールを作成します。
説明タスクを作成し、インスタンスIDドロップダウンリストをクリックすると、AliyunServiceRoleForClickHouseZeroETLロールを作成する必要があることを示すメッセージが表示されます。 システムは自動的にロールを作成します。 手動操作は必要ない。
RAMユーザー管理権限を付与します。
RAMユーザーがゼロETLタスクを作成できるようにするには、RAMユーザーに次の権限を付与する必要があります。 詳細については、「カスタマイズポリシーの作成」をご参照ください。
RDSインスタンスの権限: AliyunRDSFullAccessポリシーをRAMユーザーにアタッチする必要があります。
ApsaraDB for ClickHouseクラスターの権限: カスタムポリシーをRAMユーザーにアタッチする必要があります。 次のスクリプトでは、カスタムポリシーについて説明します。
{ "Version": "1", "Statement": [ { "Action": "clickhouse:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "clickhouse.aliyuncs.com" } } } ] }
Data Transmission Service (DTS) の権限: カスタムポリシーをRAMユーザーにアタッチする必要があります。 次のスクリプトでは、カスタムポリシーについて説明します。
{ "Version": "1", "Statement": [ { "Action": "dts:*", "Resource": "*", "Effect": "Allow" }, { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "dts.aliyuncs.com" } } } ] }
ApsaraDB RDS for MySQLからAnalyticDB for MySQLへの3.0
AliyunServiceRoleForAnalyticDBForMySQLサービスにリンクされたロールを作成します。
RAM コンソールにログインします。 左側のナビゲーションウィンドウで、[ロール] をクリックします。 AliyunServiceRoleForAnalyticDBForMySQLという名前のサービスにリンクされたロールがロールリストに存在するかどうかを確認します。 サービスにリンクされたロールが存在しない場合は、ロールを作成します。
表示されるページの左上隅にある [ロールの作成] をクリックします。
[ロールタイプの選択] ステップで、[Alibaba Cloud Service] を選択し、[次へ] をクリックします。
Role TypeパラメーターをService Linked Roleに設定し、Select ServiceパラメーターをAnalyticDB for MySQLに設定します。
[OK] をクリックします。 [ロール] ページに戻り、サービスにリンクされたロールが作成されているかどうかを確認します。
RAMユーザー管理権限を付与します。
すべてまたは特定のApsaraDB RDS for MySQLインスタンスおよびAnalyticDB for MySQLクラスターに対してRAMユーザー権限を付与できます。 詳細については、「カスタマイズポリシーの作成」をご参照ください。
次のセクションでは、カスタムポリシーのスクリプトについて説明します。
すべてのRDSインスタンスとAnalyticDB for MySQLクラスターに対する権限の付与
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:adb:*:*:*", "acs:rds:*:*:*" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig", "dts:DescribeConciseJobStatics", "dts:ListUserAuthorizationLogs", "dts:CreateUserAuthorization" ], "Resource": [ "acs:dts:*:*:*" ] } ] }
特定のRDSインスタンスとAnalyticDB for MySQLクラスターに対する権限の付与
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****", Use the ID of the AnalyticDB for MySQL cluster to be synchronized. "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****", Use the ID of the RDS instance to be synchronized. ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig", "dts:DescribeConciseJobStatics", "dts:ListUserAuthorizationLogs", "dts:CreateUserAuthorization" ], "Resource": "acs:dts:*:*:*" } ] }
ApsaraDB RDS for MySQLからAnalyticDB for PostgreSQLへ
AliyunServiceRoleForADBPGという名前のサービスにリンクされたロールを作成します。
RAM コンソールにログインします。 左側のナビゲーションウィンドウで、[ロール] をクリックします。 表示されるページで、AliyunServiceRoleForADBPGサービスにリンクされたロールが存在するかどうかを確認します。 サービスにリンクされたロールが存在しない場合は、ロールを作成します。
表示されるページの左上隅にある [ロールの作成] をクリックします。
[ロールタイプの選択] ステップで、[Alibaba Cloud Service] を選択し、[次へ] をクリックします。
Role TypeパラメーターをService Linked Roleに設定し、Select ServiceパラメーターをAnalyticDB for PostgreSQLに設定します。
[OK] をクリックします。 [ロール] ページに戻り、サービスにリンクされたロールが作成されているかどうかを確認します。
RAMユーザー管理権限を付与します。
すべてまたは特定のApsaraDB RDS for MySQLインスタンスおよびAnalyticDB for PostgreSQLクラスターに対してRAMユーザー権限を付与できます。 詳細については、「カスタマイズポリシーの作成」をご参照ください。
次のセクションでは、カスタムポリシーのスクリプトについて説明します。
すべてのRDSインスタンスとAnalyticDB for PostgreSQLクラスターに対する権限の付与
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:*", "acs:rds:*:*:*" ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": [ "acs:gpdb:*:*:*" ] } ] }
特定のRDSインスタンスとAnalyticDB for PostgreSQLクラスターに対する権限の付与
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:dbinstanc/gp-bp1a740l3zx4****", Use the ID of the AnalyticDB for PostgreSQL cluster to be synchronized. "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****", Use the ID of the RDS instance to be synchronized. ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": "acs:dts:*:*:*" } ] }
手順
ApsaraDB for RDS コンソールにログインします。 左側のナビゲーションウィンドウで、[Data Integration] をクリックします。
[ゼロETL] タブで、[ゼロETLタスクの作成] をクリックします。
[ゼロETLタスクの作成] ページで、ソースデータベースとターゲットデータベースを設定します。
次の表に、ソースデータベースのパラメーターを示します。
パラメーター
説明
タスク名
ゼロETLタスクの名前。
データベースエンジン
データベースタイプ。 RDS for MySQLを選択します。
アクセス方法
アクセス方法。 値をAlibaba Cloudインスタンスに設定します。
インスタンスリージョン
同期元インスタンスの ID。
インスタンス ID
ApsaraDB RDS for MySQL インスタンスの ID です。
データベース名
ApsaraDB RDS for MySQLインスタンスのデータベースの名前。
データベースアカウント
ApsaraDB RDS for MySQLインスタンスのデータベースアカウントのユーザー名。
データベースパスワード
ApsaraDB RDS for MySQLインスタンスのデータベースアカウントのパスワード。
暗号化
ApsaraDB RDS for MySQLインスタンスへの接続に使用されるメソッドです。 有効な値: 非暗号化およびSSL暗号化。
説明SSL暗号化を選択した場合、ApsaraDB RDS for MySQLインスタンスのSSL暗号化を有効にする必要があります。 詳細については、「SSL暗号化機能の設定」をご参照ください。
次の表に、ターゲットデータベースのパラメーターを示します。
パラメーター
説明
データベースエンジン
データベースタイプ。 有効な値: AnalyticDB for MySQL 3.0、AnalyticDB PostgreSQL、およびClickHouse
アクセス方法
アクセス方法。 値をAlibaba Cloudインスタンスに設定します。
インスタンスリージョン
ターゲットデータベースが作成されるクラスターのID。
インスタンス ID
ターゲットデータベースが作成されるクラスターのID。
データベースアカウント
ターゲットデータベースが作成されるクラスターのデータベースアカウントのユーザー名。
データベースパスワード
ターゲットデータベースが作成されるクラスターのデータベースアカウントのパスワード。
上記のパラメーターを設定した後、[Test Connectivity and Proceed] をクリックします。 [ゼロETLの設定] ステップで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメータ /セクション
説明
同期タイプ
ソースデータベースとターゲットデータベース間のデータ同期のタイプ。
有効な値: スキーマ同期、フルデータ同期、および増分データ同期。
説明同期タスクの場合、増分データ同期は自動的に選択され、クリアできません。 ソースデータベースの増分データは、リアルタイムでターゲットデータベースに同期されます。
増分データを同期しない場合は、データ移行方法を使用します。
同期するDDLおよびDML操作
同期するDML操作とDDL操作。 DML操作は、INSERT、UPDATE、およびDELETEを含む。 DDL操作には、CREATE、ALTER、DROP、RENAME、およびTRUNCATEが含まれます。 デフォルトでは、すべての操作が選択されています。
ソースオブジェクトと選択オブジェクト
ソースデータベース内のオブジェクトと同期するオブジェクト。
詳細設定 (オプション)
ソースデータベースとターゲットデータベース間の接続が失敗した場合のリトライ時間、およびソースデータベースとターゲットデータベースで発生したその他の問題のリトライ時間。
上記のパラメーターを設定した後、[次へ: データベースフィールドとテーブルフィールドの設定] をクリックします。 [データベースおよびテーブルフィールドの設定] ステップで、必要なパラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
データベース名
選択したデータベースの名前。
テーブル名
選択したテーブルの名前。
主キー列
選択したテーブルの主キー列。
配布キー
選択したテーブルの配布キー列。
タイプ
テーブルの型。パーティション化されたテーブルまたはレプリケートされたテーブルにすることができます。
定义ステータス
選択したテーブルのステータス。 テーブルフィールドを設定すると、テーブルのステータスが未定義から定義に変わります。
上記のパラメーターを設定したら、[次へ: タスク設定の保存と事前チェック] をクリックします。
事前チェックが成功した場合は、[開始] をクリックしてゼロETLタスクを開始します。
[ゼロETL] タブで、[ソース] タブをクリックして、ゼロETLタスクの [名前] 、[ソース /宛先] 、および [ステータス] パラメーターを表示できます。