ApsaraDB RDS は、AnalyticDB for MySQL、AnalyticDB for PostgreSQL、ApsaraDB for ClickHouse などのデータウェアハウスにデータを同期するためのゼロ ETL 機能を提供します。この機能により、同期リンクを構築または維持する必要がなくなります。この無料機能は、データ転送と O&M のコストを削減します。
サポート対象リージョン
中国 (北京)、中国 (杭州)、中国 (上海)、中国 (深圳)
今後、さらに多くのリージョンがサポートされる予定です。サポート対象リージョンの最新リストについては、ApsaraDB RDS コンソールをご参照ください。
概要
ビッグデータの時代において、ビジネスデータはさまざまなシステムやプラットフォームに散在していることが多く、このデータを効率的に管理・活用することが重要な課題となっています。従来、企業は抽出、変換、ロード (ETL) ツールを利用して、分散したデータをデータウェアハウスに集約し、ビジネス上の意思決定をサポートしていました。しかし、従来の ETL プロセスには、多くの場合、次のような課題があります。
システムの複雑性の増大:ETL ツールを維持すると O&M のワークロードが増加し、中核となるビジネス開発から焦点が逸れてしまいます。
リソースのコストの増加:データソースが異なれば、異なる ETL ツールが必要になる可能性があり、ETL リンクを構築するとコストが増加します。
データの鮮度の低下:一部の ETL プロセスにおける定期的なバッチ更新は分析を遅らせ、準リアルタイムのシナリオには適していません。
これらの問題に対処するため、Alibaba Cloud ApsaraDB は、オンライントランザクション処理 (OLTP) システムとオンライン分析処理 (OLAP) システムの間でデータ同期リンクを迅速に構築するためのゼロ ETL 機能を提供します。ゼロ ETL はデータの抽出、変換、ロードを自動化し、トランザクション処理とデータ分析を統合します。これにより、データ分析タスクに集中し、効率を向上させることができます。
メリット
使いやすさ:複雑な ETL データパイプラインを作成および維持する必要はありません。ソースデータと送信先インスタンスを選択するだけで、リアルタイムのデータ同期リンクが自動的に構築されます。これにより、データパイプラインの構築と管理が簡素化され、アプリケーションの開発に集中できます。
ゼロコスト:ゼロ ETL 機能は無料で使用でき、リアルタイムのデータ分析を可能にし、リソースのコストを削減します。
複数ソースの集約:複数のインスタンスから単一の送信先データウェアハウス (AnalyticDB for MySQL クラスター、AnalyticDB for PostgreSQL インスタンス、または ApsaraDB for ClickHouse インスタンスなど) にリアルタイムでデータを同期し、グローバルな分析ビューを構築できます。
説明複数のインスタンスから単一の 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 機能は無料です。
前提条件
ソース ApsaraDB RDS for MySQL インスタンスと同じリージョンに、ApsaraDB for ClickHouse インスタンス、AnalyticDB for MySQL Data Warehouse Edition クラスター、またはAnalyticDB for PostgreSQL インスタンスを作成済みであること。
ApsaraDB RDS for MySQL アカウント、ApsaraDB for ClickHouse アカウント、AnalyticDB for MySQL クラスターアカウント、AnalyticDB for PostgreSQL データベースアカウントを作成済みであること。
事前準備
サービスリンクロールを作成し、RAM ユーザーに必要な管理権限を付与します。
ApsaraDB RDS for MySQL から ApsaraDB for ClickHouse
AliyunServiceRoleForClickHouseZeroETL サービスリンクロールを作成します。
説明このロールを手動で作成する必要はありません。統合を設定する際に、システムが自動的に作成します。
RAM ユーザーに管理権限を付与します。
RAM ユーザーがゼロ ETL リンクを正常に作成するには、次の 3 つの権限セットが必要です。詳細については、「カスタムポリシーの作成」をご参照ください。
ソース ApsaraDB RDS for MySQL インスタンスに対する権限:AliyunRDSFullAccess。
送信先 ApsaraDB for ClickHouse インスタンスに対する権限:ApsaraDB for ClickHouse には、次のカスタムポリシーを使用します。
{ "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) に対する権限:DTS には、次のカスタムポリシーを使用します。
{ "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サービス] を選択し、[次へ] をクリックします。
[ロールタイプ] で [サービスリンクロール] を選択し、AnalyticDB for MySQL を選択します。
[OK] をクリックします。ロールリストに戻り、サービスリンクロールが正常に作成されたことを確認します。
RAM ユーザーに管理権限を付与します。
RAM ユーザーに、すべてまたは特定の ApsaraDB RDS for MySQL インスタンスおよび 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:*:*:*" ] } ] }特定のクラスター
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****", // 同期対象の AnalyticDB for MySQL クラスターの ID に置き換えます。 "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****" // 同期対象の ApsaraDB RDS for MySQL インスタンスの ID に置き換えます。 ] }, { "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サービス] を選択し、[次へ] をクリックします。
[ロールタイプ] で [サービスリンクロール] を選択し、AnalyticDB for PostgreSQL を選択します。
[OK] をクリックします。ロールリストに戻り、サービスリンクロールが正常に作成されたことを確認します。
RAM ユーザーに管理権限を付与します。
RAM ユーザーに、すべてまたは特定の ApsaraDB RDS for MySQL インスタンスおよび 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:dts:*:*:*" ] } ] }特定のインスタンス
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dts:*", "Resource": [ "acs:gpdb:*:*:dbinstance/gp-bp1a740l3zx4****", // 同期対象の AnalyticDB for PostgreSQL インスタンスの ID に置き換えます。 "acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****" // 同期対象の ApsaraDB RDS for MySQL インスタンスの ID に置き換えます。 ] }, { "Effect": "Allow", "Action": [ "dts:DescribeRegions", "dts:DescribeConfigRelations", "dts:DescribeSrcLinkConfig", "dts:DescribeDestLinkConfig", "dts:DescribeLinkConfig" ], "Resource": "acs:dts:*:*:*" } ] }
手順
ApsaraDB RDS コンソールにログインします。左側のナビゲーションウィンドウで、[Data Integration] をクリックします。
[ゼロETL] タブで、[ゼロETLタスクの作成] をクリックします。
[ゼロETLタスクの作成] ページで、ソースデータベースと送信先データベースの情報を設定します。
ソースデータベースの情報を設定します。
パラメーター
説明
タスク名
ゼロ ETL タスクの名前。
データベースタイプ
ApsaraDB RDS for MySQL を選択します。
アクセス方法
[Alibaba Cloudインスタンス] のみがサポートされます。
インスタンスリージョン
ソースインスタンスのリージョン。
インスタンス ID
ApsaraDB RDS for MySQL インスタンスの ID。
データベース名
ApsaraDB RDS for MySQL インスタンス内のデータベースの名前。
データベースアカウント
ApsaraDB RDS for MySQL インスタンスのデータベースアカウント。
データベースパスワード
ApsaraDB RDS for MySQL インスタンスのデータベースアカウントのパスワード。
接続方法
ソースインスタンスの接続方法。有効な値:非暗号化接続および SSL 暗号化接続。
説明[SSL暗号化接続] を選択する場合は、まず クラウドネイティブ証明書を使用してインスタンスのSSL暗号化を有効にする必要があります。
送信先データベースの情報を設定します。
パラメーター
説明
データベースタイプ
送信先データベースのタイプです。AnalyticDB for MySQL 3.0、AnalyticDB for PostgreSQL、ApsaraDB for ClickHouse がサポートされています。
アクセス方法
[Alibaba Cloudインスタンス] のみがサポートされます。
インスタンスリージョン
送信先インスタンスのリージョン。
インスタンス ID
送信先インスタンスの ID。
データベースアカウント
送信先インスタンスのデータベースアカウント。
データベースパスワード
送信先インスタンスのデータベースアカウントのパスワード。
パラメーターを設定した後、[接続をテストして続行] をクリックします。表示されるページで、次のパラメーターを設定します。
パラメーター
説明
同期タイプ
データソース間のリアルタイムデータ同期を有効にします。
同期タイプは、スキーマ同期、完全データ同期、増分データ同期です。
説明増分データ同期は、同期タスクでデフォルトで選択されています。これにより、ソースデータベースの変更がリアルタイムで送信先データベースに同期されます。
増分同期が必要ない場合は、データ移行を使用してください。
インスタンスレベルの DDL および DML 操作
同期する DML 操作 (INSERT、UPDATE、DELETE) と DDL 操作 (CREATE、ALTER、DROP、RENAME、TRUNCATE) を選択します。デフォルトでは、すべての操作が選択されています。
ソースオブジェクトと選択済みオブジェクト
ソースオブジェクトが表示され、同期するオブジェクトを選択できます。
詳細設定 (任意)
接続障害やその他のデータベース問題に対する再試行間隔を設定します。
パラメーターを設定した後、[次へ:データベースとテーブルフィールドの設定] をクリックします。次の情報を設定します。
パラメーター
説明
データベース名
既存のデータベースを選択します。
テーブル名
既存のデータテーブルを選択します。
プライマリキー列
選択したテーブルのプライマリキー列。
分散キー
選択したテーブルの分散キー。
タイプ
テーブルタイプ。パーティション化またはレプリケートが可能です。
定義ステータス
テーブルとフィールドが設定済みかどうかを示します。設定が完了すると、ステータスは「未定義」から「定義済み」に変わります。
すべてのパラメーターを設定した後、[次へ:タスク設定の保存と事前チェック] をクリックします。
事前チェックが成功した場合、[開始] をクリックしてタスクを起動します。
[無料データ同期] ページでは、ゼロ ETL タスクの名前、ソース/送信先、ステータスなどの情報を表示できます。