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

Lindorm:ApsaraDB RDS からのフルデータと増分データのインポート

最終更新日:Jan 14, 2025

このトピックでは、ApsaraDB RDS インスタンスからフルデータと増分データをインポートする方法について説明します。

注意事項

2023年3月10日以降、LTS を使用して ApsaraDB RDS からフルデータを同期することはできなくなりました。LTS インスタンスが 2023年3月10日以降に購入された場合、そのインスタンスを使用して ApsaraDB RDS からフルデータを同期することはできません。LTS インスタンスが 2023年3月10日以前に購入された場合は、引き続き LTS インスタンスを使用して ApsaraDB RDS からフルデータを同期できます。

シナリオ

  • ストレージコストを削減するために、ApsaraDB RDS インスタンスから Lindorm に履歴データをインポートする場合。

  • ApsaraDB RDS インスタンスから Lindorm にフルデータをインポートする場合。

前提条件

  • LTS インスタンスは 2023年3月10日以前に購入されています。

  • LTS インスタンスの Web UI にログオンしています。詳細については、「同期タスクの作成」をご参照ください。

  • LTS、宛先 ApsaraDB for HBase クラスタ、およびソース ApsaraDB RDS インスタンスは、同じ仮想プライベートクラウド(VPC)に接続またはデプロイされています。

機能

  • フルデータと増分データの移行機能がサポートされています。ApsaraDB RDS インスタンスのフルデータと増分データは、HBase と互換性のある LindormTable インスタンスにインポートできます。

  • データ変更機能がサポートされています。ソーステーブルから宛先テーブルにデータを移行する際に、データを変更できます。詳細については、このトピックのサンプル設定セクションをご参照ください。

  • 複数のテーブルのデータを一度にインポートできます。

制限

  • フルデータインポートのデータソースは、MySQL データベースである必要があります。

  • 増分データインポートのデータソースは、データ伝送サービス(DTS)タスクである必要があります。

  • 宛先データソースは、SQL エンドポイントまたは HBase 互換エンドポイントで構成された LindormTable ノードにすることができます。

手順

  1. LTS インスタンスの Web UI で、[データインポート] > RDS移行 を選択します。

  2. [作成] をクリックします。

  3. RDS データソース、DTS データソース、および宛先データソースを選択します。

    説明

    Create a task

  4. [編集] をクリックしてデフォルト設定を表示します。設定を変更することもできます。詳細については、このトピックのサンプル設定セクションをご参照ください。

  5. データをインポートするテーブルを選択します。次に、[設定の生成] をクリックします。

    説明
    • LTS が指定された ApsaraDB RDS データベーステーブルから LindormTable にフルデータと増分データをインポートする場合、増分データの前に履歴データがインポートされます。

    • LTS が Cassandra クエリ言語(CQL)と互換性のある LindormTable ノードにデータを移行する場合、システムはデフォルトで、ソース ApsaraDB RDS テーブルの列の名前とデータ型と同じ名前とデータ型を持つ列を生成します。ビジネス要件に基づいて、宛先テーブルの列の名前、およびソーステーブルの列と宛先テーブルの列間のマッピング関係を指定できます。詳細については、このトピックのサンプル設定セクションをご参照ください。

    • 宛先インスタンスにデータが移行された後、システムは自動的に f という名前の列ファミリを生成します。指定された ApsaraDB RDS テーブルの各列は、f 列ファミリの 1 つの列に関連付けられます。行キーは、ソース ApsaraDB RDS テーブルの主キー列を連結した文字列です。

    • デフォルト設定を使用する場合、インポートジョブの完了後にソース ApsaraDB RDS データベーステーブルから削除されたデータは、宛先テーブルから削除されません。ソーステーブルから削除されたデータをシステムが削除するようにするには、設定を変更します。詳細については、このトピックのサンプル設定セクションをご参照ください。

  6. [作成] をクリックします。

サンプル設定

次のコードは、Lindorm SQL を使用してテーブルにデータをインポートするためのサンプル設定を示しています。詳細については、「Jtwig リファレンスマニュアル」をご参照ください。

{
    "reader": {
        "querySql": [
            "select * from dts.cluster where id < 1000",// フルデータを同期するために実行されるクエリステートメント。1 つのステートメントは、1 つの読み取りスレッドを使用して実行されます。
      "select * from dts.cluster where id >= 1000"// クエリの速度を向上させ、再試行のコストを削減するために、クエリを分割することをお勧めします。
        ]
    },
    "writer": {
        "columns": [
            {
                "name": "f:id",// 宛先テーブルの列の名前。
                "value": "id", // ソーステーブルの列の名前。
                "isPk": true , // 列が主キー列かどうかを指定します。
                "type": "BIGINT" // 宛先テーブルの列のデータ型。このパラメータはオプションです。このパラメータを指定しない場合、宛先テーブルの列のデータ型はソーステーブルの列のデータ型と同じになります。
            },
      {
                "name": "cluster_id",
                "value": "cluster_id",
                "isPk": false
            },
      {
                "name": "id_and_cluster",
                "value": "{{concat(id, cluster_id)}}",// Jtwig ドメイン名を使用してデータを変更できます。
                "isPk": true
            },
        ],
        "config": {
            "skipDelete": true // 削除操作をスキップすることを指定します。
        },
     "table": {
         "name": "dts:cluster",// 宛先 Lindorm クラスタのテーブルの名前。テーブル名はピリオド(.)で区切ります。
         "parameter": {
             "compression": "ZSTD"
        }
    },
    "sourceTable": "dts.cluster" 
    }
}

次のコードは、ApsaraDB for HBase API を使用してテーブルにデータをインポートするためのサンプル設定を示しています。

{
    "reader": {
        "querySql": [
            "select * from dts.cluster where id < 1000",// フルデータを同期するために実行されるクエリステートメント。1 つのステートメントは、1 つの読み取りスレッドを使用して実行されます。
      "select * from dts.cluster where id >= 1000"// クエリの速度を向上させ、再試行のコストを削減するために、クエリを分割することをお勧めします。
        ]
    },
    "writer": {
        "columns": [
            {
                "name": "f:id",// 宛先テーブルの列の名前。
                "value": "id", // ソーステーブルの列の名前。
        "isPk": false // このパラメータはオプションです。このパラメータはインポートプロセスに影響しません。
            },
            {
                "name": "f:cluster_id",
                "value": "cluster_id",
                "isPk": false
            },
      {
        "name": "f:id_and_cluster",
                "value": "{{concat(id, cluster_id)}}",// Jtwig ドメイン名を使用してデータを変更できます。
       }
        ],
        "rowkey": {
            "value": "id" // 宛先テーブルの行キー。行キーは、ソース ApsaraDB RDS データベーステーブルの主キー列で構成されます。このパラメータの値は、Jtwig 構文に基づいて指定できます。
        },
        "config": {
            "skipDelete": true // 削除操作をスキップすることを指定します。
        },
        "table": {
            "name": "dts:cluster",// 宛先クラスタのテーブルの名前。
            "parameter": {
                "compression": "ZSTD",// 宛先テーブルに使用される圧縮アルゴリズム。宛先テーブルの圧縮アルゴリズムとして Zstandard(zstd)を使用することをお勧めします。
        "split":["1", "5", "9", "b"] // 分割キーを指定して、宛先テーブルを事前にパーティション分割します。
            }
        },
        "sourceTable": "dts.cluster"
    }
}