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

Tablestore:Tablestore から OSS へのフルデータのエクスポート

最終更新日:Dec 28, 2024

費用対効果の高い方法でTablestoreのフルデータをバックアップしたり、Tablestoreデータをローカルデバイスにファイルとしてエクスポートしたりする場合は、DataWorksデータ統合を使用して、Tablestoreからオブジェクトストレージサービス (OSS) にフルデータをエクスポートできます。フルデータが OSS にエクスポートされた後、エクスポートされた Tablestore データを含む OSS オブジェクトをローカルデバイスにダウンロードできます。

使用上の注意

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

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

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

前提条件

  • OSS が有効化され、OSS バケットが作成されていること。詳細については、OSS の有効化 および バケットの作成 を参照してください。

  • データをTablestoreからOSSに同期するインスタンス、データテーブル、または時系列テーブルに関する情報が確認され、記録されていること。

  • DataWorks が有効化され、ワークスペースが作成されていること。詳細については、DataWorks の有効化 および ワークスペースの作成 を参照してください。

  • RAM ユーザーが作成され、AliyunOSSFullAccess および AliyunOTSFullAccess 権限が付与されていること。AliyunOSSFullAccess および AliyunOTSFullAccess は、OSS および Tablestore に対するフルアクセス権限を付与します。詳細については、RAM ユーザーの作成 および RAM ユーザーへの権限の付与 を参照してください。

    重要

    Alibaba Cloud アカウントの AccessKey ペアの漏洩によるセキュリティリスクを防ぐため、RAM ユーザーの AccessKey ペアを使用することをお勧めします。

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

ステップ 1: Tablestore データソースを追加する

Tablestore データベースをデータソースとして追加するには、次の手順を実行します。

  1. データ統合ページに移動します。

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

  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 つのリソースグループタイプのみを使用できます。デフォルトでは、データ統合の共有リソースグループのみがリソースグループリストに表示されます。データ同期の安定性とパフォーマンスを確保するために、データ統合専用の排他的リソースグループを使用することをお勧めします。

    1. 購入 をクリックして新しいリソースグループを作成するか、購入したリソースグループを関連付ける をクリックして既存のリソースグループを関連付けます。詳細については、データ統合専用の排他的リソースグループを作成して使用する を参照してください。

    2. リソースグループが起動したら、リソースグループの 接続ステータス (本番環境) 列にある ネットワーク接続のテスト をクリックします。

      接続済み と表示された場合、接続テストは合格です。

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

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

ステップ 2: OSS データソースを追加する

手順は ステップ 1 と同様です。ステップ 2 では、データソースを追加 ダイアログボックスで OSS をクリックします。

この例では、次の図に示すように、OSS データソースに OTS2OSS という名前が付けられています。

重要
  • OSS データソースのパラメーターを設定する際は、エンドポイントに指定した OSS バケットの名前が含まれておらず、http:// または https:// で始まっていることを確認してください。

  • OSS データソースのアクセスモードとして、RAM ロール認証モードまたは Access Key モードを選択できます。

    • Access Key モード: Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを使用して、OSS データソースにアクセスできます。

    • RAM ロール認証モード: DataWorks は、Security Token Service (STS) トークンを使用して、関連するロールを引き受けて OSS データソースにアクセスできます。これにより、セキュリティが向上します。詳細については、RAM ロールベース認証モードを使用してデータソースを追加する を参照してください。

      初めて アクセスモード として RAM ロール認証モード を選択すると、警告 ダイアログボックスが表示され、DataWorks のサービスリンクロールを作成するように求められます。認証を有効にする をクリックします。次に、DataWorks 用に作成したサービスリンクロールを選択し、認証を完了します。

image.png

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

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

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

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

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

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

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

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

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

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

Tablestore から OSS にフルデータを同期するタスクを設定する場合は、使用するデータストレージモデルに基づいてタスク設定方法を選択します。

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

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

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

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

    重要

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

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

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

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

      重要

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

    3. 宛先 パラメーターを OSS に設定し、データソース名 パラメーターを ステップ 2: OSS データソースを追加する で追加した OSS データソースの名前に設定します。

      リソースグループと宛先データソース間の接続が自動的にテストされます。

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

  3. バッチ同期タスクを設定して保存します。

    ビジネス要件に基づいて、コードレス UI またはコードエディターを使用して、データテーブルからデータを同期するタスクを設定できます。

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

    1. タスクを設定する ステップの ソースと宛先を設定する セクションで、実際のケースに基づいてソースデータソースと宛先データソースを設定します。

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

      パラメーター

      説明

      テーブル

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

      プライマリキーの範囲 (開始)

      読み取るデータの範囲を指定するために使用される開始プライマリキーと終了プライマリキー。値は JSON 配列である必要があります。

      開始プライマリキーと終了プライマリキーは、有効なプライマリキー、または INF_MIN タイプと INF_MAX タイプの値で構成される仮想ポイントである必要があります。仮想ポイントの列数は、プライマリキー列の数と同じである必要があります。

      INF_MIN タイプは、無限に小さい値を指定します。他のすべてのタイプの値は、INF_MIN タイプの値よりも大きくなります。INF_MAX タイプは、無限に大きい値を指定します。他のすべてのタイプの値は、INF_MAX タイプの値よりも小さくなります。

      データテーブルの行は、プライマリキーによって昇順にソートされます。読み取るデータの範囲は、左閉右開区間です。プライマリキーが開始プライマリキー以上で終了プライマリキー未満のすべての行が返されます。

      たとえば、テーブルに pk1 と pk2 というプライマリキー列が含まれているとします。pk1 列は String タイプで、pk2 列は Integer タイプです。

      テーブルからフルデータをエクスポートするには、次のパラメーターを指定します。

      • プライマリキーの範囲 (開始) パラメーターのサンプル

        [
          {
            "type": "INF_MIN"
          },
          {
            "type": "INF_MIN"
          }
        ]
      • プライマリキーの範囲 (終了) パラメーターのサンプル

        [
          {
            "type": "INF_MAX"
          },
          {
            "type": "INF_MAX"
          }
        ]

      pk1 列の値が tablestore である行をエクスポートするには、次のパラメーターを指定します。

      • プライマリキーの範囲 (開始) パラメーターのサンプル

        [
          {
            "type": "STRING",
            "value": "tablestore"
          },
          {
            "type": "INF_MIN"
          }
        ]
      • プライマリキーの範囲 (終了) パラメーターのサンプル

        [  
          {
            "type": "STRING",
            "value": "tablestore"
          },
          {
            "type": "INF_MAX"
          }
        ]

      プライマリキーの範囲 (終了)

      分割設定情報

      データを分割するために使用されるカスタムルール。一般的なシナリオでは、このパラメーターを設定しないことをお勧めします。Tablestore テーブル内でデータが不均一に分散されており、Tablestore Reader の自動分割機能が失敗する場合は、カスタムルールを指定してデータを分割できます。開始プライマリキーと終了プライマリキーの間の範囲内で分割キーを設定できます。すべてのプライマリキーを指定する必要はありません。値は JSON 配列です。

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

      パラメーター

      説明

      テキストタイプ

      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 アイコンをクリックし、OSS に同期するソースフィールドを手動で編集します。宛先フィールドを指定する必要はありません。

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

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

      説明

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

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

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

    重要

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

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

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

      重要
      • ほとんどの場合、フルデータをエクスポートするタスクは 1 回だけ実行されます。そのため、タスクのスケジューリングパラメーターを設定する必要はありません。スケジューリングパラメーターの設定方法については、増分データを OSS に同期する を参照してください。

      • スクリプト設定に ${date} などの変数が含まれている場合は、データを同期するタスクを実行するときに各変数に特定の値を設定します。

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

      {
          "type": "job", // このパラメーターの値は変更できません。
          "version": "2.0", // バージョン番号。このパラメーターの値は変更できません。
          "steps": [
              {
                  "stepType":"ots",// リーダーの名前。このパラメーターの値は変更できません。
                  "parameter":{
                      "datasource":"otssource",// Tablestore データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "newVersion":"true",// 最新バージョンの Tablestore Reader を使用します。
                      "mode": "normal",// 行モードでデータを読み取ります。
                      "isTimeseriesTable":"false",// テーブルを時系列テーブルではなくワイドテーブルとして設定します。
                      "column":[// 必須。OSS にエクスポートする列の名前。
                          {
                              "name":"column1"// Tablestore データソースから OSS にエクスポートする列の名前。
                          },
                          {
                              "name":"column2"
                          },
                          {
                              "name":"column3"
                          },
                          {
                              "name":"column4"
                          },
                          {
                              "name":"column5"
                          }
                      ],
                      "range":{
                          "split":[ // Tablestore 内のデータテーブルのパーティション設定。このパラメーターを指定してエクスポートを高速化できます。ほとんどの場合、このパラメーターを指定する必要はありません。
                          ],
                          "end":[// Tablestore 内の終了プライマリキー列に関する情報。フルデータをエクスポートするには、このパラメーターを INF_MAX に設定します。データの一部のみをエクスポートするには、ビジネス要件に基づいてこのパラメーターを指定します。データテーブルに複数のプライマリキー列が含まれている場合は、end パラメーターのプライマリキー列に関する情報を設定します。
                              {
                                  "type":"STRING",
                                  "value":"endValue"
                              },
                              {
                                  "type":"INT",
                                  "value":"100"
                              },
                              {
                                  "type":"INF_MAX"
                              },
                              {
                                  "type":"INF_MAX"
                              }
                          ],
                          "begin":[// Tablestore 内の開始プライマリキー列に関する情報。フルデータをエクスポートするには、このパラメーターを INF_MIN に設定します。データの一部のみをエクスポートするには、ビジネス要件に基づいてこのパラメーターを指定します。データテーブルに複数のプライマリキー列が含まれている場合は、begin パラメーターのプライマリキー列に関する情報を設定します。
                              {
                                  "type":"STRING",
                                  "value":"beginValue"
                              },
                              {
                                  "type":"INT",
                                  "value":"0"
                              },
                              {
                                  "type":"INF_MIN"
                              },
                              {
                                  "type":"INF_MIN"
                              }
                          ]
                      },
                      "table":"datatable"// Tablestore 内のデータテーブルの名前。
                  },
                  "name":"Reader",
                  "category":"reader"
              },
              {
                  "stepType": "oss",// ライターの名前。このパラメーターの値は変更できません。
                  "parameter": {
                      "nullFormat": "null", // null フィールド値を識別するために使用される文字列。値は空の文字列にすることができます。
                      "dateFormat": "yyyy-MM-dd HH:mm:ss",// 時間の形式。
                      "datasource": "osssource", // OSS データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "envType": 1,
                      "writeSingleObject": true, // 一度に 1 つのオブジェクトを OSS に書き込みます。
                      "writeMode": "truncate", // 指定したオブジェクト名を持つオブジェクトが OSS データソースに存在する場合にシステムによって実行される操作。有効な値: truncate、append、nonConflict。フルデータをエクスポートするには、このパラメーターを truncate に設定します。truncate 値は、システムが OSS データソース内のオブジェクトをクリアすることを指定します。append 値は、システムがデータを OSS データソース内のオブジェクトに追加することを指定します。nonConflict 値は、エラーが報告されることを指定します。
                      "encoding": "UTF-8", // エンコード形式。
                      "fieldDelimiter": ",", // 列を区切るために使用される区切り文字。
                      "fileFormat": "csv", // エクスポートされるファイル形式。有効な値: csv、text、parquet、orc。
                      "object": "tablestore/20231130/myotsdata.csv" // OSS データソース内のオブジェクト名のプレフィックス。プレフィックスにバケット名を含める必要はありません。例: tablestore/20231130/。スケジュールされたエクスポートを実行するには、tablestore/${date} などのプレフィックスに変数を使用する必要があります。次に、スケジューリングパラメーターを設定するときに ${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" // エラー数がこのパラメーターの値を超えると、データは OSS にインポートされません。
              },
              "speed": {
                  "concurrent": 2, // 同時実行数。
                  "throttle": false
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    3. image.png アイコンをクリックして設定を保存します。

      説明

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

  4. 同期タスクを実行する

    重要

    ほとんどの場合、フルデータの同期は 1 回だけ行う必要があり、スケジューリングプロパティを設定する必要はありません。

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

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

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

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

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

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

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

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

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

    重要

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

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

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

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

      重要

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

    3. 宛先 パラメーターを OSS に設定し、データソース名 パラメーターを ステップ 2: OSS データソースを追加する で追加した OSS データソースの名前に設定します。

      リソースグループと宛先データソース間の接続が自動的にテストされます。

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

  3. バッチ同期タスクを設定して保存します。

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

    重要

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

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

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

      重要
      • ほとんどの場合、フルデータをエクスポートするタスクは 1 回だけ実行されます。そのため、タスクのスケジューリングパラメーターを設定する必要はありません。スケジューリングパラメーターの設定方法については、増分データを OSS に同期する を参照してください。

      • スクリプト設定に ${date} などの変数が含まれている場合は、データを同期するタスクを実行するときに各変数に特定の値を設定します。

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

      {
          "type": "job",
          "version": "2.0", // バージョン番号。このパラメーターの値は変更できません。
          "steps": [
              {
                  "stepType":"ots",// リーダーの名前。このパラメーターの値は変更できません。
                  "parameter":{
                      "datasource":"otssource",// Tablestore データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "table": "timeseriestable",// 時系列テーブルの名前。
                      // 時系列データを読み取るには、mode パラメーターを normal に設定する必要があります。
                      "mode": "normal",
                      // 時系列データを読み取るには、newVersion パラメーターを true に設定する必要があります。
                      "newVersion": "true",
                      // テーブルを時系列テーブルとして設定します。
                      "isTimeseriesTable":"true",
                      // オプション。時系列データを読み取るメジャーメントの名前を指定します。このパラメーターを指定しないと、テーブル内のすべてのデータが読み取られます。
                      "measurementName":"measurement_1",
                      "column": [
                          // メジャーメント列の名前。値を _m_name に設定します。列内のデータをエクスポートする必要がない場合は、このパラメーターを指定する必要はありません。
                          {
                              "name": "_m_name"
                          },
                          // データソース列の名前。値を _data_source に設定します。列内のデータをエクスポートする必要がない場合は、このパラメーターを指定する必要はありません。
                          {
                              "name": "_data_source"
                          },
                          // データポイント列のタイムスタンプ。単位: マイクロ秒。name パラメーターを _time に、type パラメーターを INT に設定します。列内のデータをエクスポートする必要がない場合は、このパラメーターを指定する必要はありません。
                          {
                              // 列の名前。
                              "name": "_time",
                              // 列のタイプ。
                              "type":"INT"
                          },
                          // 時系列タグ列の名前。時系列データに複数のタグがある場合は、複数の時系列タグ列を設定できます。
                          {
                              // 時系列タグ列の名前。ビジネス要件に基づいてこのパラメーターを指定します。
                              "name": "tagA",
                              // 列を時系列タグ列として設定するかどうかを指定します。デフォルト値: false。列を時系列タグ列として設定する場合は、このパラメーターを true に設定します。
                              "is_timeseries_tag":"true"
                          },
                          {
                              "name": "double_0",
                              "type":"DOUBLE"
                          },
                          {
                              "name": "string_0",
                              "type":"STRING"
                          },
                          {
                              "name": "long_0",
                              "type":"INT"
                          },
                          {
                              "name": "binary_0",
                              "type":"BINARY"
                          },
                          {
                              "name": "bool_0",
                              "type":"BOOL"
                          }
                      ]
                  },
                  "name":"Reader",
                  "category":"reader"
              },
              {
                  "stepType": "oss",// ライターの名前。このパラメーターの値は変更できません。
                  "parameter": {
                      "nullFormat": "null", // null フィールド値を識別するために使用される文字列。値は空の文字列にすることができます。
                      "dateFormat": "yyyy-MM-dd HH:mm:ss",// 時間の形式。
                      "datasource": "osssource", // OSS データソースの名前。ビジネス要件に基づいてこのパラメーターを指定します。
                      "envType": 1,
                      "writeSingleObject": true, // 一度に 1 つのオブジェクトを OSS に書き込みます。
                      "writeMode": "truncate", // 指定したオブジェクト名を持つオブジェクトが OSS データソースに存在する場合にシステムによって実行される操作。有効な値: truncate、append、nonConflict。フルデータをエクスポートするには、このパラメーターを truncate に設定します。truncate 値は、システムが OSS データソース内のオブジェクトをクリアすることを指定します。append 値は、システムがデータを OSS データソース内のオブジェクトに追加することを指定します。nonConflict 値は、エラーが報告されることを指定します。
                      "encoding": "UTF-8", // エンコード形式。
                      "fieldDelimiter": ",", // 列を区切るために使用される区切り文字。
                      "fileFormat": "csv", // エクスポートされるファイル形式。有効な値: csv、text、parquet、orc。
                      "object": "tablestore/20231130/myotsdata.csv" // OSS データソース内のオブジェクト名のプレフィックス。プレフィックスにバケット名を含める必要はありません。例: tablestore/20231130/。スケジュールされたエクスポートを実行するには、tablestore/${date} などのプレフィックスに変数を使用する必要があります。次に、スケジューリングパラメーターを設定するときに ${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" // エラー数がこのパラメーターの値を超えると、データは OSS にインポートされません。
              },
              "speed": {
                  "concurrent": 2, // 同時実行数。
                  "throttle": false
              }
          },
          "order": {
              "hops": [
                  {
                      "from": "Reader",
                      "to": "Writer"
                  }
              ]
          }
      }
    3. image.png アイコンをクリックして設定を保存します。

      説明

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

  4. 同期タスクを実行する

    重要

    ほとんどの場合、フルデータの同期は 1 回だけ行う必要があり、スケジューリングプロパティを設定する必要はありません。

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

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

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

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

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

ステップ 5: OSS にエクスポートされたデータを表示する

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

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

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

FAQ

参考資料

  • Tablestore から OSS にフルデータをエクスポートした後、Tablestore の増分データを OSS に同期できます。詳細については、増分データを OSS に同期する を参照してください。

  • Tablestore から OSS にフルデータをエクスポートした後、Time-To-Live (TTL) 管理機能を使用して、Tablestore テーブルで不要になった履歴データをクリアできます。詳細については、データバージョンと TTL トピック、または Tablestore コンソールで時系列モデルを使用する トピックの「付録: 時系列テーブルを管理する」セクションを参照してください。

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

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

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