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

Tablestore:Data Integration

最終更新日:Mar 10, 2025

ビジネスで、高い同時読み書きパフォーマンス、高スケーラビリティ、高可用性、複雑な取得、ビッグデータ分析などのデータベース機能が必要な場合に、既存のデータベースのアーキテクチャがビジネス要件を満たせない、またはデータベース変換のコストが高い場合は、DataWorks Data Integration を使用して既存のデータベースから Tablestore テーブルにデータを移行できます。 また、DataWorks Data Integration を使用して、インスタンスまたは Alibaba Cloud アカウント間で Tablestore テーブルのデータを移行したり、Tablestore データを Object Storage Service (OSS) または MaxCompute に移行したりすることもできます。 この方法で、Tablestore データをバックアップし、他のサービスで Tablestore データを使用できます。

シナリオ

DataWorks Data Integration は、安定性、効率性、スケーラビリティに優れたデータ同期プラットフォームです。 MySQL、Oracle、MaxCompute、Tablestore など、複数の異種データソース間のデータ移行と同期に適しています。

Tablestore では、DataWorks Data Integration を使用してデータベースデータを Tablestore に移行したり、インスタンスまたは Alibaba Cloud アカウント間で Tablestore データを移行したり、Tablestore データを OSS または MaxCompute に移行したりできます。

データベースデータを Tablestore に移行する

DataWorks は、異種データソース間で安定して効率的なデータ同期機能を提供します。 さまざまなデータベースから Tablestore にデータを移行できます。

説明

DataWorks でサポートされているデータソース、Reader プラグイン、Writer プラグインについては、「サポートされているデータソースの種類と同期操作」をご参照ください。

インスタンスまたは Alibaba Cloud アカウント間で Tablestore データを移行または同期する

DataWorks で Tablestore 関連の Reader プラグインと Writer プラグインを構成して、Tablestore データテーブルまたは時系列テーブルのデータを同期できます。 次の表に、Tablestore 関連の Reader プラグインと Writer プラグインを示します。

プラグイン

説明

OTSReader

このプラグインは、Tablestore テーブルからデータを読み取るために使用されます。 増分抽出を実行するために抽出するデータの範囲を指定できます。

OTSStreamReader

このプラグインは、Tablestore テーブルのデータを増分モードでエクスポートするために使用されます。

OTSWriter

このプラグインは、Tablestore にデータを書き込むために使用されます。

Tablestore データを OSS または MaxCompute に移行する

ビジネスシナリオに基づいて、Tablestore データを OSS または MaxCompute に移行できます。

  • MaxCompute は、テラバイトまたはペタバイトのデータを高速で処理できるフルマネージドのデータウェアハウスサービスです。 MaxCompute を使用して Tablestore データをバックアップしたり、Tablestore データを MaxCompute に移行して MaxCompute で Tablestore データを使用したりできます。

  • OSS は、大量のデータを保存できる安全で費用対効果が高く、信頼性の高いサービスです。 OSS を使用して Tablestore データをバックアップしたり、Tablestore データを OSS に同期したり、OSS からローカルデバイスにオブジェクトをダウンロードしたりできます。

移行ソリューション

DataWorks Data Integration を使用して、Tablestore とさまざまなデータソース間でデータを移行できます。

  • データインポートソリューションを使用して、MySQL、Oracle、Kafka、HBase、MaxCompute などの以下のタイプのデータを Tablestore に同期できます。 また、Tablestore データテーブルまたは時系列テーブル間でデータを同期することもできます。

  • データエクスポートソリューションを使用して、Tablestore から MaxCompute または OSS にデータを同期できます。

データをインポートする

次の表に、データインポートソリューションを示します。

ソリューション

説明

MySQL データを Tablestore に同期する

MySQL データベースのデータを Tablestore データテーブルのみに移行できます。

移行中は、MySQL の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

Oracle データを Tablestore に同期する

Oracle データベースのデータを Tablestore データテーブルのみに移行できます。

移行中は、Oracle の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

Kafka データを Tablestore に同期する

Kafka データを Tablestore データテーブルまたは時系列テーブルに移行できます。

重要
  • DataWorks Data Integration を使用して、Kafka データを Tablestore データテーブルのみに移行できます。 Kafka データを Tablestore 時系列テーブルに移行する場合は、Tablestore Sink Connector を使用します。 詳細については、「時系列テーブルへのデータ同期」をご参照ください。

  • Tablestore は、Wide Column モデルと TimeSeries モデルをサポートしています。 Kafka データを Tablestore に移行する前に、ビジネス要件に基づいて Tablestore モデルを選択してください。 詳細については、「Wide Column モデル」と「TimeSeries モデル」をご参照ください。

移行中は、Kafka の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

HBase データを Tablestore に同期する

HBase データベースのデータを Tablestore データテーブルのみに移行できます。

移行中は、HBase の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

MaxCompute データを Tablestore に同期する

MaxCompute データを Tablestore データテーブルのみに移行できます。

移行中は、MaxCompute の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

PolarDB-X 2.0 データを Tablestore に同期する

PolarDB-X 2.0 から Tablestore データテーブルのみにデータを移行できます。

移行中は、PolarDB-X 2.0 の Reader スクリプト構成と Tablestore の Writer スクリプト構成が使用されます。

Tablestore データテーブル間でデータを同期する

Tablestore データテーブルから別の Tablestore データテーブルのみにデータを移行できます。

移行中は、Tablestore の Reader スクリプト構成と Writer スクリプト構成が使用されます。 ソースとデスティネーションの構成については、「Tablestore データソース」をご参照ください。 Tablestore の Reader スクリプト構成と Writer スクリプト構成を指定する場合は、Wide Column モデルのテーブルでデータを読み書きするために使用される構成を参照してください。

Tablestore 時系列テーブル間でデータを同期する

Tablestore 時系列テーブルから別の Tablestore 時系列テーブルのみにデータを移行できます。

移行中は、Tablestore の Reader スクリプト構成と Writer スクリプト構成が使用されます。 ソースとデスティネーションの構成については、「Tablestore データソース」をご参照ください。 Tablestore の Reader スクリプト構成と Writer スクリプト構成を指定する場合は、TimeSeries モデルのテーブルでデータを読み書きするために使用される構成を参照してください。

データをエクスポートする

次の表に、データエクスポートソリューションを示します。

ソリューション

説明

Tablestore データを MaxCompute に同期する

MaxCompute を使用して Tablestore データをバックアップしたり、Tablestore データを MaxCompute に移行して MaxCompute で Tablestore データを使用したりできます。

移行中は、Tablestore の Reader スクリプト構成と MaxCompute の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

Tablestore データを OSS に同期する

Tablestore から OSS に同期されたオブジェクトをダウンロードし、Tablestore のデータのバックアップとして OSS にオブジェクトを保存できます。

移行中は、Tablestore の Reader スクリプト構成と OSS の Writer スクリプト構成が使用されます。 以下の項目で、ソースとデスティネーションの構成について説明します。

前提条件

移行ソリューションを決定したら、以下の準備が整っていることを確認してください。

  • ソースと DataWorks 間、およびデスティネーションと DataWorks 間のネットワーク接続が確立されている。

  • ソースサービスで以下の操作が実行されている: バージョンの確認、アカウントの準備、必要な権限の構成、サービス固有の構成の実行。 詳細については、ソースのドキュメントの構成要件をご参照ください。

  • デスティネーションサービスがアクティブ化され、必要なリソースが作成されている。 詳細については、デスティネーションのドキュメントの構成要件をご参照ください。

使用上の注意

重要

データの移行時にテクニカルサポートが必要な場合は、チケットを送信

  • DataWorks Data Integration が特定のプロダクトバージョンのデータ移行をサポートしていることを確認してください。

  • デスティネーションのデータ型は、ソースのデータ型と一致する必要があります。 そうしないと、移行中にダーティデータが生成される可能性があります。

  • 移行ソリューションを決定したら、ソースとデスティネーションのドキュメントの制限と使用上の注意を必ず読んでください。

  • Kafka データを移行する前に、ビジネスシナリオに基づいてデータを保存する Tablestore データモデルを選択する必要があります。

構成プロセス

移行ソリューションを決定し、DataWorks Data Integration を使用して移行ソリューションのデータ移行を構成する方法について学習できます。

image

次の表に、構成手順を示します。

番号

手順

説明

1

データソースを追加および管理する

移行ソリューションに基づいて必要なデータソースを作成します。

  • Tablestore にデータを移行する場合、デスティネーションは Tablestore で、ソースは Tablestore または MySQL や MaxCompute などの他のサービスにすることができます。

  • Tablestore からデータを移行する場合、ソースは Tablestore で、デスティネーションは MaxCompute または OSS にすることができます。

2

コードレス UI を使用してバッチ同期タスクを構成する

DataWorks Data Integration は、コードレス UI とステップバイステップの指示を提供して、バッチ同期タスクの構成を支援します。 コードレス UI は使いやすくなっていますが、提供される機能は限られています。

3

移行結果を確認する

移行ソリューションに基づいて、デスティネーションにインポートされたデータを表示します。

  • データインポート操作が完了したら、Tablestore コンソールでインポートされたデータを表示します。

  • データエクスポート操作が完了したら、MaxCompute または OSS コンソールでインポートされたデータを表示します。

データをインポートする

DataWorks Data Integration を使用すると、MySQL、Oracle、MaxCompute などのソースから Tablestore データテーブルにデータをインポートできます。 この例では、MaxCompute から Tablestore データテーブルにデータをインポートします。

前提条件

後続の操作を実行する前に、以下の準備が整っていることを確認してください。

  • Tablestore テーブルに同期する MaxCompute テーブルの情報が確認され、記録されている。

  • RAM ユーザーが作成され、Tablestore 管理権限 (AliyunOTSFullAccess) と DataWorks 管理権限 (AliyunDataWorksFullAccess) が付与されている。 詳細については、「RAM ユーザーの作成」と「RAM ユーザーへの権限付与」をご参照ください。

  • RAM ユーザーの AccessKey ペアが作成されている。 詳細については、「AccessKey ペアを作成する」をご参照ください。

  • DataWorks がアクティブ化され、ワークスペースが作成されている。 詳細については、「DataWorks をアクティブ化する」と「ワークスペースを作成する」をご参照ください。

  • Tablestore がアクティブ化されている。 インスタンスとデータテーブルが作成されている。 詳細については、「Tablestore をアクティブ化してインスタンスを作成する」と「Tablestore をアクティブ化する」をご参照ください。

    重要

    Tablestore データテーブルのプライマリキー列の名前と型は、MaxCompute テーブルのプライマリキー列の名前と型と一致する必要があります。 Tablestore データテーブルに属性列を定義する必要はありません。 Tablestore データテーブルにデータを書き込むときに、属性列の名前を指定できます。

手順 1: Tablestore データソースと MaxCompute データソースを追加する

この例では、Tablestore データソースを追加します。 ビジネス要件に基づいて必要なデータソースを追加してください。

重要

MaxCompute データソースを追加する場合は、[maxcompute] [データソースの追加] ダイアログボックスでクリックし、パラメータを構成します。

  1. Data Integration ページに移動します。

    DataWorks コンソール にログインし、左上隅でリージョンを選択し、[データ開発とガバナンス] > [data Integration] を選択し、ドロップダウンリストからワークスペースを選択して、[data Integration に移動] をクリックします。

  2. 左側のナビゲーションウィンドウで、[データソース] をクリックします。

  3. [データソース] ページで、[データソースの追加] をクリックします。

  4. [データソースの追加] ダイアログボックスで、[tablestore] ブロックをクリックします。

  5. [OTS データソースの追加] ダイアログボックスで、次の表に示すパラメータを構成します。

    パラメータ

    説明

    データソース名

    データソースの名前。 名前に使用できるのは、英字、数字、アンダースコア (_) で、最初の文字は英字にする必要があります。

    データソースの説明

    データソースの説明。 説明は 80 文字以内にする必要があります。

    エンドポイント

    Tablestore インスタンスのエンドポイント。 詳細については、「エンドポイント」をご参照ください。

    Tablestore インスタンスとデスティネーションデータソースのリソースが同じリージョンにある場合は、VPC エンドポイントを入力します。 そうでない場合は、パブリックエンドポイントを入力します。

    Table Store インスタンス名

    Tablestore インスタンスの名前。 詳細については、「インスタンス」をご参照ください。

    AccessKey ID

    Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey シークレット。 AccessKey ペアの作成方法については、「AccessKey ペアを作成する」をご参照ください。

    AccessKey Secret

  6. データソースと選択したリソースグループ間のネットワーク接続をテストします。

    同期ノードが想定どおりに実行されるようにするには、データソースと、同期ノードが実行されるすべてのリソースグループタイプ間の接続をテストする必要があります。

    重要

    同期タスクは、1 つのタイプのリソースグループのみを使用できます。 デフォルトでは、Data Integration の共有リソースグループのみがリソースグループリストに表示されます。 データ同期の安定性とパフォーマンスを確保するために、Data Integration 専用リソースグループを使用することをお勧めします。

    1. [購入] をクリックして新しいリソースグループを作成するか、[購入したリソースグループを関連付ける] をクリックして既存のリソースグループを関連付けます。 詳細については、「Data Integration 専用リソースグループを作成および使用する」をご参照ください。

    2. リソースグループが開始されたら、リソースグループの [接続ステータス (本番環境)] 列の [ネットワーク接続のテスト] をクリックします。

      [接続済み] と表示されている場合は、接続テストに合格しています。

  7. データソースがネットワーク接続テストに合格した場合は、[完了] をクリックします。

    新しく作成されたデータソースがデータソースリストに表示されます。

手順 2: コードレス UI を使用してバッチ同期タスクを構成する

  1. 同期タスクノードを追加します。

    1. [datastudio] コンソールに移動します。

      DataWorks コンソール にログインし、左上隅でリージョンを選択し、左側のナビゲーションウィンドウで [データ開発とガバナンス] > [データ開発] を選択し、ドロップダウンリストからワークスペースを選択して、[datastudio に移動] をクリックします。

    2. DataStudio コンソールの [スケジュールされたワークフロー] セクションで、[ビジネスフロー] をクリックしてビジネスフローを選択します。

      ワークフローの作成方法については、「ワークフローを作成する」をご参照ください。

    3. [data Integration] を右クリックし、[ノードの作成] > [オフライン同期] を選択します。

    4. [ノードの作成] ダイアログボックスで、[名前] フィールドに名前を入力し、[確認] をクリックします。

      作成したバッチ同期ノードは、[data Integration] の下にあります。

  2. ネットワークとリソースのリンクを構成します。

    バッチ同期タスクのソースとデスティネーション、およびバッチ同期タスクの実行に使用するリソースグループを選択します。 リソースグループとデータソース間のネットワーク接続を確立し、接続をテストします。

    1. [data Integration] の下で、作成したバッチ同期ノードをダブルクリックします。

    2. [ネットワーク接続とリソースグループの構成] 手順で、[ソース] パラメータを [maxcompute(odps)] に設定し、[データソース名] パラメータを MaxCompute データソースの名前に設定します。

    3. リソースグループを選択します。

      リソースグループを選択すると、リソースグループのリージョンと仕様が表示され、リソースグループと選択したデータソース間の接続が自動的にテストされます。

      重要

      リソースグループが、データソースを追加したときに選択したリソースグループと同じであることを確認してください。

    4. [デスティネーション] パラメータを [tablestore] に設定し、[データソース名] パラメータを Tablestore データソースの名前に設定します。

      リソースグループとデスティネーション間の接続が自動的にテストされます。

    5. 接続テストに合格したら、[次へ] をクリックします。

  3. ソースとデスティネーションを構成します。

    1. [ソースとデスティネーションの構成] セクションで、ソースのパラメータを構成します。 次の表に、パラメータを示します。

      パラメータ

      説明

      トンネルリソースグループ

      MaxCompute のデータ伝送リソース。 デフォルト値は [共通伝送リソース] で、これは MaxCompute の無料クォータです。

      テーブル

      MaxCompute のテーブルの名前。

      パーティション情報

      データを読み取るパーティションの名前。

    2. [ソースとデスティネーションの構成] セクションで、デスティネーションのパラメータを構成します。 次の表に、パラメータを示します。

      パラメータ

      説明

      テーブル

      Tablestore データテーブルの名前。

      primaryKeyInfo

      Tablestore データテーブルに関するプライマリキー情報。 このパラメータの値は JSON 配列です。 データテーブルのプライマリキーは、1 ~ 4 つのプライマリキー列で構成されます。 プライマリキー列の実際の数に基づいてプライマリキー情報を指定します。

      重要

      指定するプライマリキー列の数、順序、型は、データテーブルのプライマリキー列の数、順序、型と同じである必要があります。

      例:

      [
       {
       "name": "pk",
       "type": "string"
       }
      ]

      WriteMode

      Tablestore にデータを書き込むモード。 有効値:

      • PutRow: 指定した行にデータを挿入します。 このモードは、Tablestore PutRow API 操作に対応しています。 指定した行が存在しない場合は、新しい行が追加されます。 指定した行が存在する場合は、その行が上書きされます。

      • UpdateRow: 指定した行のデータを更新します。 このモードは、Tablestore UpdateRow API 操作に対応しています。 指定した行が存在しない場合は、新しい行が追加されます。 指定した行が存在する場合は、リクエストの内容に基づいて、行内の指定した列の値が追加、変更、または削除されます。

  4. フィールドマッピングを構成します。

    ソースとデスティネーションを構成したら、ソースフィールドとデスティネーションフィールド間のマッピングを構成する必要があります。 マッピングを構成すると、バッチ同期タスクは、マッピングに基づいてソースフィールドの値を特定のデータ型のデスティネーションフィールドに書き込みます。 デフォルトでは、ソースの行のフィールドは、デスティネーションの同じ行のフィールドにマップされます。

    重要
    • マッピング順序を変更する場合は、image.pngターゲット フィールド[ソースフィールド] に対応する {"name":"年齢","type":"整数"} の横にある アイコンをクリックします。 ソースフィールドを表すソースフィールドの名前を指定できます。 デスティネーションフィールドを指定するには、JSON 形式を使用する必要があります。 例: 。 各行はフィールドを表します。

    • Tablestore データテーブルの属性列のデータ型は、MaxCompute に書き込むフィールドのデータ型と一致する必要があります。 Tablestore データテーブルの属性列の名前は、MaxCompute に書き込むフィールドの名前と異なっていても構いません。

    デフォルトでは、デスティネーションのプライマリキー情報は、デスティネーションのパラメータを構成するときに指定されます。 この場合、デスティネーションフィールドのプライマリキー情報を手動で削除する必要があります。 そうしないと、バッチ同期タスクは失敗します。

    1. image.png アイコンの横にある [ターゲット フィールド] をクリックします。

    2. [テーブルフィールドの手動編集] ダイアログボックスで、デスティネーションフィールドのプライマリキー情報を削除し、ビジネス要件に基づいて属性列情報を追加または変更します。

    3. [確認] をクリックします。

  5. チャネル制御ポリシーを構成します。

    [チャンネル コントロール] セクションで、同期レートやダーティ データ レコードのポリシーなどのタスク実行のためのパラメーターを構成します。詳細については、「手順 5: チャンネル コントロール ポリシーを構成する」をご参照ください。

  6. image.png アイコンをクリックして構成を保存します。

    説明

    構成を保存しないと、後続の操作を実行するときに構成を保存するように求めるメッセージが表示されます。 この場合は、メッセージの [確認] をクリックして構成を保存します。

  7. 同期タスクを実行します。

    重要

    ほとんどの場合、完全データを同期する必要があるのは 1 回だけです。 スケジュールプロパティを構成する必要はありません。

    1. 1680170333627-a1e19a43-4e2a-4340-9564-f53f2fa6806e アイコンをクリックします。

    2. [パラメータ] ダイアログボックスで、ドロップダウンリストからリソースグループの名前を選択します。

    3. [実行] をクリックします。

      同期タスクが完了したら、[ランタイムログ] タブの実行ログの URL をクリックして、実行ログの詳細ページに移動します。 実行ログの詳細ページで、Current task status の値を確認します。

      Current task status の値が FINISH の場合、タスクは完了です。

手順 3: Tablestore にインポートされたデータを表示する

Tablestore コンソールにログインして、データ同期の結果を表示します。

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

  2. [概要] ページの上部で、リージョンを選択します。

  3. データの同期先である Tablestore インスタンスの名前をクリックします。

  4. [インスタンスの詳細] タブの [テーブル] タブで、データテーブルの名前をクリックします。

  5. [データのクエリ] タブで、データテーブルに同期されたデータを表示します。

データをエクスポートする

DataWorks Data Integration を使用して、Tablestore データを MaxCompute または OSS にエクスポートできます。

課金

  • Tablestore にデータをインポートすると、保存されたデータ量に基づいて Tablestore のストレージ使用量に対して課金されます。

  • 移行ツールを使用して Tablestore にアクセスすると、読み書きリクエストに基づいて、読み書きスループットに対して Tablestore によって課金されます。 従量制読み書き CU と予約済み読み書き CU は別々に課金されます。 アクセスするインスタンスのタイプによって、従量制読み書き CU または予約済み読み書き CU のどちらが消費されるかが決まります。

    説明

    インスタンスタイプと CU の詳細については、「インスタンス」と「読み書きスループット」をご参照ください。

  • DataWorks ツールを使用すると、特定の機能とリソースに対して課金されます。 詳細については、「購入ガイド」をご参照ください。

その他のソリューション

ビジネス要件に基づいて、Tablestore データをローカルファイルにダウンロードできます。 詳細については、「Tablestore のデータをローカルファイルにダウンロードする」をご参照ください。

Tunnel Service などの他の移行ツールを使用してデータをインポートすることもできます。

移行ツール

説明

移行ソリューション

DataX

DataX は、異なるデータソース間の同期を、ソースからデータを読み取る Reader プラグインと、デスティネーションにデータを書き込む Writer プラグインに抽象化します。

Tablestore 内のテーブルから別のテーブルにデータを同期する

Tunnel Service

Tunnel Service は、Tablestore API に基づいて完全データと増分データを使用するために使用される統合サービスです。 このツールは、移行または同期のソースが Tablestore であるシナリオに適しています。

Tunnel Service は、完全モード、増分モード、差分モードでデータをエクスポートおよび使用するトンネルを提供します。 トンネルを作成したら、特定のテーブルからエクスポートされた履歴データと増分データを使用できます。

Tablestore 内のテーブルから別のテーブルにデータを同期する

付録: フィールドタイプのマッピング

このセクションでは、一般的なサービスと Tablestore 間のフィールドタイプのマッピングについて説明します。 実際のシナリオでは、フィールドタイプのマッピングに基づいてフィールドマッピングを構成します。

MaxCompute と Tablestore 間のフィールドタイプのマッピング

MaxCompute のフィールドタイプ

Tablestore のフィールドタイプ

STRING

STRING

BIGINT

INTEGER

DOUBLE

DOUBLE

BOOLEAN

BOOLEAN

BINARY

BINARY

MySQL と Tablestore 間のフィールドタイプのマッピング

MySQL のフィールドタイプ

Tablestore のフィールドタイプ

STRING

STRING

INT または INTEGER

INTEGER

DOUBLE、FLOAT、または DECIMAL

DOUBLE

BOOL または BOOLEAN

BOOLEAN

BINARY

BINARY

Kafka と Tablestore 間のフィールドタイプのマッピング

Kafka スキーマタイプ

Tablestore のフィールドタイプ

STRING

STRING

INT8、INT16、INT32、または INT64

INTEGER

FLOAT32 または FLOAT64

DOUBLE

BOOLEAN

BOOLEAN

BYTES

BINARY