AnalyticDB for MySQL は、シームレスな統合 (Zero-ETL) 機能を提供します。この機能を使用すると、RDS for MySQL から AnalyticDB for MySQL へのデータ同期パイプラインを作成できます。これにより、データ同期を単一の場所で管理し、トランザクション処理とデータ分析を統合できます。
概要
ビッグデータの時代において、企業のデータはさまざまなシステムやプラットフォームに散在しています。このデータを効果的に管理・活用するために、企業は多くの場合、抽出、変換、ロード (ETL) ツールを利用してデータを一元管理します。
ETL とは、上流の業務システムからデータを抽出し、変換してデータウェアハウスにロードするプロセスです。その目的は、散在する上流のデータを宛先のデータウェアハウスに統合することです。データウェアハウスでこのデータをさらに計算・分析することで、企業は効果的な意思決定を行うことができます。
従来の ETL プロセスには、多くの場合、次のような課題がありました:
リソースコストの増加:データソースが異なれば、必要な ETL ツールも異なる場合があります。ETL パイプラインを構築すると、リソースコストが増加します。
システムの複雑性の増加:ETL ツールを自身でメンテナンスする必要があります。これにより、運用保守 (O&M) の複雑性が増し、ビジネスアプリケーション開発に集中できなくなります。
高いデータ遅延:一部の ETL プロセスでは、定期的な一括更新が行われます。ほぼリアルタイムのアプリケーションシナリオでは、これにより分析結果の迅速な生成が妨げられます。
これらの問題を解決するために、Alibaba Cloud ApsaraDB はシームレスな統合 (Zero-ETL) 機能を提供します。この機能により、オンライン・トランザクション処理 (OLTP) システムとオンライン分析処理 (OLAP) データウェアハウスとの間に、データ同期パイプラインを迅速に構築できます。OLTP システムからのデータは自動的に抽出、変換され、OLAP データウェアハウスにロードされます。これにより、データ同期と管理のためのワンストップソリューションが提供されます。トランザクション処理とデータ分析を統合し、お客様がデータ分析業務に集中できるようにします。
メリット
使いやすさ:ETL 操作のために複雑なデータパイプラインを作成・維持する必要はありません。ソースデータと宛先インスタンスを選択するだけで、リアルタイムのデータ同期パイプラインを自動的に作成できます。これにより、データパイプラインの構築と管理の課題が軽減され、上流のアプリケーション開発に集中できます。
ゼロコスト:Zero-ETL パイプラインは無料です。追加費用なしで AnalyticDB for MySQL の上流データを分析できます。
マルチソース集約:Zero-ETL パイプラインを使用して、複数のインスタンスから単一の AnalyticDB for MySQL クラスターにリアルタイムでデータを同期できます。これにより、分析のためのグローバルな視点が得られます。
サポートされる同期パイプライン
RDS for MySQL から AnalyticDB for MySQL へのパイプライン。
PolarDB for MySQL から AnalyticDB for MySQL へのパイプライン。詳細については、「シームレスな統合 (Zero-ETL) を使用したデータ同期」をご参照ください。
前提条件
AnalyticDB for MySQL クラスターと RDS for MySQL インスタンスが同じリージョンにあること。
AnalyticDB for MySQL クラスターと RDS for MySQL インスタンス用にデータベースアカウントが作成されていること。
課金
データ同期パイプラインは無料です。
注意事項
シームレスな統合 (Zero-ETL) 機能は、中国 (北京)、中国 (杭州)、中国 (上海)、中国 (深セン)、中国 (張家口)、中国 (青島)、中国 (広州)、香港 (中国)、シンガポール、米国 (シリコンバレー)、米国 (バージニア) のリージョンでのみ利用可能です。
AnalyticDB for MySQL クラスターの Zero-ETL パイプライン数が上限を超えた場合、新しいパイプラインは作成できません。DTS を使用して新しい同期パイプラインを作成するか、未使用の Zero-ETL パイプラインを削除して容量を解放できます。Zero-ETL パイプライン数の上限は次のとおりです:
クラスターに予約されている AnalyticDB コンピュートユニット (ACU) の合計数が 24 ACU 未満の場合、1 つの Zero-ETL パイプラインを作成できます。
クラスターに予約されている ACU の合計数が 24 ACU 以上の場合、
3 + 3 * [(合計 ACU - 24) / 50]個の Zero-ETL パイプラインを作成できます。[(合計 ACU - 24) / 50]の結果は、小数点以下が切り捨てられます。たとえば、クラスターの合計 ACU が 48 の場合、計算結果は 0.48 となります。この値は 0 に切り捨てられるため、3 つの Zero-ETL パイプラインを作成できます。
説明Data Lakehouse Edition クラスターの場合、予約されている ACU の合計数は、予約済みのコンピューティングリソースと予約済みのストレージリソースの ACU の合計です。
Data Warehouse Edition クラスターの場合、1 コアは 1 ACU に相当します。エラスティックモードでは、予約されている ACU の合計数は、コンピューティングリソースのコア数とエラスティック I/O ユニットの合計です。予約モードでは、予約されている ACU の合計数は、コンピューティングリソースのコア数です。
事前準備
AnalyticDB for MySQL のサービスリンクロールの作成
Resource Access Management (RAM) コンソールの [ロール] リストに移動します。
ロールリストに AliyunServiceRoleForAnalyticDBForMySQL という名前のサービスリンクロールが存在するかどうかを確認します。存在しない場合は、ロールを作成します。
左側のナビゲーションウィンドウで、[ロールの作成] をクリックします。
[ロールの作成] ダイアログボックスで、[Alibaba Cloud サービス] を選択し、[次へ] をクリックします。
[ロールタイプ] を [サービスリンクロール] に設定し、AnalyticDB for MySQL を選択します。
[OK] をクリックします。ロールリストに戻り、サービスリンクロールが作成されたことを確認します。
RAM ユーザーへの管理権限の付与
Resource Access Management (RAM) ユーザーが Zero-ETL パイプラインを作成および管理するには、次の 2 つの権限が必要です。
AnalyticDB for MySQL の管理権限を RAM ユーザーに付与する
RAM ユーザーが AnalyticDB for MySQL の Zero-ETL パイプラインを作成および管理するには、AnalyticDB for MySQL の AliyunADBFullAccess 管理権限が必要です。詳細については、「RAM ユーザー権限の管理」をご参照ください。
Zero-ETL の管理権限を RAM ユーザーに付与する
Zero-ETL パイプラインを作成および管理するには、RAM ユーザーはデータソースインスタンスと宛先インスタンス (AnalyticDB for MySQL) の両方に対する権限が必要です。カスタムポリシーを作成して、データソースと AnalyticDB for MySQL のすべてまたは指定されたインスタンスのパイプライン作成を許可できます。その後、カスタムポリシーを RAM ユーザーにアタッチします。
カスタムポリシーのスクリプトは次のとおりです:
すべての 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"
],
"Resource": [
"acs:dts:*:*:*"
]
}
]
}指定された RDS for MySQL インスタンスと AnalyticDB for MySQL クラスターに対する権限の付与
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "dts:*",
"Resource": [
"acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
"acs:rds:*:*:dbinstance/rm-2ze6fs8ouh43****",
]
},
{
"Effect": "Allow",
"Action": [
"dts:DescribeRegions",
"dts:DescribeConfigRelations",
"dts:DescribeSrcLinkConfig",
"dts:DescribeDestLinkConfig",
"dts:DescribeLinkConfig"
],
"Resource": "acs:dts:*:*:*"
}
]
}操作手順
AnalyticDB for MySQL コンソールにログインします。コンソールの左上でリージョンを選択します。左側のナビゲーションウィンドウで クラスターリスト をクリックします。管理したいクラスターを見つけ、クラスター ID をクリックします。
シームレスな統合 (Zero-ETL) ページに移動します。ナビゲーションパスは製品エディションによって異なります。
Enterprise Edition、Basic Edition、または Data Lakehouse Edition クラスターの場合:左側のナビゲーションウィンドウで、 を選択します。
Data Warehouse Edition クラスターの場合:左側のナビゲーションウィンドウで、 を選択します。
Zero-ETL タスクの作成 をクリックします。Zero-ETL タスクの作成 ページで、ソースデータベースとターゲットデータベースの情報を設定します。
ソースデータベース情報を設定します:
ソースデータベース情報
説明
タスク名
Zero-ETL タスクの名前。
データベースタイプ
RDS for MySQL を選択します。
アクセス方法
Alibaba Cloud インスタンス のみがサポートされています。
インスタンスのリージョン
RDS for MySQL インスタンスが存在するリージョン。
RDS インスタンス ID
RDS for MySQL インスタンスの ID。
データベースアカウント
RDS for MySQL インスタンスのデータベースアカウント。
データベースのパスワード
RDS for MySQL インスタンスのデータベースアカウントのパスワード。
暗号化
RDS for MySQL インスタンスへの接続方法。オプションには、[暗号化されていない接続] と [SSL セキュア接続] があります。
説明このパラメーターを SSL 暗号化 に設定する場合は、事前に RDS for MySQL インスタンスの SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効にする」をご参照ください。
ターゲットデータベース情報を設定します:
ターゲットデータベース情報
説明
データベースタイプ
現在、ターゲットデータベースとしてサポートされているのは AnalyticDB for MySQL 3.0 のみです。
アクセス方法
Alibaba Cloud インスタンス のみがサポートされています。
インスタンスのリージョン
AnalyticDB for MySQL クラスターが存在するリージョンです。
インスタンス ID
AnalyticDB for MySQL クラスターの ID です。
データベースアカウント
AnalyticDB for MySQL クラスターのデータベースアカウントです。
データベースのパスワード
AnalyticDB for MySQL クラスターのデータベースアカウントのパスワードです。
上記のパラメーターを設定した後、接続をテストして続行 をクリックします。Zero-ETL 設定ページで、次のパラメーターを設定します:
設定項目
説明
同期する DDL および DML 操作
同期する DML および DDL 操作を選択します。デフォルトでは、すべての操作が選択されています。
ソースオブジェクトと選択中のオブジェクト
データベース内のソースオブジェクトと同期するオブジェクト。
詳細設定 (オプション)
ソースまたはターゲットデータベースに接続できない場合や、ソースまたはターゲットデータベースで他の問題が発生した場合のリトライ時間を設定します。
上記のパラメーターを設定した後、次:データベースおよびテーブルのフィールド設定 をクリックし、次の情報を設定します:
データベース、テーブル、フィールドの設定
説明
データベース名
既存のデータベースを選択します。
テーブル名
既存のデータテーブルを選択します。
プライマリキー列の追加
選択したデータテーブルでプライマリキーとして機能するフィールド。
配布キー
選択したデータテーブルで分散キーとして機能するフィールド。
タイプ
データテーブルのタイプ。オプションには、[パーティションテーブル] と [レプリケートテーブル] があります。
[定義ステータス]
データベース、テーブル、フィールドの設定が定義されると、ステータスが [未定義] から [定義済み] に変わります。
上記のすべてのパラメーターを設定した後、次:タスク設定の保存と事前チェック をクリックします。
事前チェックに合格した後、開始 をクリックして Zero-ETL タスクを開始します。
[シームレスなデータ統合] ページで、Zero-ETL タスクの ID/名前、移行元/移行先、ステータス などの情報を表示できます。
Zero-ETL タスクの監視とアラート設定
Zero-ETL タスクを作成して開始した後、Cloud Monitor コンソールでタスクのアラートルールを設定して、その実行ステータスをリアルタイムで監視できます。手順は次のとおりです。
Cloud Monitor コンソールにログインします。
監視情報を表示します。
左側のナビゲーションウィンドウで、 を選択します。
[AnalyticDB for MySQL] カードにカーソルを合わせ、AnalyticDB for mysql 3.0 - ZeroETL Latency をクリックします。
クラスター ID をクリックして、そのクラスター内の Zero-ETL タスクの監視情報を表示します。
アラートルールを作成します。
左側のナビゲーションウィンドウで、 をクリックします。
[アラートルールの作成] をクリックします。[アラートルールの作成] パネルで、Zero-ETL タスクのアラートルールを設定します。詳細については、「アラートルールの作成」をご参照ください。
説明[製品] を [AnalyticDB For MySQL 3.0 - ZeroETL Latency] に設定します。
サブスクリプションポリシーを作成します。
左側のナビゲーションウィンドウで、 をクリックします。
[サブスクリプションポリシーの作成] をクリックします。[サブスクリプションポリシーの作成] ページで、Zero-ETL タスクのサブスクリプションポリシーを設定します。詳細については、「イベントサブスクリプションの作成」をご参照ください。
説明製品: [AnalyticDB For MySQL 3.0] を選択します。
[イベントタイプ]:[異常] または [復元] を選択します。
イベント名: [ZeroETL タスク異常] または [ZeroETL タスク回復] を選択します。