Lindorm寬表引擎中的表可以導出到本地文件,包括CSV、ORC、Parquet、TXT。通過DataWorks,您可以將Lindorm寬表導出到OSS,再從OSS下載CSV到本地。本文以導出CSV為例,介紹通過DataWorks和OSS將數據導出到本地文件的計費說明、注意事項和操作步驟。
前提條件
已創建DataWorks工作空間。創建步驟,請參見創建工作空間。
已創建DataWorks獨享資源組。創建步驟,請參見新增和使用獨享數據集成資源組。
已創建OSS Bucket。創建步驟,請參見創建存儲空間。
計費說明
本文介紹的方案需使用DataWorks和OSS,除Lindorm外,還涉及以下計費項:
使用限制
僅支持單表全量導出,不支持整庫導出,也不支持增量導出。
步驟一:導出數據到OSS
1. 添加Lindorm數據源
- 進入管理中心。
- 單擊左側導航欄的數據源管理。
單擊頁面右上角的新增數據源,選擇數據源類型為Lindorm。按彈窗提示,填寫數據源的配置項。
2. 添加OSS數據源
- 進入管理中心。
- 單擊左側導航欄的數據源管理。
單擊頁面右上角的新增數據源,選擇數據源類型為OSS。按彈窗提示,填寫數據源的配置項。
3. 配置離線同步任務
進入數據開發頁面。
登錄DataWorks控制臺,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入數據開發。
- 鼠標懸停至圖標,單擊新建業務流程。
- 在新建業務流程對話框中,輸入業務名稱和描述。
- 單擊新建。
配置網絡與資源配置,并測試連通性,然后單擊下一步。
數據來源選擇Lindorm,數據源名稱選擇步驟1添加的Lindorm數據源。
數據去向選擇OSS,數據源名稱選擇步驟2添加的OSS數據源。
我的資源組選擇獨享資源組。資源組用于執行同步任務。如果還沒有創建獨享資源組,創建方法請參見新增和使用獨享調度資源組。
配置數據來源。
選擇表類型與表。
如果您的表是通過SQL創建的,表類型請選擇TableService。如果您的表是通過HBase API創建的,表類型請選擇WideColumn。如果表包含動態列,表類型請選擇WideColumn。
如果沒有找到您的表,可以切換表類型。
選擇讀取方式。
如果表中包含動態列,請選擇豎表。否則請選擇橫表。
配置數據去向。
選擇文本類型為csv。您也可以選擇其他文本類型,詳細介紹請參見OSS數據源。
設置文件名(含路徑)和列分隔符等。
(可選)配置表頭。如果希望導出的CSV文件包含表頭,可參考本步驟。
單擊工具欄中的轉換腳本圖標。
在OSS Writer腳本中增加
header
配置。以下為導出包含表頭的CSV文件的完整腳本示例。
導出SQL表
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "selects": [], "mode": "FixedColumn", "datasource": "lindorm", "columns": [ "id", "name", "address" ], "envType": 1, "tableMode": "tableService", "encoding": "UTF-8", "caching": 128, "table": "tb" }, "name": "Reader", "category": "reader" }, { "stepType": "oss", "parameter": { "fieldDelimiterOrigin": ",", "nullFormat": "null", "dateFormat": "yyyy-MM-dd HH:mm:ss", "datasource": "oss_lindorm", "header": [ "id", "name", "address" ], "envType": 1, "writeSingleObject": true, "writeMode": "truncate", "encoding": "UTF-8", "fieldDelimiter": ",", "fileFormat": "csv", "object": "lindorm_sql" }, "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 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
導出HBase表
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "lindorm", "parameter": { "selects": [], "mode": "FixedColumn", "datasource": "lindorm", "columns": [ "STRING|rowkey", "STRING|cf:a", "STRING|cf:b", "STRING|cf:c" ], "envType": 1, "tableMode": "wideColumn", "encoding": "UTF-8", "caching": 128, "table": "test" }, "name": "Reader", "category": "reader" }, { "stepType": "oss", "parameter": { "fieldDelimiterOrigin": ",", "nullFormat": "null", "dateFormat": "yyyy-MM-dd HH:mm:ss", "datasource": "oss_lindorm", "envType": 1, "writeSingleObject": true, "header": [ "rowkey", "cf:a", "cf:b", "cf:c" ], "writeMode": "truncate", "encoding": "UTF-8", "fieldDelimiter": ",", "fileFormat": "csv", "object": "from_lindorm_hbase" }, "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, "concurrent": 2 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
更多關于OSS數據源腳本的參考信息,請參見附錄:腳本Demo與參數說明。
(可選)配置通道與調度屬性。完成前7步,已經可以導出CSV。如果您還想進一步控制數據同步的過程屬性,例如任務并發、同步速率等,請參見通過向導模式配置離線同步任務。
單擊工具欄中的保存圖標,然后單擊運行圖標。單擊運行圖標后,數據將導出至OSS。
步驟二:從OSS下載數據
登錄OSS管理控制臺。
單擊Bucket 列表,然后單擊目標Bucket名稱。
根據配置離線同步任務步驟中設置的數據去向文件名,找到文件。單擊操作列的下載,將文件下載到本地。