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

Tablestore:OSS への増分データの同期

最終更新日:Nov 25, 2025

DataWorks でバッチ同期タスクを設定して、Tablestore から OSS に新規および変更されたデータを定期的に同期します。これにより、データのバックアップとその後の処理が可能になります。

準備

説明

DataWorks と Tablestore のインスタンスが異なるリージョンにある場合は、VPC ピアリング接続を作成して、リージョン間のネットワーク接続を確立する必要があります。

リージョン間のネットワーク接続のために VPC ピアリング接続を作成する

次の例は、ソーステーブルインスタンスが中国 (上海) リージョンにあり、DataWorks ワークスペースが中国 (杭州) リージョンにあるユースケースを示しています。

  1. VPC を Tablestore インスタンスにアタッチします。

    1. Tablestore コンソールにログインします。上部のナビゲーションバーで、ターゲットテーブルが配置されているリージョンを選択します。

    2. インスタンスのエイリアスをクリックして、[インスタンス管理] ページに移動します。

    3. [ネットワーク管理] タブで、[VPC のバインド] をクリックします。VPC と vSwitch を選択し、VPC 名を入力してから、[OK] をクリックします。

    4. VPC がアタッチされるのを待ちます。ページが自動的に更新され、VPC リストに [VPC ID][VPC アドレス] が表示されます。

      説明

      DataWorks コンソールで Tablestore データソースを追加するときは、この VPC アドレスを使用する必要があります。

      image

  2. DataWorks ワークスペースリソースグループの VPC 情報を取得します。

    1. DataWorks コンソールにログインします。上部のナビゲーションバーで、ワークスペースが配置されているリージョンを選択します。左側のナビゲーションウィンドウで、[ワークスペース] をクリックして [ワークスペース] ページに移動します。

    2. ワークスペース名をクリックして [ワークスペース詳細] ページに移動します。左側のナビゲーションウィンドウで、[リソースグループ] をクリックして、ワークスペースにアタッチされているリソースグループを表示します。

    3. ターゲットリソースグループの右側にある [ネットワーク設定] をクリックします。[データスケジューリング & データ統合] セクションで、アタッチされている VPC の VPC ID を表示します。

  3. VPC ピアリング接続を作成し、ルートを設定します。

    1. VPC コンソールにログインします。左側のナビゲーションウィンドウで、[VPC ピアリング接続] をクリックし、次に [VPC ピアリング接続の作成] をクリックします。

    2. [VPC ピアリング接続の作成] ページで、ピアリング接続の名前を入力し、リクエスト元の VPC インスタンス、受信側のアカウントタイプ、受信側のリージョン、および受信側の VPC インスタンスを選択します。次に、[OK] をクリックします。

    3. [VPC ピアリング接続] ページで、VPC ピアリング接続を見つけ、[リクエスト元 VPC] および [受信側] 列の [ルートの設定] をクリックします。

      宛先 CIDR ブロックには、ピア VPC の CIDR ブロックを入力します。たとえば、リクエスト元 VPC のルートエントリを設定する場合は、受信側 VPC の CIDR ブロックを入力します。受信側 VPC のルートエントリを設定する場合は、リクエスト元 VPC の CIDR ブロックを入力します。

手順

ステップ 1: Tablestore データソースの追加

DataWorks で Tablestore データソースを設定して、ソースデータに接続します。

  1. DataWorks コンソールにログインします。ターゲットリージョンに切り替えます。左側のナビゲーションウィンドウで、[データ統合] > [データ統合] を選択します。ドロップダウンリストからワークスペースを選択し、[データ統合へ] をクリックします。

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

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

  4. [データソースの追加] ダイアログボックスで、データソースタイプとして [Tablestore] を検索して選択します。

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

    パラメーター

    説明

    データソース名

    データソース名は、文字、数字、アンダースコア (_) の組み合わせである必要があります。数字またはアンダースコア (_) で始めることはできません。

    データソースの説明

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

    リージョン

    Tablestore インスタンスが存在するリージョンを選択します。

    Tablestore インスタンス名

    Tablestore インスタンスの名前。

    エンドポイント

    Tablestore インスタンスのエンドポイント。VPC アドレスを使用します。

    AccessKey ID

    Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。

    AccessKey Secret

  6. リソースグループの接続性をテストします。

    データソースを作成するときは、リソースグループの接続性をテストして、同期タスクのリソースグループがデータソースに接続できることを確認する必要があります。そうしないと、データ同期タスクを実行できません。

    1. [接続設定] セクションで、リソースグループの [接続ステータス] 列にある [ネットワーク接続のテスト] をクリックします。

    2. 接続性テストに合格したら、[完了] をクリックします。新しいデータソースがデータソースリストに表示されます。

      接続性テストが失敗した場合は、[ネットワーク接続診断ツール] を使用して問題をトラブルシューティングします。

ステップ 2: OSS データソースの追加

データエクスポートの宛先として OSS データソースを設定します。

  1. 再度 [データソースの追加] をクリックします。ダイアログボックスで、データソースタイプとして [OSS] を検索して選択し、データソースパラメーターを設定します。

    パラメーター

    説明

    データソース名

    データソース名は、文字、数字、アンダースコア (_) で構成する必要があります。数字またはアンダースコア (_) で始めることはできません。

    データソースの説明

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

    アクセスモード

    • [RAM ロール認証モード]: DataWorks サービスアカウントは、RAM ロールを引き受けることでデータソースにアクセスします。このモードを初めて選択する場合は、画面の指示に従って必要な権限を付与します。

    • [AccessKey モード]: Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret を使用してデータソースにアクセスします。

    ロール

    このパラメーターは、[アクセスモード][RAM ロール認証モード] に設定した場合にのみ必要です。

    AccessKey ID

    これらのパラメーターは、[アクセスモード][AccessKey モード] に設定した場合にのみ必要です。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。

    AccessKey Secret

    リージョン

    バケットが配置されているリージョン。

    エンドポイント

    OSS ドメイン名。詳細については、「リージョンとエンドポイント」をご参照ください。

    バケット

    バケットの名前。

  2. パラメーターを設定し、接続性テストに合格したら、[完了] をクリックしてデータソースを追加します。

ステップ 3: バッチ同期タスクの設定

データ同期タスクを作成および設定して、Tablestore から OSS へのデータ転送ルールを定義します。

タスクノードの作成

  1. [データ開発] ページに移動します。

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

    2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

    3. 左側のナビゲーションウィンドウで、[データ開発と O&M] > [データ開発] をクリックします。

    4. 対応するワークスペースを選択し、[Data Studio へ] をクリックします。

  2. Data Studio コンソールで、[ワークスペースディレクトリ] の横にある image アイコンをクリックし、[ノードの作成] > [データ統合] > [バッチ同期] を選択します。

  3. [ノードの作成] ダイアログボックスで、[パス] を選択します。ソースを [Tablestore Stream] に、宛先を [OSS] に設定します。[名前] を入力し、[OK] をクリックします。

同期タスクの設定

プロジェクトディレクトリで、新しいバッチ同期タスクノードをクリックし、コードレス UI またはコードエディタを使用して設定します。

時系列テーブルを同期する場合は、コードエディタのみを使用して同期タスクを設定します。

コードレス UI (デフォルト)

次の項目を設定します:

  • [データソース]: ソースと宛先のデータソースを選択します。

  • [ランタイムリソース]: リソースグループを選択します。システムは自動的にデータソースの接続性をテストします。

  • [データソース]: ソースデータテーブルを選択します。他のパラメーターはデフォルト設定を維持するか、必要に応じて変更します。

  • [宛先]: [テキストタイプ] を選択し、対応するパラメーターを設定します。

    • [テキストタイプ]: サポートされているテキストタイプは [csv][text][orc]、および [parquet] です。

    • [オブジェクト名 (パスを含む)]: OSS バケット内のファイルのパスと名前。例: tablestore/resource_table.csv

    • [列区切り文字]: デフォルトは , です。非表示の区切り文字の場合は、\u001b\u007c などの Unicode エンコーディングを入力します。

    • [オブジェクトパス]: OSS バケット内のファイルのパス。このパラメーターは [parquet] ファイルの場合にのみ必要です。

    • [ファイル名]: OSS バケット内のファイルの名前。このパラメーターは、ファイルタイプが [parquet] の場合にのみ必要です。

  • [宛先フィールドマッピング]: マッピングは、ソーステーブルのプライマリキーと増分変更データに基づいて自動的に設定されます。必要に応じてマッピングを変更します。

設定が完了したら、ページの上部にある [保存] をクリックします。

コードエディタ

ページの上部にある [コードエディタ] をクリックしてスクリプトを編集します。

データテーブル

次の例は、宛先ファイルタイプが CSV のタスクを設定する方法を示しています。ソースデータテーブルには、id という名前の 1 つの int プライマリキー列と、name という名前の 1 つの string プライマリキー列を含むプライマリキーがあります。タスクを設定するときは、サンプルスクリプト内の datasourcetable、および宛先ファイル名 (object) を置き換えます。

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "otsstream",
            "parameter": {
                "statusTable": "TableStoreStreamReaderStatusTable",
                "maxRetries": 31,
                "isExportSequenceInfo": false,
                "datasource": "source_data",
                "column": [
                    "id",
                    "name",
                    "colName",
                    "version",
                    "colValue",
                    "opType",
                    "sequenceInfo"
                ],
                "startTimeString": "${startTime}",
                "table": "source_table",
                "endTimeString": "${endTime}"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "oss",
            "parameter": {
                "dateFormat": "yyyy-MM-dd HH:mm:ss",
                "datasource": "target_data",
                "writeSingleObject": false,
                "column": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6"
                ],
                "writeMode": "truncate",
                "encoding": "UTF-8",
                "fieldDelimiter": ",",
                "fileFormat": "csv",
                "object": "tablestore/source_table.csv"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

時系列テーブル

次の例は、宛先ファイルタイプが CSV のタスクを設定する方法を示しています。ソース時系列テーブルのタイムラインデータには、value という名前の 1 つの int 属性列が含まれています。タスクを設定するときは、サンプルスクリプト内の datasourcetable、および宛先ファイル名 (object) を置き換えます。

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "otsstream",
            "parameter": {
                "statusTable": "TableStoreStreamReaderStatusTable",
                "maxRetries": 31,
                "isExportSequenceInfo": false,
                "datasource": "source_data",
                "column": [
                  {
                    "name": "_m_name"
                  },
                  {
                    "name": "_data_source"
                  },
                  {
                    "name": "_tags"
                  },
                  {
                    "name": "_time"
                  },
                  {
                    "name": "value",
                    "type": "int"
                  }
                ],
                "startTimeString": "${startTime}",
                "table": "source_series",
                "isTimeseriesTable":"true",
                "mode": "single_version_and_update_only",
                "endTimeString": "${endTime}"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "oss",
            "parameter": {
                "dateFormat": "yyyy-MM-dd HH:mm:ss",
                "datasource": "target_data",
                "writeSingleObject": false,
                "writeMode": "truncate",
                "encoding": "UTF-8",
                "fieldDelimiter": ",",
                "fileFormat": "csv",
                "object": "tablestore/source_series.csv"
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "0"
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

スクリプトの編集が完了したら、ページの上部にある [保存] をクリックします。

同期タスクのデバッグ

  1. ページの右側で、[デバッグ設定] をクリックします。タスクのリソースグループを選択し、[スクリプトパラメーター] を指定します。

    • [startTime]: 増分データ同期の開始時刻 (この時刻を含む)。例: 20251119200000

    • [endTime]: 増分データ同期の終了時刻 (この時刻を含まない)。例: 20251119205000

      増分同期は 5 分ごとに実行される定期的なスケジュールを使用します。プラグインは 5 分の遅延を発生させます。これにより、合計同期遅延は 5〜10 分になります。終了時刻を設定するときは、現在時刻から 10 分以内の時刻を設定しないでください。

  2. ページの上部にある [実行] をクリックして、同期タスクを開始します。

    上記の例の値は、増分データが 2025/11/1920:00 から 20:50 (この時刻を含まない) まで同期されることを示しています。

ステップ 4: 同期結果の表示

同期タスクが完了したら、ログで実行ステータスを表示し、OSS バケットで結果ファイルを確認できます。

  1. ページの下部でタスクの実行ステータスと結果を表示します。次のログ情報は、同期タスクが正常に実行されたことを示しています。

    2025-11-18 11:16:23 INFO Shell run successfully!
    2025-11-18 11:16:23 INFO Current task status: FINISH
    2025-11-18 11:16:23 INFO Cost time is: 77.208s
  2. 宛先バケット内のファイルを表示します。

    バケットリストに移動します。宛先バケットをクリックして、結果ファイルを表示またはダウンロードします。

本番稼働

デバッグが完了したら、ページの右側にある [スケジューリング設定] ペインで startTime および endTime スケジューリングパラメーターと定期的なスケジューリングポリシーを設定します。その後、タスクを本番環境に公開します。設定ルールの詳細については、「スケジューリングパラメーターの設定と使用」、「スケジューリングポリシー」、および「スケジューリング時間」をご参照ください。

よくある質問

OTSStreamReader のよくある質問

関連ドキュメント

OSS ファイルの簡易ダウンロード