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

Tablestore:Data Integration

最終更新日:Dec 28, 2024

ビジネスで高並列の読み書きパフォーマンス、高スケーラビリティ、高可用性、複雑な検索、ビッグデータ分析などのデータベース機能が必要な場合、既存のデータベースのアーキテクチャがビジネス要件を満たしていない、またはデータベース変換のコストが高い場合は、DataWorks Data Integrationを使用して、既存のデータベースからTablestoreテーブルにデータを移行できます。また、DataWorks Data Integrationを使用して、インスタンスまたはAlibaba Cloudアカウント間でTablestoreテーブルのデータを移行したり、Tablestoreデータをオブジェクトストレージサービス(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にデータを移行できます。次の図は、Tablestoreとさまざまなデータソース間の同期を示しています。

説明

DataWorksでサポートされているデータソース、Readerプラグイン、Writerプラグインについては、サポートされているデータソースの種類、Readerプラグイン、Writerプラグインを参照してください。

image.png

インスタンスまたは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に移行したりできます。

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

TablestoreデータをOSSに同期する

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

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

前提条件

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

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

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

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

使用上の注意

重要

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

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

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

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

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

設定プロセス

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

次の表は、設定手順について説明しています。

番号

手順

説明

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データテーブルにデータをインポートします。

前提条件

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

手順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":"age","type":"INTEGER"}アイコンをクリックします。これはに対応します。ソースフィールドを表すソースフィールドの名前を指定できます。デスティネーションフィールドを指定するには、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をクリックして、実行ログの詳細ページに移動します。実行ログの詳細ページで、現在のタスクステータスの値を確認します。

      現在のタスクステータスの値がFINISHの場合は、タスクは完了です。

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

Tablestoreコンソールにログオンしてデータを表示します。

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

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

  3. データが復元されるTablestoreインスタンスの名前をクリックします。

  4. インスタンスの詳細タブのテーブルタブで、復元されたテーブルの名前をクリックします。

  5. データのクエリタブで、Tablestoreにインポートされたデータを表示できます。

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

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の1つのテーブルから別のテーブルにデータを同期する

Tunnel Service

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

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

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

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

このセクションでは、一般的なサービスと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