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

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

最終更新日:Sep 10, 2024

AnalyticDB for MySQLは、PolarDB for MySQLから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クラスターにデータをリアルタイムで同期してグローバル分析を行うことができます。

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

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

  • PolarDB for MySQLから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未満の場合、最大1つのゼロETLタスクを作成できます。

    • 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の総数は、コンピューティングリソースコアの数です。

準備

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ユーザーにゼロETL機能を管理する権限を付与する

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

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

すべてのPolarDB for MySQLクラスターおよびAnalyticDB for MySQLクラスターに対する権限の付与

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

特定のPolarDB for MySQLクラスターおよび特定のAnalyticDB for MySQLクラスターに対する権限の付与

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
                "acs:polardb:*:*:dbcluster/pc-bp13jqn4a26b0****"
            ]
        },
        {
            "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タスクの名前。

      データベースタイプ

      ソースデータベースのデータベースエンジン。 [PolarDB for MySQL] を選択します。

      アクセス方法

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

      インスタンスリージョン

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

      PolarDBクラスターID

      PolarDB for MySQLクラスターのID。

      データベースアカウント

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

      データベースパスワード

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

      暗号化

      PolarDB for MySQLクラスターへの接続に使用される暗号化方法。 有効な値: 非暗号化およびSSL暗号化。

      説明

      SSL暗号化を選択した場合、まずPolarDB 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クラスターのデータベースアカウントのパスワード。

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

    パラメーター

    説明

    同期タイプ

    ソースデータベースとターゲットデータベース間のデータ同期のタイプ。

    有効な値: スキーマ同期、フルデータ同期、および増分データ同期。

    説明

    同期タスクの場合、増分データ同期は自動的に選択され、クリアできません。 ソースデータベースの増分データは、リアルタイムでターゲットデータベースに同期されます。

    増分データを同期しない場合は、データ移行機能を使用します。

    同期するDDLおよびDML操作

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

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

    ソースデータベース内のオブジェクトと同期するオブジェクト。

    詳細設定 (オプション)

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

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

    パラメーター

    説明

    データベース名

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

    テーブル名

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

    主キー列

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

    配布キー

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

    タイプ

    テーブルの型。パーティション化されたテーブルまたはレプリケートされたテーブルにすることができます。

    定义ステータス

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

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

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

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