この方法を使用すると、コスト効率よくデータをバックアップしたり、ファイルとしてエクスポートしたりできます。エクスポートされたファイルは、ローカルマシンにダウンロードできます。
前提条件
開始する前に、次の準備をしてください。
ソース Tablestore テーブルに関する情報 (インスタンス名、インスタンスエンドポイント、リージョン ID など) を取得してください。
OSS バケットを作成してください。
Tablestore と OSS の権限を持つ Alibaba Cloud アカウントまたは 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 ロールを引き受けることによってデータソースにアクセスします。このモードを初めて選択する場合は、画面の指示に従って必要な権限を付与してください。
アクセスキーモード:Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID と AccessKey Secret を使用してデータソースにアクセスします。
[ロールの選択]
アクセスモード が RAM ロール権限付与パターン の場合にのみ、RAM ロールを選択する必要があります。
AccessKey ID
Alibaba Cloud アカウントまたは RAM ユーザーのアクセスキー ID とアクセスキー シークレットは、アクセスモード が Access Key モード に設定されている場合にのみ必要です。
AccessKey シークレット
リージョン
バケットが配置されているリージョン。
エンドポイント
OSS アクセスドメイン名については、「リージョンとエンドポイント」をご参照ください。
バケット
バケットの名前。
パラメーターを設定し、接続テストが成功したら、[完了] をクリックします。
ステップ 3:バッチ同期タスクの設定
バッチ同期タスクを作成および設定して、Tablestore から OSS へのデータ転送を定義します。
タスクノードの作成
[データ開発] ページに移動します。
DataWorks コンソールにログインします。
上部メニューで、リソースグループとリージョンを選択します。
左側メニューで、データ開発と O&M > データ開発 をクリックします。
対応するワークスペースを選択し、[Data Studio へ移動] をクリックします。
Data Studio コンソールの [データ開発] ページで、プロジェクトディレクトリ の右側にある
アイコンをクリックし、[新規ノード] > データ統合 > オフライン同期 を選択します。[新規ノード] ダイアログボックスで、[パス] を選択します。データソースを Tablestore に、データ宛先を OSS に設定します。[名前] を入力し、[確認] をクリックします。
同期タスクの設定
プロジェクトディレクトリ で、新しいバッチ同期タスクノードをクリックして開きます。コードレス UI またはコードエディタを使用して、同期タスクを設定します。
コードレス UI
次の項目を設定します。
データソース:ソースと宛先のデータソースを選択します。
[実行中のリソース]:リソースグループを選択します。システムは自動的にデータソースの接続性をテストします。
[データソース]:
[テーブル]:ドロップダウンリストからソースデータテーブルを選択します。
[プライマリキー範囲分布 (開始)]:読み取るプライマリキー範囲の開始。JSON 配列として指定します。値
inf_minは負の無限大を表します。プライマリキーが
int型プライマリキー列 (名前:id) とstring型プライマリキー列 (名前:name) で構成されている場合、次の設定例をご参照ください。プライマリキー範囲
全量データ
[ { "type": "int", "value": "000" }, { "type": "string", "value": "aaa" } ][ { "type": "inf_min" }, { "type": "inf_min" } ][プライマリキー範囲分布 (終了)]:読み取るプライマリキー範囲の終了。JSON 配列として指定します。値
inf_maxは正の無限大を表します。プライマリキーが
int型プライマリキー列 (名前:id) とstring型プライマリキー列 (名前:name) で構成されている場合、次の設定例をご参照ください。プライマリキー範囲
全量データ
[ { "type": "int", "value": "999" }, { "type": "string", "value": "zzz" } ][ { "type": "inf_max" }, { "type": "inf_max" } ][チャンク構成情報]:通常、このパラメーターは不要です。
[]に設定してください。Tablestore データにホットスポットがあり、自動分割ポリシーが効果的でない場合は、カスタム分割ルールを使用します。これらのルールは、プライマリキー範囲内の分割点を定義します。すべてのプライマリキー列ではなく、分割キーのみを設定する必要があります。
[データ転送先]:ターゲットの [テキストタイプ] を選択し、関連するパラメーターを設定します。
[テキストタイプ]:オプションには、[csv]、[text]、[orc]、[parquet] があります。
[ファイル名 (パスを含む)]:OSS バケット内の宛先ファイルのパスと名前。例:
tablestore/resource_table.csv。[列区切り文字]:デフォルトは
,です。区切り文字が印字不可能な文字の場合は、\u001bや\u007cなどの Unicode エンコーディングを入力します。[ファイルパス]:[parquet] テキストタイプの場合にのみ必須です。OSS バケット内のファイルパスを指定します。
[ファイル名]:[parquet] テキストタイプの場合にのみ必須です。OSS バケット内のファイル名を指定します。
[宛先フィールドマッピング]:ソーステーブルのフィールドを宛先ファイルにマッピングします。JSON 形式で指定された各行が 1 つのフィールドを表します。
[ソースフィールド]:ソーステーブルのプライマリキーフィールドと属性列を含みます。
プライマリキーが
int型プライマリキー列 (名前:id) とstring型プライマリキー列 (名前:name) で構成され、int型属性列 (名前:age) がある場合、次の例をご参照ください。{"name":"id","type":"int"} {"name":"name","type":"string"} {"name":"age","type":"int"}[ターゲットフィールド]:ソーステーブルのプライマリキーフィールドと属性列を含みます。
プライマリキーが
int型プライマリキー列 (名前:id) とstring型プライマリキー列 (名前:name) で構成され、int型属性列 (名前:age) がある場合、次の例をご参照ください。{"name":"id","type":"int"} {"name":"name","type":"string"} {"name":"age","type":"int"}
設定を完了したら、ページの上部にある保存をクリックします。
スクリプトモード
ページの上部で、コードエディタ をクリックしてスクリプト編集ビューに切り替えます。
次のスクリプト例は、CSV ファイルにエクスポートするためのものです。ソーステーブルのプライマリキーは、int型列 (名前:id) とstring型列 (名前:name) で構成されています。テーブルには、int型属性列 (名前:age) も含まれています。スクリプトを使用するときは、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宛先バケットでファイルを確認します。
バケットリスト に移動し、宛先バケットをクリックして、結果ファイルを表示またはダウンロードします。
