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

Tablestore:増分データを OSS に同期する

最終更新日:Dec 28, 2024

バックアップまたは使用のために Tablestore からオブジェクトストレージサービス (OSS) に増分データを定期的に同期するには、DataWorks コンソールでバッチ同期タスクを作成および設定できます。このトピックでは、DataWorks コンソールでバッチ同期タスクを使用して、Tablestore から OSS に増分データを同期する方法について説明します。

使用上の注意

  • この機能は、Tablestore のワイドカラムモデルと時系列モデルに適用できます。

    • ワイドカラムモデル: コードレスユーザーインターフェース (UI) またはコードエディターを使用して、Tablestore のデータテーブルから OSS にデータをエクスポートできます。

    • 時系列モデル: コードエディターのみを使用して、Tablestore の時系列テーブルから OSS にデータをエクスポートできます。

  • Tablestore Stream を使用して増分データを同期する場合は、データの行全体が毎回 Tablestore に書き込まれていることを確認してください。行全体のデータ書き込みモードは、IoT データなどの時系列データに適用されます。したがって、データは書き込まれた後に変更する必要はありません。

  • 増分データは 5 分ごとに同期され、Tablestore プラグインによって 5 分の遅延が発生する可能性があります。したがって、増分同期の合計遅延は 5 分から 10 分の範囲です。

前提条件

ステップ 1: バッチ同期ノードを作成する

  1. DataStudio コンソールに移動します。

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

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

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

  3. データ統合 ノードを右クリックし、ノードの作成 > オフライン同期 を選択します。

  4. ノードの作成 ダイアログボックスで、パスを選択し、ノード名を入力します。

  5. 確認 をクリックします。

    新しく作成されたオフライン同期ノードが データ統合 ノードの下に表示されます。

ステップ 2: バッチ同期タスクを設定して開始する

Tablestore から OSS に増分データを同期するタスクを設定するには、データストレージモデルに基づいて適切な設定方法を選択します。

データテーブルからデータを同期するタスクを設定する

  1. データ統合 フォルダーで、作成したバッチ同期ノードをダブルクリックします。

  2. リソースグループとデータソース間のネットワーク接続を確立します。

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

    重要

    データ同期タスクは、リソースグループを使用して実行されます。リソースグループを選択し、リソースグループとデータソース間のネットワーク接続が確立されていることを確認してください。

    1. ネットワーク接続とリソースグループを設定する ステップで、ソース パラメーターを Tablestore Stream に設定し、データソース名 パラメーターを追加した Tablestore データソースの名前に設定します。

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

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

      重要

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

    3. デスティネーション パラメーターを OSS に設定し、データソース名 パラメーターを追加した OSS データソースの名前に設定します。

      システムは、リソースグループとデスティネーションデータソース間の接続を自動的にテストします。

    4. ネットワーク接続テストに合格したら、次へ をクリックします。

  3. タスクを設定して保存します。

    コードレス UI を使用してタスクを設定する場合、データは行の列値の増分変更に基づいてのみエクスポートできます。コードエディターを使用してタスクを設定する場合、データは行の列値の増分変更または行モードに基づいてエクスポートできます。行モードに基づいて増分データをエクスポートする場合は、コードエディターを使用します。

    (推奨) コードレス UI を使用する

    1. タスクを設定する ステップの ソースとデスティネーションを設定する セクションで、ビジネス要件に基づいてソースデータソースとデスティネーションデータソースを設定します。

      ソースデータソースを設定する

      パラメーター

      説明

      テーブル

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

      開始時刻

      増分データが読み取られる期間の開始時刻と終了時刻。${startTime} および ${endTime} 形式でパラメーターを指定します。具体的な形式は、スケジューリングプロパティで設定されます。期間は左閉右開区間です。

      終了時刻

      状態テーブル

      Tablestore Stream の状態を格納するテーブルの名前。デフォルト値: TableStoreStreamReaderStatusTable。

      最大再試行回数

      Tablestore から増分データを読み取る各リクエストで許可される最大再試行回数。

      時系列情報をエクスポートする

      時系列情報をエクスポートするかどうかを指定します。時系列情報には、データが書き込まれた時刻が含まれます。

      デスティネーションデータソースを設定する

      パラメーター

      説明

      テキストタイプ

      OSS に書き込まれるオブジェクトの形式 (.csv、.txt など)。

      説明

      オブジェクトの形式が異なると、必要な設定も異なります。オブジェクトの形式を選択し、表示される特定のパラメーターを指定します。

      ファイル名 (パスを含む)

      このパラメーターは、テキストタイプ パラメーターを textcsv、または orc に設定した場合にのみ表示されます。

      OSS 内のオブジェクトの名前。名前には、tablestore/20231130/myotsdata.csv などのパスを含めることができます。

      パス

      このパラメーターは、テキストタイプ パラメーターを parquet に設定した場合にのみ表示されます。

      OSS 内のオブジェクトのパス。例: tablestore/20231130/

      ファイル名

      このパラメーターは、テキストタイプ パラメーターを parquet に設定した場合にのみ表示されます。

      OSS 内のオブジェクトの名前。

      列区切り文字

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      データが OSS オブジェクトに書き込まれるときに列を区切るために使用する区切り文字。

      行区切り文字

      このパラメーターは、テキストタイプ パラメーターを text に設定した場合にのみ表示されます。

      行を区切るために使用するカスタム区切り文字。例: \u0001。データに存在しない区切り文字を行区切り文字として使用する必要があります。

      Linux のデフォルトの行区切り文字 \n または Windows の \r\n を使用する場合、このパラメーターを空のままにすることをお勧めします。システムは、デフォルトの行区切り文字に基づいてデータを自動的に読み取ります。

      コーディング

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      データを書き込む OSS オブジェクトのエンコーディング形式。

      null 値

      このパラメーターは、テキストタイプ パラメーターを textcsv、または orc に設定した場合にのみ表示されます。

      ソースデータソースで null として解釈できる文字列。たとえば、このパラメーターを null に設定し、ソースデータソースのフィールドの値が null の場合、システムはそのフィールドを null として認識します。

      時刻形式

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      日付データが OSS オブジェクトに書き込まれる時刻形式。例: yyyy-MM-dd

      プレフィックスの競合

      指定したオブジェクト名が OSS 内の既存のオブジェクトの名前と同じである場合に使用される処理方法。有効な値:

      • 置換: 既存のオブジェクトを削除し、同じ名前の別のオブジェクトを作成します。

      • 保持: 既存のオブジェクトを保持し、既存のオブジェクト名とランダムなサフィックスを組み合わせた名前の別のオブジェクトを作成します。

      • エラー: エラーを報告し、バッチ同期タスクを停止します。

      ファイルを分割する

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      データの書き込み先となる単一の OSS オブジェクトの最大サイズ。単位: MB。最大サイズは 100 GB です。書き込まれるオブジェクトのサイズがこのパラメーターの値に達すると、システムは新しいオブジェクトを生成してデータの書き込みを続行し、すべてのデータが書き込まれるまで続けます。

      単一ファイルとして書き込む

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      一度に 1 つのオブジェクトを OSS に書き込むかどうかを指定します。デフォルトでは、一度に複数のオブジェクトが OSS に書き込まれます。データの書き込み中にデータが読み取られない場合、次のいずれかのケースが発生する可能性があります。オブジェクトヘッダーが設定されている場合、オブジェクトヘッダーのみを含む空のオブジェクトが生成されます。オブジェクトヘッダーが設定されていない場合、完全に空のオブジェクトが生成されます。

      一度に 1 つのオブジェクトを OSS に書き込む場合は、単一ファイルとして書き込む を選択します。この場合、データの書き込み中にデータが読み取られないと、空のファイルは生成されません。

      最初の行をテーブルヘッダーにする

      このパラメーターは、テキストタイプ パラメーターを text または csv に設定した場合にのみ表示されます。

      データがオブジェクトに書き込まれるときに最初の行をテーブルヘッダーとして書き込むかどうかを指定します。デフォルトでは、テーブルヘッダーは生成されません。最初の行をテーブルヘッダーとして書き込む場合は、最初の行をテーブルヘッダーにする を選択します。

    2. フィールドマッピング セクションでは、システムがフィールドマッピングを自動的に完了します。このセクションでは、デフォルト設定を保持します。

      ソースフィールドには、プライマリキー列とデータテーブルの増分データの変更が含まれます。デスティネーションフィールドは設定できません。

      image.png

    3. チャネル制御 セクションで、タスクの予想最大同時実行数、同期レート、ダーティデータレコードのポリシー、分散実行パラメーターなど、タスク実行のパラメーターを設定します。パラメーターの詳細については、「チャネル制御ポリシーを設定する」を参照してください。

    4. image.png アイコンをクリックして、設定を保存します。

      説明

      設定を保存しないと、後続の操作を実行したときに設定を保存するように促すメッセージが表示されます。OK をクリックして設定を保存します。

    コードエディターを使用する

    増分データを同期するには、OTSStream Reader と OSS Writer を使用する必要があります。コードエディターを使用してタスクを設定する方法の詳細については、「Tablestore Stream データソース」と「OSS データソース」を参照してください。

    重要

    コードレス UI とコードエディターを切り替えることはできません。注意して進めてください。

    1. タスクを設定する ステップで、image.png アイコンをクリックします。表示されるメッセージで、OK をクリックします。

    2. コードエディターで、次のサンプルコードに基づいてパラメーターを指定します。

      重要

      設定を理解しやすいように、サンプルコードにコメントが記載されています。サンプルコードを使用する場合は、すべてのコメントを削除してください。

      行モードに基づいて増分データをエクスポートする

      {
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "otsstream", // リーダーの名前。このパラメーターの値は変更できません。
                  "parameter": {
                      "statusTable": "TableStoreStreamReaderStatusTable", // Tablestore Stream の状態を格納するテーブルの名前。ほとんどの場合、このパラメーターの値を変更する必要はありません。
                      "maxRetries": 30, // 各リクエストで許可される最大再試行回数。
                      "isExportSequenceInfo": false, // 時系列情報をエクスポートするかどうかを指定します。時系列情報には、データが書き込まれた時刻が含まれます。
      				        "mode": "single_version_and_update_only", // Tablestore Stream を使用してデータをエクスポートするモード。このパラメーターを single_version_and_update_only に設定します。設定テンプレートにこのパラメーターが含まれていない場合は、このパラメーターを追加します。
                      "datasource": "otssource", // ソースデータソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "envType": 1,
                      "column": [ 
      				          {
                           "name": "pk1" 
                        },
                        {
                           "name": "pk2"  
                        },
                        {
                           "name": "col1"  
                        }
                      ],
                      "startTimeString": "${startTime}", // データエクスポートの開始時刻。このタスクは増分データエクスポートに使用されるため、ループで開始する必要があります。各ループの開始時刻は異なります。したがって、${startTime} などの変数を使用する必要があります。
                      "table": "mytable", // Tablestore のソーステーブルの名前。
                      "endTimeString": "${endTime}" // データエクスポートの終了時刻。${endTime} などの変数を使用する必要があります。
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "oss", // ライターの名前。このパラメーターの値は変更できません。
                  "parameter": { // このサンプルコードに基づいてパラメーターを指定する場合、データは CSV 形式と TEXT 形式でのみエクスポートできます。Parquet 形式または ORC 形式でデータをエクスポートする場合は、「OSS データソース」トピックの内容に基づいてパラメーターを指定します。
                      "fieldDelimiterOrigin": ",",
                      "nullFormat": "null", // null フィールド値を識別するために使用される文字列。値は空の文字列にすることができます。
                      "dateFormat": "yyyy-MM-dd HH:mm:ss", // 時刻の形式。
                      "datasource": "osssource", // OSS データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "envType": 1,
                      "writeSingleObject": true, // 一度に 1 つのファイルを OSS に書き込むかどうかを指定します。true の値は、一度に 1 つのファイルを OSS に書き込むことを指定します。データが読み取られない場合、空のファイルは生成されません。false の値は、一度に複数のファイルを OSS に書き込むことを指定します。データが読み取られず、ファイルヘッダーが設定されている場合、ファイルヘッダーのみを含む空のファイルが生成されます。それ以外の場合、空のファイルが生成されます。
                      "writeMode": "truncate", // デスティネーションデータソースに指定されたソースファイル名と同じ名前のオブジェクトが存在する場合にシステムによって実行される操作。有効な値: truncate、append、nonConflict。truncate の値は、システムがデスティネーションデータソースのオブジェクトをクリアすることを指定します。append の値は、システムがデスティネーションデータソースのオブジェクトにデータを追加することを指定します。nonConflict の値は、エラーが報告されることを指定します。
                      "encoding": "UTF-8", // エンコーディングタイプ。
                      "fieldDelimiter": ",", // 列を区切るために使用する区切り文字。
                      "fileFormat": "csv", // ファイル形式。有効な値: csv、text、parquet、orc。
                      "object": "" // OSS に同期するファイルの名前のプレフィックス。「Tablestore インスタンス名/テーブル名/日付」形式を使用することをお勧めします。例: "instance/table/{date}"。
                  },
                  "name": "Writer",
                  "category": "writer" 
              },
              {
                  "copies": 1,
                  "parameter": {
                      "nodes": [],
                      "edges": [],
                      "groups": [],
                      "version": "2.0"
                  },
                  "name": "Processor",
                  "category": "processor"
              }
          ],
          "setting": {
              "errorLimit": {
                  "record": "0" // 許可されるエラーの数。エラーの数がこの値を超えると、同期タスクは失敗します。
              },
              "locale": "zh",
              "speed": {
                  "throttle": false, // スロットリングを有効にするかどうかを指定します。false の値はスロットリングが無効になっていることを指定し、true の値はスロットリングが有効になっていることを指定します。mbps パラメーターは、throttle パラメーターが true に設定されている場合にのみ有効になります。
                  "concurrent": 3 // 同時タスクの最大数。
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }

      行の列値の増分変更に基づいて増分データをエクスポートする

      {
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "otsstream", // リーダーの名前。このパラメーターの値は変更できません。
                  "parameter": {
                      "statusTable": "TableStoreStreamReaderStatusTable", // Tablestore Stream の状態を格納するテーブルの名前。ほとんどの場合、このパラメーターの値を変更する必要はありません。
                      "maxRetries": 30, // 各リクエストで許可される最大再試行回数。
                      "isExportSequenceInfo": false, // 時系列情報をエクスポートするかどうかを指定します。時系列情報には、データが書き込まれた時刻が含まれます。
                      "datasource": "otssource",
                      "envType": 1,
                      "column": [ // データテーブルから OSS にエクスポートする列。設定テンプレートにこのパラメーターが含まれていない場合は、このパラメーターを追加します。この例では、デフォルト設定が使用されています。
                          "pk1", // プライマリキー列の名前。データテーブルに複数のプライマリキー列がある場合は、すべて指定する必要があります。
                          "pk2", // プライマリキー列の名前。データテーブルに複数のプライマリキー列がある場合は、すべて指定する必要があります。
                          "colName", // 値が増分データである属性列の名前。このパラメーターの値を変更する必要はありません。
                          "version", // 値が増分データである列のデータバージョン番号。このパラメーターの値を変更する必要はありません。このパラメーターの値は 64 ビットのタイムスタンプです。単位: ミリ秒。
                          "colValue", // 値が増分データである属性列の値。このパラメーターの値を変更する必要はありません。
                          "opType", // 増分データ操作のタイプ。このパラメーターの値を変更する必要はありません。
                          "sequenceInfo" // 自動インクリメントシーケンスの ID。このパラメーターの値を変更する必要はありません。
                      ],
                      "startTimeString": "${startTime}", // データエクスポートの開始時刻。このタスクは増分データエクスポートに使用されるため、ループで開始する必要があります。各ループの開始時刻は異なります。したがって、${startTime} などの変数を使用する必要があります。
                      "table": "mytable", // Tablestore のソーステーブルの名前。
                      "endTimeString": "${endTime}" // データエクスポートの終了時刻。${endTime} などの変数を使用する必要があります。
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "oss", // ライターの名前。このパラメーターの値は変更できません。
                  "parameter": { // このサンプルコードに基づいてパラメーターを指定する場合、データは CSV 形式と TEXT 形式でのみエクスポートできます。Parquet 形式または ORC 形式でデータをエクスポートする場合は、「OSS データソース」トピックの内容に基づいてパラメーターを指定します。
                      "fieldDelimiterOrigin": ",",
                      "nullFormat": "null", // null フィールド値を識別するために使用される文字列。値は空の文字列にすることができます。
                      "dateFormat": "yyyy-MM-dd HH:mm:ss", // 時刻の形式。
                      "datasource": "osssource", // OSS データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "envType": 1,
                      "writeSingleObject": true, // 一度に 1 つのファイルを OSS に書き込むかどうかを指定します。true の値は、一度に 1 つのファイルを OSS に書き込むことを指定します。データが読み取られない場合、空のファイルは生成されません。false の値は、一度に複数のファイルを OSS に書き込むことを指定します。データが読み取られず、ファイルヘッダーが設定されている場合、ファイルヘッダーのみを含む空のファイルが生成されます。それ以外の場合、空のファイルが生成されます。
                      "column": [ // OSS に同期する列。列のシーケンス番号を使用してこのパラメーターを指定します。このパラメーターの値を変更する必要はありません。
                          "0",
                          "1",
                          "2",
                          "3",
                          "4",
                          "5",
                          "6"
                      ],
                      "writeMode": "truncate", // デスティネーションデータソースに指定されたソースファイル名と同じ名前のオブジェクトが存在する場合にシステムによって実行される操作。有効な値: truncate、append、nonConflict。truncate の値は、システムがデスティネーションデータソースのオブジェクトをクリアすることを指定します。append の値は、システムがデスティネーションデータソースのオブジェクトにデータを追加することを指定します。nonConflict の値は、エラーが報告されることを指定します。
                      "encoding": "UTF-8", // エンコーディングタイプ。
                      "fieldDelimiter": ",", // 列を区切るために使用する区切り文字。
                      "fileFormat": "csv", // ファイル形式。有効な値: csv、text。
                      "object": "" // OSS に同期するファイルの名前のプレフィックス。「Tablestore インスタンス名/テーブル名/日付」形式を使用することをお勧めします。例: "instance/table/{date}"。
                  },
                  "name": "Writer",
                  "category": "writer"
              },
              {
                  "copies": 1,
                  "parameter": {
                      "nodes": [],
                      "edges": [],
                      "groups": [],
                      "version": "2.0"
                  },
                  "name": "Processor",
                  "category": "processor"
              }
          ],
          "setting": {
              "errorLimit": {
                  "record": "0" // 許可されるエラーの数。エラーの数がこの値を超えると、同期タスクは失敗します。
              },
              "locale": "zh",
              "speed": {
                  "throttle": false, // スロットリングを有効にするかどうかを指定します。false の値はスロットリングが無効になっていることを指定し、true の値はスロットリングが有効になっていることを指定します。mbps パラメーターは、throttle パラメーターが true に設定されている場合にのみ有効になります。
                  "concurrent": 3 // 同時タスクの最大数。
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    3. image.png アイコンをクリックして、設定を保存します。

      説明

      スクリプトを保存しないと、後続の操作を実行したときにスクリプトを保存するように促すメッセージが表示されます。OK をクリックしてスクリプトを保存します。

時系列テーブルからデータを同期するタスクを設定する

  1. データ統合フォルダで、作成したバッチ同期ノードをダブルクリックします。

  2. リソースグループとデータソース間のネットワーク接続を確立します。

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

    重要

    データ同期タスクは、リソースグループを使用して実行されます。リソースグループを選択し、リソースグループとデータソース間のネットワーク接続が確立されていることを確認します。

    1. ネットワーク接続とリソースグループの構成ステップで、ソースパラメータをTablestore Streamに設定し、データソース名パラメータを追加したTablestoreデータソースの名前に設定します。

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

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

      重要

      リソースグループが、データソースを追加したときに選択したものと同じであることを確認します。

    3. デスティネーションパラメータをOSSに設定し、データソース名パラメータを追加したOSSデータソースの名前に設定します。

      システムは、リソースグループとデスティネーションデータソース間の接続を自動的にテストします。

    4. ネットワーク接続テストに合格したら、次へをクリックします。

  3. タスクを構成します。

    時系列テーブルからデータを同期するには、コードエディタを使用する必要があります。増分データを同期するには、OTSStream ReaderとOSS Writerを使用する必要があります。コードエディタを使用してタスクを構成する方法の詳細については、Tablestore StreamデータソースおよびOSSデータソースを参照してください。

    重要

    コードレスUIとコードエディタを切り替えることはできません。慎重に進んでください。

    1. タスクの構成ステップで、image.pngアイコンをクリックします。表示されるメッセージで、OKをクリックします。

    2. コードエディタで、次のサンプルコードに基づいてパラメータを指定します。

      時系列テーブルの増分データは、行モードに基づいてのみエクスポートできます。

      重要

      構成を理解しやすいように、サンプルコードにコメントが提供されています。サンプルコードを使用する場合は、すべてのコメントを削除してください。

      {
          "type": "job",
          "version": "2.0",
          "steps": [
              {
                  "stepType": "otsstream", // リーダーの名前。このパラメータの値は変更できません。
                  "parameter": {
                      "statusTable": "TableStoreStreamReaderStatusTable", // Tablestore Streamの状態を格納するテーブルの名前。ほとんどの場合、このパラメータの値を変更する必要はありません。
                      "maxRetries": 30, // 各リクエストで許可される最大再試行回数。
                      "isExportSequenceInfo": false, // 時系列情報をエクスポートするかどうかを指定します。時系列情報には、データが書き込まれた時刻が含まれます。
                      "mode": "single_version_and_update_only", // Tablestore Streamを使用してデータをエクスポートするモード。このパラメータをsingle_version_and_update_onlyに設定します。構成テンプレートにこのパラメータが含まれていない場合は、このパラメータを追加します。
                      "isTimeseriesTable":"true", // 時系列テーブルからデータを同期するかどうかを指定します。時系列テーブルからデータを同期する場合は、このパラメータをtrueに設定する必要があります。
                      "datasource": "otssource", // ソースデータソースの名前。ビジネス要件に基づいてこのパラメータを指定します。
                      "envType": 1,
                      "column": [ // 時系列テーブルからOSSにエクスポートする列。構成テンプレートにこのパラメータが含まれていない場合は、このパラメータを追加します。この例では、デフォルト設定が使用されています。
                          {
                              "name": "_m_name" // 測定列の名前。このパラメータの値を変更する必要はありません。列を同期する必要がない場合は、このパラメータを削除します。
                          },
                          {
                              "name": "_data_source", // データソース列の名前。このパラメータの値を変更する必要はありません。列を同期する必要がない場合は、このパラメータを削除します。
                          },
                          {
                              "name": "_tags", // 時系列タグ列の名前。このパラメータの値を変更する必要はありません。列を同期する必要がない場合は、このパラメータを削除します。
                          },
                          {
                              "name": "colname", // 時系列データ列の名前。ビジネス要件に基づいてこのパラメータを指定します。複数の列をエクスポートする場合は、列を追加します。
                          }
                       ],
                      "startTimeString": "${startTime}", // データエクスポートの開始時刻。このタスクは増分データエクスポートに使用されるため、ループで開始する必要があります。各ループの開始時刻は異なります。したがって、${startTime}などの変数を使用する必要があります。
                      "table": "timeseriestable", // Tablestoreのタイムシリーズテーブルの名前。
                      "endTimeString": "${endTime}" // データエクスポートの終了時刻。${endTime}などの変数を使用する必要があります。
                  },
                  "name": "Reader",
                  "category": "reader"
              },
              {
                  "stepType": "oss", // ライターの名前。このパラメータの値は変更できません。
                  "parameter": { // このサンプルコードに基づいてパラメータを指定すると、データはCSVおよびTEXT形式でのみエクスポートできます。ParquetまたはORC形式でデータをエクスポートする場合は、「OSSデータソース」トピックの内容に基づいてパラメータを指定します。
                      "fieldDelimiterOrigin": ",",
                      "nullFormat": "null", // nullフィールド値を識別するために使用される文字列。値は空の文字列にすることができます。
                      "dateFormat": "yyyy-MM-dd HH:mm:ss", // 時間の形式。
                      "datasource": "osssource", // OSSデータソースの名前。ビジネス要件に基づいてこのパラメータを指定します。
                      "envType": 1,
                      "writeSingleObject": false, // 一度に1つのファイルをOSSに書き込むかどうかを指定します。trueの値は、一度に1つのファイルをOSSに書き込むことを指定します。データが読み取られない場合、空のファイルは生成されません。falseの値は、一度に複数のファイルをOSSに書き込むことを指定します。データが読み取られず、ファイルヘッダーが構成されている場合、ファイルヘッダーのみを含む空のファイルが生成されます。それ以外の場合、空のファイルが生成されます。
                      "writeMode": "truncate", // 指定されたソースファイル名を持つオブジェクトがデスティネーションデータソースに存在する場合にシステムによって実行される操作。有効な値:truncate、append、およびnonConflict。truncateの値は、システムがデスティネーションデータソースのオブジェクトをクリアすることを指定します。appendの値は、システムがデスティネーションデータソースのオブジェクトにデータを追加することを指定します。nonConflictの値は、エラーが報告されることを指定します。
                      "encoding": "UTF-8", // エンコードタイプ。
                      "fieldDelimiter": ",", // 列を区切るために使用される区切り文字。
                      "fileFormat": "csv", // ファイル形式。有効な値:csvおよびtext。
                      "object": "" // OSSに同期するファイルの名前のプレフィックス。「Tablestoreインスタンス名/テーブル名/日付」形式を使用することをお勧めします。例:「instance/table/{date}」。
                  },
                  "name": "Writer",
                  "category": "writer"
              },
              {
                  "name": "Processor",
                  "stepType": null,
                  "category": "processor",
                  "copies": 1,
                  "parameter": {
                      "nodes": [],
                      "edges": [],
                      "groups": [],
                      "version": "2.0"
                  }
              }
          ],
          "setting": {
              "executeMode": null,
              "errorLimit": {
                  "record": "0" // 許容されるエラーの数。エラーの数がこの値を超えると、同期タスクは失敗します。
              },
              "speed": {
                  "concurrent": 2, // 同時タスクの最大数。
                  "throttle": false  // スロットリングを有効にするかどうかを指定します。falseの値はスロットリングが無効であることを指定し、trueの値はスロットリングが有効であることを指定します。mbpsパラメータは、throttleパラメータがtrueに設定されている場合にのみ有効になります。
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    3. image.pngアイコンをクリックして、構成を保存します。

      説明

      スクリプトを保存しないと、後続の操作を実行するときにスクリプトを保存するように求めるメッセージが表示されます。OKをクリックしてスクリプトを保存します。

ステップ 3: スケジューリングプロパティを設定する

バッチ同期タスクのスケジューリングプロパティは、プロパティパネルで設定できます。たとえば、タスクを実行する時刻、再実行プロパティ、スケジューリングの依存関係などを設定できます。

  1. タスク設定タブの右側ナビゲーションペインでプロパティをクリックします。

  2. プロパティパネルのスケジューリングパラメーターセクションで、パラメーターを追加をクリックしてパラメーターを追加します。次の表にパラメーターを示します。詳細については、サポートされているスケジューリングパラメーターの形式を参照してください。

    パラメーター

    startTime

    $[yyyymmddhh24-2/24]$[miss-10/24/60]

    endTime

    $[yyyymmddhh24-1/24]$[miss-10/24/60]

    次の図は、パラメーターを設定する方法を示しています。

    image..png

    たとえば、2023 年 4 月 23 日 19:00:00 にタスクを実行する場合、startTime パラメーターを 20230423175000 に、endTime パラメーターを 20230423185000 に設定できます。この場合、タスクは 17:50 から 18:50 の間に生成されたデータを同期します。

  3. スケジュールセクションで、スケジューリングプロパティを設定します。詳細については、時間プロパティの構成を参照してください。

    次の図は、1 時間ごとに実行するようにスケジュールされたタスクを設定する方法を示しています。

    image..png

  4. 依存関係セクションで、ルートノードを追加を選択します。システムは、現在のノードの祖先ノードに関する情報を自動的に生成します。

    ルートノードを追加を選択した場合、現在のノードで実行されるタスクは、現在のノードの祖先ノードに依存しません。

    image.png

  5. 設定が完了したら、プロパティパネルを閉じます。

ステップ 4: スクリプトをデバッグし、タスクをコミットする

  1. オプション。スクリプトをデバッグします。

    同期タスクが Tablestore から OSS に増分データを同期できることを確認するために、スクリプトをデバッグします。

    重要

    スクリプトをデバッグすると、指定された時間範囲内で生成されたデータが OSS に複数回インポートされる場合があります。同じデータ行が OSS に複数回書き込まれた場合、OSS 内の関連データ行は上書きされます。

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

    2. パラメーター ダイアログボックスで、リソースグループを選択し、カスタムパラメーターを構成します。

      カスタムパラメーター値を yyyyMMddHHmmss 形式で指定します。例: 20230423175000。

      image

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

  2. 同期タスクをコミットします。

    同期タスクがコミットされると、構成したスケジュールプロパティに基づいて同期タスクが実行されます。

    1. image アイコンをクリックします。

    2. 送信 ダイアログボックスで、ビジネス要件に基づいて変更の説明を指定します。

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

手順 5: 同期タスクの結果を表示する

  1. タスクのステータスを表示するには、DataWorks コンソールで次の手順を実行します。

    1. タスク構成タブの右上隅にあるオペレーションセンターをクリックします。

    2. 左側のナビゲーションペインで、[周期タスクのメンテナンス] > [周期インスタンス] を選択します。インスタンスパースペクティブタブの周期インスタンスページで、インスタンスのステータスを表示します。

  2. タスクの結果を表示するには、OSS コンソールで次の手順を実行します。

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

    2. 左側のナビゲーションペインで [バケット] をクリックします。バケットページで、データが同期されるバケットを見つけ、バケットの名前をクリックします。

    3. オブジェクトページで、オブジェクトを選択し、オブジェクトをダウンロードして、データが想定どおりに同期されているかどうかを確認します。

FAQ

OTSStream Reader実行時に発生する可能性のあるエラー

参照資料

  • エクスポートされた Tablestore データを含む OSS オブジェクトをローカルデバイスにダウンロードする場合は、OSS コンソールまたは ossutil を使用できます。詳細については、簡易ダウンロード を参照してください。

  • 誤って削除したり、悪意のある改ざんによって重要なデータが使用できなくなるのを防ぐために、Cloud Backup を使用して Tablestore インスタンスのワイドテーブルのデータを定期的にバックアップし、紛失または破損したデータをできるだけ早く復元できます。詳細については、データバックアップ を参照してください。

  • Tablestore のホットデータとコールドデータの階層型ストレージを実装する場合、Tablestore データのフルバックアップ、および大規模なリアルタイムデータ分析を行う場合は、Tablestore のデータ配信機能を使用できます。詳細については、データ配信 を参照してください。