全部產品
Search
文件中心

Tablestore:匯出全量資料到OSS

更新時間:Nov 21, 2025

通過DataWorksData Integration服務將Table Store中的全量資料匯出到OSS,可實現以更低成本備份資料或將資料以檔案形式匯出到本地。全量資料匯出到OSS後,可自由下載檔案到本地進行進一步處理。

前提條件

開始資料匯出前,需要完成以下準備工作:

說明

當DataWorks和Tablestore執行個體位於不同地區時,需要建立VPC對等串連實現跨地區網路連通。

建立VPC對等串連實現跨地區網路連通

以下以源表執行個體位於華東2(上海)地區,DataWorks工作空間位於華東1(杭州)地區的情境為例進行說明。

  1. 為Tablestore執行個體綁定VPC。

    1. 登入Table Store控制台,在頁面上方選擇目標表所在地區。

    2. 單擊執行個體別名進入執行個體管理頁面。

    3. 切換到網路管理頁簽,單擊綁定VPC,選擇VPC和交換器並填寫VPC名稱,然後單擊確定

    4. 等待VPC綁定完成,頁面將自動重新整理,可在VPC列表查看綁定的VPC IDVPC訪問地址

      說明

      在DataWorks控制台添加Tablestore資料來源時,需使用該VPC訪問地址。

      image

  2. 擷取DataWorks工作空間資源群組的VPC資訊。

    1. 登入DataWorks控制台,在頁面上方選擇工作空間所在地區,然後單擊左側工作空間菜單,進入工作空間列表頁面。

    2. 單擊工作空間名稱進入空間詳情頁面,單擊左側資源群組菜單,查看工作空間綁定的資源群組列表。

    3. 在目標資源群組右側單擊網路設定,在資源調度 & Data Integration地區查看綁定的專用網路,即VPC ID

  3. 建立VPC對等串連並配置路由。

    1. 登入Virtual Private Cloud控制台,在頁面左側單擊VPC對等串連菜單,然後單擊建立對等串連

    2. 建立對等串連頁面,輸入對等串連名稱,選擇發起端VPC執行個體、接收端帳號類型、接收端地區和接收端VPC執行個體,單擊確定

    3. VPC對等串連頁面,找到已建立的VPC對等串連,分別在發起端接收端列單擊配置路由條目

      目標網段需填寫對端VPC的網段地址。即在發起端配置路由條目時,填寫接收端的網段地址;在接收端配置路由條目時,填寫發起端的網段地址。

操作步驟

按照以下步驟配置並執行資料匯出任務。

步驟一:新增Table Store資料來源

首先在DataWorks中配置Table Store資料來源,建立與來源資料的串連。

  1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的Data Integration > Data Integration,在下拉框中選擇對應工作空間後單擊進入Data Integration

  2. 在左側導覽列,單擊資料來源

  3. 資料來源列表頁面,單擊新增資料來源

  4. 新增資料來源對話方塊,搜尋並選擇資料來源類型為Tablestore

  5. 新增OTS資料來源對話方塊,根據下表配置資料來源參數。

    參數

    說明

    資料來源名稱

    資料來源名稱必須以字母、數字、底線(_)組合,且不能以數字和底線(_)開頭。

    資料來源描述

    對資料來源進行簡單描述,不得超過80個字元。

    地區

    選擇Tablestore執行個體所屬地區。

    Table Store執行個體名稱

    Tablestore執行個體的名稱。

    Endpoint

    Tablestore執行個體的服務地址,推薦使用VPC地址

    AccessKey ID

    阿里雲帳號或者RAM使用者的AccessKey ID和AccessKey Secret。

    AccessKey Secret

  6. 測試資源群組連通性。

    建立資料來源時,需要測試資源群組的連通性,確保同步任務使用的資源群組能夠與資料來源正常連通,否則將無法正常執行資料同步任務。

    1. 串連配置地區,單擊相應資源群組連通狀態列的測試連通性

    2. 測試連通性通過後,連通狀態顯示可連通,單擊完成。可在資料來源列表中查看建立的資料來源。

      如果測試連通性結果為無法通過,可使用連通性診斷工具自助解決。

步驟二:新增OSS資料來源

配置OSS資料來源作為資料匯出的目標儲存。

  1. 再次單擊新增資料來源,在對話方塊中搜尋並選擇資料來源類型為OSS,並配置相關的資料來源參數。

    參數

    說明

    資料來源名稱

    資料來源名稱必須以字母、數字、底線(_)組合,且不能以數字和底線(_)開頭。

    資料來源描述

    對資料來源進行簡單描述,不得超過80個字元。

    訪問模式

    • RAM角色授權模式:DataWorks服務帳號以角色扮演的方式訪問資料來源。首次選擇該模式時,請根據頁面提示開啟授權。

    • Access Key模式:通過阿里雲帳號或者RAM使用者的AccessKey ID和AccessKey Secret訪問資料來源。

    選擇角色

    僅當訪問模式RAM角色授權模式時需要選擇RAM角色。

    AccessKey ID

    僅當訪問模式Access Key模式時需要填寫。阿里雲帳號或者RAM使用者的AccessKey ID和AccessKey Secret。

    AccessKey Secret

    地區

    Bucket所在地區。

    Endpoint

    OSS訪問網域名稱,詳見地區和Endpoint

    Bucket

    Bucket名稱。

  2. 完成參數和連通性測試後,單擊完成添加資料來源。

步驟三:配置離線同步任務

建立並配置資料同步任務,定義從Table Store到OSS的資料轉送規則。

建立任務節點

  1. 進入資料開發頁面。

    1. 登入DataWorks控制台

    2. 在頁面上方,選擇資源群組和地區。

    3. 在左側導覽列,單擊資料開發與營運 > 資料開發

    4. 選擇對應工作空間後單擊進入Data Studio

  2. 在Data Studio控制台的資料開發頁面,單擊專案目錄右側的image表徵圖,然後選擇建立節點 > Data Integration > 離線同步

  3. 建立節點對話方塊,選擇路徑,資料來源選擇Tablestore,資料去向選擇OSS,填寫名稱,然後單擊確認

配置同步任務

專案目錄下,單擊開啟建立的離線同步任務節點,通過嚮導模式或指令碼模式配置同步任務。

嚮導模式(預設)

配置以下內容:

  • 資料來源:選擇來來源資料源和去向資料來源。

  • 運行資源:選擇資源群組,選擇後會自動檢測資料來源連通性。

  • 資料來源

    • :下拉選擇來來源資料表。

    • 主鍵區間分布(起始):資料讀取的起始主鍵,格式為JSON數組,inf_min表示無限小。

      當主鍵包含1個int類型的主鍵列id和1個string類型的主鍵列name時,樣本配置如下:

      指定主鍵範圍

      全量資料

      [
        {
          "type": "int",
          "value": "000"
        },
        {
          "type": "string",
          "value": "aaa"
        }
      ]
      [
        {
          "type": "inf_min"
        },
        {
          "type": "inf_min"
        }
      ]
    • 主鍵區間分布(結束):資料讀取的結束主鍵,格式為JSON數組,inf_max表示無限大。

      當主鍵包含1個int類型的主鍵列id和1個string類型的主鍵列name時,樣本配置如下:

      指定主鍵範圍

      全量資料

      [
        {
          "type": "int",
          "value": "999"
        },
        {
          "type": "string",
          "value": "zzz"
        }
      ]
      [
        {
          "type": "inf_max"
        },
        {
          "type": "inf_max"
        }
      ]
    • 切分配置資訊:自訂切分配置資訊,格式為JSON數組,普通情況下不建議配置(設定為[])。

      當Tablestore資料存放區發生熱點,且使用Tablestore Reader自動切分的策略不能生效時,建議使用自訂的切分規則。切分指定的是在主鍵起始和結束區間內的切分點,僅配置切分鍵,無需指定全部的主鍵。

  • 資料去向:選擇目標文本類型,並配置相關參數。

    • 文本類型:可選類型包括csvtextorcparquet

    • 檔案名稱(含路徑):OSS Bucket內包含路徑的檔案名稱,如tablestore/resouce_table.csv

    • 資料行分隔符號:預設為,,如果分隔字元不可見,請填寫Unicode編碼,比如\u001b\u007c

    • 檔案路徑:僅當文本類型為parquet時填寫,OSS Bucket內的檔案路徑。

    • 檔案名稱:僅當文本類型為parquet時填寫,OSS Bucket內的檔案名稱。

  • 去向欄位對應:配置來來源資料表到目標檔案的欄位對應,一行表示一個欄位,格式為JSON。

    • 來源欄位:包含來來源資料表的主鍵欄位和屬性欄欄位。

      當主鍵包含1個int類型的主鍵列id和1個string類型的主鍵列name,屬性列包含1個int類型的欄位age時,樣本配置如下:

      {"name":"id","type":"int"}
      {"name":"name","type":"string"}
      {"name":"age","type":"int"}
    • 目標欄位:包含來來源資料表的主鍵欄位和屬性欄欄位。

      當主鍵包含1個int類型的主鍵列id和1個string類型的主鍵列name,屬性列包含1個int類型的欄位age時,樣本配置如下:

      {"name":"id","type":"int"}
      {"name":"name","type":"string"}
      {"name":"age","type":"int"}

配置完成後,單擊頁面上方的儲存

指令碼模式

單擊頁面上方的指令碼模式,在切換後的頁面中編輯指令碼。

以下樣本配置以目標檔案類型為csv為例,來來源資料表主鍵包含1個int類型的主鍵列id和1個string類型的主鍵列name,屬性列包含1個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"
            }
        ]
    }
}

指令碼編輯完成後,單擊頁面上方的儲存

運行同步任務

單擊頁面上方的運行,開始同步任務,首次運行時需確認調試配置

步驟四:查看同步結果

運行同步任務後,可通過日誌查看任務的執行狀態,並在OSS Bucket查看同步結果檔案。

  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. 查看目標Bucket的檔案。

    前往Bucket列表,單擊目標Bucket,查看或下載同步結果檔案。

常見問題

相關文檔