DataWorks データ統合サービスを使用して、Tablestore から OSS に完全データをエクスポートできます。これにより、より低コストでデータをバックアップしたり、データをファイルとしてローカルマシンにエクスポートしたりできます。完全データを OSS にエクスポートした後、ファイルをローカルマシンにダウンロードしてさらに処理することができます。
前提条件
データをエクスポートする前に、次の前提条件が満たされていることを確認してください。
ソース Tablestore テーブルのインスタンス名、エンドポイント、リージョン ID、およびその他の情報を取得します。
Alibaba Cloud アカウントまたは Tablestore と OSS の権限を持つ Resource Access Management (RAM) ユーザーの AccessKey を作成する。
DataWorks を有効化し、OSS バケットまたは Tablestore インスタンスが配置されているリージョンに ワークスペースを作成します。
サーバーレスリソースグループを作成し、ワークスペースにアタッチします。課金の詳細については、「サーバーレスリソースグループの課金」をご参照ください。
DataWorks ワークスペースと Tablestore インスタンスが異なるリージョンにある場合は、VPC ピアリング接続を作成して、リージョン間のネットワーク接続を有効にする必要があります。
手順
次のステップに従って、データエクスポートタスクを設定および実行します。
ステップ 1: Tablestore データソースの追加
まず、DataWorks で Tablestore データソースを設定して、ソースデータに接続します。
DataWorks コンソールにログインします。宛先リージョンに切り替えます。左側のナビゲーションウィンドウで、 を選択します。ドロップダウンリストからワークスペースを選択し、[データ統合へ] をクリックします。
左側のナビゲーションウィンドウで、[データソース] をクリックします。
[データソースリスト] ページで、[データソースの追加] をクリックします。
[データソースの追加] ダイアログボックスで、データソースタイプとして [Tablestore] を検索して選択します。
[OTS データソースの追加] ダイアログボックスで、次の表の説明に従ってデータソースパラメーターを設定します。
パラメーター
説明
データソース名
データソース名は、文字、数字、アンダースコア (_) の組み合わせである必要があります。数字またはアンダースコア (_) で始めることはできません。
データソースの説明
データソースの簡単な説明。説明は 80 文字以内にする必要があります。
リージョン
Tablestore インスタンスが存在するリージョンを選択します。
Tablestore インスタンス名
Tablestore インスタンスの名前。
エンドポイント
Tablestore インスタンスのエンドポイント。VPC エンドポイントを使用します。
AccessKey ID
Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。
AccessKey Secret
リソースグループの接続性をテストします。
データソースを作成するときは、リソースグループの接続性をテストして、同期タスクのリソースグループがデータソースに接続できることを確認する必要があります。そうしないと、データ同期タスクを実行できません。
[接続設定] セクションで、リソースグループの [接続ステータス] 列にある [接続性のテスト] をクリックします。
接続性テストに合格すると、[接続ステータス] が [接続済み] に変わります。[完了] をクリックします。新しいデータソースがデータソースリストに表示されます。
接続性テストが [失敗] した場合は、[接続診断ツール] を使用して問題をトラブルシューティングします。
ステップ 2: OSS データソースの追加
データエクスポートの宛先として OSS データソースを設定します。
もう一度 [データソースの追加] をクリックします。ダイアログボックスで、データソースタイプとして [OSS] を検索して選択し、データソースパラメーターを設定します。
パラメーター
説明
データソース名
データソース名は、文字、数字、アンダースコア (_) で構成する必要があります。数字またはアンダースコア (_) で始めることはできません。
データソースの説明
データソースの簡単な説明。説明は 80 文字以内にする必要があります。
アクセスモード
RAM ロール認証: DataWorks サービスアカウントは、RAM ロールを引き受けることでデータソースにアクセスします。このモードを初めて選択する場合は、画面の指示に従って必要な権限を付与します。
Access Key モード: Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret を使用してデータソースにアクセスします。
ロールの選択
このパラメーターは、[アクセスモード] を [RAM ロール認証] に設定した場合にのみ必要です。
AccessKey ID
これらのパラメーターは、[アクセスモード] を [Access Key モード] に設定した場合にのみ必要です。Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret。
AccessKey Secret
リージョン
バケットが配置されているリージョン。
エンドポイント
OSS ドメイン名。詳細については、「リージョンとエンドポイント」をご参照ください。
バケット
バケットの名前。
パラメーターを設定し、接続性テストに合格したら、[完了] をクリックしてデータソースを追加します。
ステップ 3: オフライン同期タスクの設定
データ同期タスクを作成および設定して、Tablestore から OSS へのデータ転送ルールを定義します。
タスクノードの作成
[データ開発] ページに移動します。
DataWorks コンソールにログインします。
上部のナビゲーションバーで、リソースグループとリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
対応するワークスペースを選択し、[DataStudio へ] をクリックします。
DataStudio コンソールの [データ開発] ページで、[プロジェクトフォルダー] の右側にある
アイコンをクリックし、 を選択します。[ノードの作成] ダイアログボックスで、[パス] を選択し、データソースを Tablestore に、データ宛先を OSS に設定し、[名前] を入力して、[確認] をクリックします。
同期タスクの設定
[プロジェクトフォルダ] で、オフライン同期タスクノードをクリックし、コードレス UI またはコードエディタで同期タスクを設定します。
コードレス UI (デフォルト)
次の項目を設定します。
データソース: ソースと宛先のデータソースを選択します。
ランタイムリソース: リソースグループを選択します。選択後、システムは自動的にデータソースの接続性をテストします。
データソース:
テーブル: ドロップダウンリストからソーステーブルを選択できます。
プライマリキー範囲 (開始): 読み取る範囲の開始プライマリキー。値は JSON 配列です。
inf_minは負の無限大を表します。プライマリキーに
idという名前のint列とnameという名前のstring列が含まれている場合、次の設定が例です。指定されたプライマリキー範囲
完全データ
[ { "type": "int", "value": "000" }, { "type": "string", "value": "aaa" } ][ { "type": "inf_min" }, { "type": "inf_min" } ]プライマリキー範囲 (終了): データ読み取りのプライマリキー範囲の終わり。JSON 配列として指定します。
inf_maxは正の無限大を表します。プライマリキーに
idという名前のint列とnameという名前のstring列が含まれている場合、次の設定が例です。指定されたプライマリキー範囲
完全データ
[ { "type": "int", "value": "999" }, { "type": "string", "value": "zzz" } ][ { "type": "inf_max" }, { "type": "inf_max" } ]シャード設定: JSON 配列形式のカスタムシャード設定。通常、このパラメーターは
[]に設定することで未設定のままにできます。Tablestore データストレージでホットスポットが発生し、Tablestore Reader の自動シャーディングポリシーが効果的でない場合は、カスタムシャーディングルールを使用することをお勧めします。カスタムシャーディングルールを使用すると、プライマリキー範囲内でシャードキーを指定できます。すべてのプライマリキーではなく、シャードキーのみを設定する必要があります。
データ宛先: [テキストタイプ] を選択し、対応するパラメーターを設定します。
テキストタイプ: 有効値は csv、text、orc、および parquet です。
ファイル名 (パスを含む): OSS バケット内のファイルの完全なパス。例:
tablestore/resource_table.csv。列区切り文字: デフォルト値は
,です。区切り文字が印刷不可能な文字の場合は、\u001bや\u007cなどの Unicode エンコーディングを入力します。ファイルパス: OSS バケット内のファイルのパス。このパラメーターは parquet ファイルタイプの場合にのみ必要です。
ファイル名: OSS バケット内のファイルの名前。このパラメーターは parquet 形式のファイルの場合にのみ必要です。
宛先フィールドマッピング: ソーステーブルのフィールドを宛先ファイルにマッピングします。各行は JSON 形式のフィールドを表します。
ソースフィールド: ソーステーブルのプライマリキーフィールドと属性列。
プライマリキーに
idという名前のint列とnameという名前のstring列が含まれ、属性列にageという名前のintフィールドが含まれている場合、次の設定が例です。{"name":"id","type":"int"} {"name":"name","type":"string"} {"name":"age","type":"int"}宛先フィールド: ソーステーブルのプライマリキーフィールドと属性列。
プライマリキーに
idという名前のint列とnameという名前のstring列が含まれ、属性列にageという名前のintフィールドが含まれている場合、次の設定が例です。{"name":"id","type":"int"} {"name":"name","type":"string"} {"name":"age","type":"int"}
設定を保存するには、ページの上部にある [保存] をクリックします。
コードエディタ
ページの上部にある [コードエディタ] をクリックします。コードエディタが開きます。スクリプトを編集します。
次の例は、宛先ファイルタイプが CSV である設定を示しています。ソーステーブルには、idという名前のint列とnameという名前のstring列を含むプライマリキーがあります。属性列はageという名前のintフィールドです。スクリプトを設定するときは、サンプルスクリプトのdatasource、テーブル名table、および宛先ファイル名objectを実際の値に置き換えてください。
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "ots",
"parameter": {
"datasource": "source_data",
"column": [
{
"name": "id",
"type": "int"
},
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
],
"range": {
"begin": [
{
"type": "inf_min"
},
{
"type": "inf_min"
}
],
"end": [
{
"type": "inf_max"
},
{
"type": "inf_max"
}
],
"split": []
},
"table": "source_table",
"newVersion": "true"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "oss",
"parameter": {
"dateFormat": "yyyy-MM-dd HH:mm:ss",
"datasource": "target_data",
"writeSingleObject": false,
"column": [
{
"name": "id",
"type": "int"
},
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
],
"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"
}
]
}
}スクリプトを編集した後、ページの上部にある [保存] をクリックします。
同期タスクの実行
ページの上部にある [実行] をクリックして同期タスクを開始します。タスクを初めて実行するときは、[デバッグ設定] を確認する必要があります。
ステップ 4: 同期結果の表示
同期タスクが完了したら、ログで実行ステータスを表示し、OSS バケットで結果ファイルを確認できます。
ページの下部でタスクの実行ステータスと結果を表示します。次のログ情報は、同期タスクが正常に実行されたことを示しています。
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宛先バケット内のファイルを表示します。
[バケットリスト] に移動します。宛先バケットをクリックして、結果ファイルを表示またはダウンロードします。
