すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:zero-ETLを使用したデータの同期

最終更新日:Dec 05, 2024

AnalyticDB for MySQLは、LindormからAnalyticDB for MySQLへのデータ同期タスクを作成できるゼロETL機能を提供します。 これにより、データをエンドツーエンドで同期および管理し、トランザクション処理とデータ分析を統合できます。

概要

ビッグデータの時代では、企業は抽出、変換、負荷 (ETL) ツールを使用して、さまざまなシステムやプラットフォームに分散された大量のビジネスデータを効率的に管理および使用する必要があります。

ETLツールは、上位レベルのビジネスシステムからデータを抽出し、データを変換した後、データをデータウェアハウスにロードします。 このプロセスは、さらなるコンピューティング、分析、およびビジネス意思決定のために、分散データをデータウェアハウスに組み込む。

従来のETLプロセスには、次の課題があります。

  • リソースコストの増加: データソースごとに異なるETLツールが必要になる場合があり、ETLタスクの作成に追加料金が発生します。

  • システムの複雑さの増加: ETLツールのメンテナンスは、O&Mの難易度を高め、ビジネスアプリケーションの開発に集中できなくなります。

  • データの適時性の低下: 特定のETLプロセスには定期的なバッチ更新が含まれます。 ほぼリアルタイムのシナリオでは、分析結果を迅速に生成することはできません。

上記の問題を解決するために、Alibaba Cloud ApsaraDBは、オンライントランザクション処理 (OLTP) システムとオンライン分析処理 (OLAP) システム間でデータ同期タスクを作成できるゼロETL機能を提供しています。 ゼロETL機能は、OLTPシステムからデータを抽出し、データを変換し、データをOLAPシステムにロードして、エンドツーエンドでデータを同期および管理し、トランザクション処理とデータ分析を統合し、データ分析に集中するのに役立ちます。

メリット

  • 使いやすさ: ETL操作を実行するために、複雑なデータパイプラインを作成または維持する必要はありません。 リアルタイムのデータ同期タスクを作成するには、ソースとターゲットのインスタンスまたはクラスターのみを選択する必要があります。 これにより、データパイプラインの構築と管理の課題が軽減され、アプリケーション開発に集中できるようになります。

  • ゼロコスト: ゼロETLタスクの追加料金は発生しません。 ゼロETL機能を使用すると、AnalyticDB for MySQLに同期されたデータを無料で分析できます。

  • マルチソース集約: ゼロETL機能を使用すると、複数のソースインスタンスまたはクラスターからAnalyticDB for MySQLクラスターにリアルタイムでデータを同期してグローバル分析を行うことができます。

サポートされているデータ同期タスク

  • LindormからAnalyticDB for MySQLへのデータ同期タスク。

  • ApsaraDB RDS for MySQLからAnalyticDB for MySQLへのデータ同期タスク。 詳細については、「zero-ETLを使用したデータの同期」をご参照ください。

  • PolarDB for MySQLからAnalyticDB for MySQLへのデータ同期タスク。 詳細については、「zero-ETLを使用したデータの同期」をご参照ください。

前提条件

  • AnalyticDB for MySQLクラスターとLindormインスタンスが同じリージョンに作成されます。 詳細については、「インスタンスの作成」をご参照ください。

    重要

    Lindormインスタンスに対してLindormTableを有効化する必要があります。

  • AnalyticDB for MySQLクラスター用のデータベースアカウントが作成されます。 詳細については、「データベースアカウントの作成」をご参照ください。

課金ルール

データ同期タスクに対しては課金されません。

使用上の注意

  • ゼロETL機能は、中国 (北京) 、中国 (杭州) 、中国 (上海) 、中国 (深セン) の各リージョンでのみサポートされています。

  • AnalyticDB for MySQLクラスター用に作成されたゼロETLタスクの数が上限に達した場合、AnalyticDB for MySQLコンソールでゼロETLタスクを作成することはできません。 DTSコンソールで追加のデータ同期タスクを作成したり、AnalyticDB for MySQLコンソールで不要になったゼロETLタスクを削除したりできます。 AnalyticDB for MySQLコンソールでAnalyticDB for MySQLクラスターに作成できるゼロETLタスクの最大数には、次の制限があります。

    • AnalyticDB for MySQLクラスターの予約リソースの合計量が24未満の場合、zero-ETLタスクを1つだけ作成できます。

    • AnalyticDB for MySQLクラスターの予約リソースの合計量が24 ACU以上の場合、作成できるゼロETLタスクの最大数は、次の式を使用して計算されます。3 + 3 × [(ACUの合計数-24)/50]

      式では、[(ACUの総数-24)/50] の結果を切り捨てなければなりません。 たとえば、クラスター内のACUの総数が48の場合、元の結果0.48を切り捨てた後の [(ACUの総数-24)/50] の結果は0になります。 この場合、最大3つのゼロETLタスクを作成できます。

    説明
    • Data Lakehouse Editionクラスターの予約済みリソースのACUの総数は、予約済みコンピューティングリソースと予約済みストレージリソースのACUの合計です。

    • Data Warehouse Editionクラスターの場合、各ACUは1コアになります。 エラスティックモードのData Warehouse Editionクラスターの予約済みリソースのACUの総数は、コンピューティングリソースコアとエラスティックI/Oリソースコアの合計です。 予約モードのData Warehouse Editionクラスターの予約済みリソースのACUの総数は、コンピューティングリソースコアの数です。

  • zero-ETL機能は、LindormインスタンスのHBaseテーブルのみを同期するために使用できます。 SQLテーブルはサポートされていません。

準備

AnalyticDB for MySQLサービスにリンクされたロールを作成する

  1. Resource Access Management (RAM) コンソールにログインします。 左側のナビゲーションウィンドウで、[アイデンティティ]> [ロール] を選択します。

  2. AliyunServiceRoleForAnalyticDBForMySQLという名前のサービスにリンクされたロールがロールリストに存在するかどうかを確認します。 サービスにリンクされたロールが存在しない場合は、ロールを作成します。

  3. [ロール] ページの左上隅にある [ロールの作成] をクリックします。

  4. [ロールタイプの選択] ステップで、[Alibaba Cloud Service] を選択し、[次へ] をクリックします。

  5. [ロールの設定] ステップで、[ロールタイプ] パラメーターに [サービスにリンクされたロール] を選択し、[サービスの選択] ドロップダウンリストから AnalyticDB for MySQL を選択します。

  6. [OK] をクリックします。 [ロール] ページに戻り、サービスにリンクされたロールが作成されているかどうかを確認します。

RAMユーザーに管理権限を付与

RAMユーザーがゼロETLタスクを作成および管理できるようにするには、次の操作を実行する必要があります。

RAMユーザーにAnalyticDB for MySQLを管理する権限を付与する

RAMユーザーがAnalyticDB for MySQLのゼロETLタスクを作成および管理する前に、AnalyticDB for MySQLAliyunADBFullAccessポリシーをRAMユーザーにアタッチする必要があります。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

RAMユーザーにzero-ETL機能を管理する権限を付与

RAMユーザーがゼロETLタスクを作成および管理する前に、RAMユーザーはデータソースとAnalyticDB for MySQLの間でデータ同期タスクを作成する権限を持っている必要があります。 RAMユーザーがデータソースおよびAnalyticDB for MySQLのすべてのインスタンスまたはクラスターのデータ同期タスクを作成できるようにするカスタムポリシーを設定できます。 RAMユーザーが特定のインスタンスまたはクラスターのデータ同期タスクを作成できるようにするカスタムポリシーを設定することもできます。 次に、カスタムポリシーをRAMユーザーにアタッチできます。 詳細については、「カスタムポリシーの作成」をご参照ください。

次のセクションでは、カスタムポリシーのスクリプトについて説明します。

すべてのLindormインスタンスとAnalyticDB for MySQLクラスターに権限を付与する

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:*",
                "acs:lindorm:*:*:*",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": [
                "acs:dts:*:*:*"
            ]
        }
    ]
}

特定のLindormインスタンスと特定のAnalyticDB for MySQLクラスターに対する権限の付与

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
                "acs:lindorm:*:*:dbinstance/ld-bp19yeo38q4****",
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": "acs:dts:*:*:*"
        }
    ]
}

手順

  1. AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 クラスターリスト ページで、エディションタブをクリックします。 管理するクラスターを確認し、クラスター ID をクリックします。

  2. クラスターエディションに基づいてzero-ETL設定ページに移動します。

    • Data Lakehouse Editionクラスターの場合: 左側のナビゲーションウィンドウで、[データ取り込み] > [データベースデータ同期] を選択します。

    • Data Warehouse Editionクラスターの場合: 左側のナビゲーションウィンドウで、[Data Transmission Service] > [Zero-ETL] を選択します。

  3. [ゼロETLタスクの作成] をクリックします。 [ゼロETLタスクの作成] ページの [ソースデータベースと宛先データベースの設定] で、ソースインスタンスと宛先クラスターのパラメーターを設定します。

    • 次の表に、ソースインスタンスのパラメーターを示します。

      パラメーター

      説明

      タスク名

      ゼロETLタスクの名前。

      データベースタイプ

      ソースインスタンスのデータベースエンジン。 Lindormを選択します。

      アクセス方法

      ソースインスタンスのアクセス方法。 値は自動的にAlibaba Cloudインスタンスに設定されます。

      インスタンスリージョン

      Lindormインスタンスが存在するリージョン。

      インスタンスID

      LindormインスタンスのID。

      データベースアカウント

      LindormTableへの接続に使用されるデータベースアカウントの名前とパスワード。

      パスワードを忘れた場合は、LindormTableのクラスタ管理システムでパスワードを変更できます。 詳細については、「ユーザーの管理」トピックの「ユーザーのパスワードの変更」セクションをご参照ください。

      データベースパスワード

    • 次の表に、移行先クラスターのパラメーターを示します。

      パラメーター

      説明

      データベースエンジン

      ターゲットクラスターのデータベースエンジン。 値は自動的にAnalyticDB for MySQL 3.0に設定されます。

      アクセス方法

      移行先クラスターのアクセス方法。 値は自動的にAlibaba Cloudインスタンスに設定されます。

      インスタンスリージョン

      AnalyticDB for MySQLクラスターが存在するリージョン。

      インスタンス ID

      AnalyticDB for MySQLクラスターのID。

      データベースアカウント

      AnalyticDB for MySQLクラスターのデータベースアカウントの名前。

      データベースパスワード

      AnalyticDB for MySQLクラスターのデータベースアカウントのパスワード。

  4. 上記のパラメーターを設定した後、[Test Connectivity and Proceed] をクリックします。 [ゼロETLの設定] ステップで、次の表に示すパラメーターを設定します。

    パラメーター

    説明

    同期するDDLおよびDML操作

    同期するDML操作 (INSERTUPDATEDELETE) とDDL操作 (CREATEALTERDROPTRUNCATE) 。 デフォルトでは、すべての操作が選択されています。

    ソースオブジェクトと選択オブジェクト

    同期するソースオブジェクトとオブジェクト。

    Lindormインスタンスのデータベースまたはテーブル全体のデータを同期することはできません。 [選択したオブジェクト] セクションで、ソーステーブルの横にある [編集] をクリックし、同期する列を選択します。

    詳細設定 (オプション)

    ソースインスタンスとターゲットインスタンスとクラスター間の接続が失敗した場合のリトライ時間、およびソースインスタンスとターゲットインスタンスとクラスターで発生したその他の問題のリトライ時間。

  5. 上記のパラメーターを設定した後、[次へ: データベースフィールドとテーブルフィールドの設定] をクリックします。 [データベースおよびテーブルフィールドの設定] ステップで、次の表に示すパラメーターを設定します。

    パラメーター

    説明

    データベース名

    選択したデータベースの名前。

    テーブル名

    選択したテーブルの名前。

    主キー列

    選択したテーブルの主キー列。

    配布キー

    選択したテーブルの配布キー列。

    Type

    選択したテーブルのタイプ。パーティションテーブルまたはレプリケートされたテーブルを使用できます。

    定义ステータス

    選択したテーブルのステータス。 テーブルフィールドを設定すると、テーブルのステータスが未定義から定義に変わります。

  6. 上記のパラメーターを設定したら、[次へ: タスク設定の保存と事前チェック] をクリックします。

  7. 事前チェックが成功した場合は、[開始] をクリックしてゼロETLタスクを開始します。

    zero-ETL設定ページで、zero-ETLタスクの [名前][ソース /宛先] 、および [ステータス] パラメーターを表示できます。

ゼロETLタスクのモニタリングとアラート

zero-ETLタスクを作成して開始した後、タスクのアラートルールを設定し、CloudMonitorコンソールでタスクの実行ステータスを監視できます。 以下の手順を実行します。

  1. CloudMonitorコンソールにログインします。

  2. モニタリング情報を表示します。

    1. 左側のナビゲーションウィンドウで、[クラウドサービスモニタリング] > [クラウドサービスモニタリング] を選択します。

    2. ポインタをAnalyticDB for MySQLカードの上に移動し、AnalyticDB for mysql 3.0 - ZeroETLレイテンシをクリックします。

    3. 管理するクラスターを見つけ、クラスターIDをクリックして、ゼロETLタスクに関するモニタリング情報を表示します。

  3. アラートルールを作成します。

    1. 左側のナビゲーションウィンドウで、[アラーム] > [アラームルール] を選択します。

    2. [アラートルールの作成] をクリックします。 [アラートルールの作成] パネルで、ゼロETLタスクのアラートルールパラメーターを設定します。 詳細については、「アラートルールの作成」をご参照ください。

      説明

      Productパラメーターには、AnalyticDB for mysql 3.0 - ZeroETLレイテンシーを選択する必要があります。

  4. サブスクリプションポリシーを作成します。

    1. 左側のナビゲーションウィンドウで、[イベントセンター] > [イベントサブスクリプション] を選択します。

    2. [サブスクリプションポリシーの作成] をクリックします。 [サブスクリプションポリシーの作成] ページで、zero-ETLタスクのサブスクリプションポリシーパラメーターを設定します。 詳細については、「イベント購読ポリシーの管理 (推奨) 」トピックの「購読ポリシーの作成」セクションをご参照ください。

      説明
      • プロダクト: [AnalyticDB for MySQL V3.0] を選択します。

      • イベントタイプ: [異常] または [復元] を選択します。

      • イベント名: zero_etl_job_abnormalまたはzero_etl_job_restoreを選択します。