將MaxCompute數(shù)據(jù)同步到表格存儲(chǔ)
如果需要將MaxCompute計(jì)算分析后的數(shù)據(jù)同步到表格存儲(chǔ)中存儲(chǔ)或者使用,您可以通過在DataWorks數(shù)據(jù)集成控制臺(tái)新建和配置離線同步任務(wù)來實(shí)現(xiàn)全量數(shù)據(jù)導(dǎo)出。全量數(shù)據(jù)導(dǎo)出到表格存儲(chǔ)后,您可以使用表格存儲(chǔ)查詢與分析數(shù)據(jù)。
背景信息
表格存儲(chǔ)(Tablestore)面向海量結(jié)構(gòu)化數(shù)據(jù)提供Serverless表存儲(chǔ)服務(wù),同時(shí)針對(duì)物聯(lián)網(wǎng)場(chǎng)景深度優(yōu)化提供一站式的IoTstore解決方案。適用于海量賬單、IM消息、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、風(fēng)控、推薦等場(chǎng)景中的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),提供海量數(shù)據(jù)低成本存儲(chǔ)、毫秒級(jí)的在線數(shù)據(jù)查詢和檢索以及靈活的數(shù)據(jù)分析能力。更多信息,請(qǐng)參見什么是表格存儲(chǔ)。
云原生大數(shù)據(jù)計(jì)算服務(wù)(MaxCompute)是一種快速、完全托管的TB/PB級(jí)數(shù)據(jù)倉(cāng)庫(kù)解決方案。MaxCompute向用戶提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計(jì)算模型,能夠更快速的解決用戶海量數(shù)據(jù)計(jì)算問題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。更多信息,請(qǐng)參見什么是MaxCompute。
DataWorks基于MaxCompute、Hologres、EMR、AnalyticDB、CDP等大數(shù)據(jù)引擎,為數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖、湖倉(cāng)一體等解決方案提供統(tǒng)一的全鏈路大數(shù)據(jù)開發(fā)治理平臺(tái)。DataWorks數(shù)據(jù)集成是穩(wěn)定高效、彈性伸縮的數(shù)據(jù)同步平臺(tái),致力于提供復(fù)雜網(wǎng)絡(luò)環(huán)境下、豐富的異構(gòu)數(shù)據(jù)源之間高速穩(wěn)定的數(shù)據(jù)移動(dòng)及同步能力。更多信息,請(qǐng)參見DataWorks數(shù)據(jù)集成。
您可以通過DataWorks數(shù)據(jù)集成功能將MaxCompute計(jì)算分析后的數(shù)據(jù)同步到表格存儲(chǔ)中,提升應(yīng)用的讀寫和搜索效率。
前提條件
已確認(rèn)和記錄MaxCompute中要同步到表格存儲(chǔ)的表信息。
已創(chuàng)建RAM用戶并為RAM用戶授予管理表格存儲(chǔ)權(quán)限(AliyunOTSFullAccess)和管理DataWorks權(quán)限(AliyunDataWorksFullAccess)。具體操作,請(qǐng)參見創(chuàng)建RAM用戶和為RAM用戶授權(quán)。
已為RAM用戶創(chuàng)建AccessKey。具體操作,請(qǐng)參見創(chuàng)建AccessKey。
已開通表格存儲(chǔ)服務(wù),創(chuàng)建表格存儲(chǔ)實(shí)例以及創(chuàng)建數(shù)據(jù)表。具體操作,請(qǐng)參見開通表格存儲(chǔ)服務(wù)、創(chuàng)建實(shí)例和創(chuàng)建數(shù)據(jù)表。
步驟一:新增表格存儲(chǔ)數(shù)據(jù)源
將表格存儲(chǔ)添加為數(shù)據(jù)源,具體步驟如下:
進(jìn)入數(shù)據(jù)集成頁面。
登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)集成。
在左側(cè)導(dǎo)航欄,單擊數(shù)據(jù)源。
在數(shù)據(jù)源列表頁面,單擊新增數(shù)據(jù)源。
在新增數(shù)據(jù)源對(duì)話框,找到Tablestore區(qū)塊,單擊Tablestore。
在新增OTS數(shù)據(jù)源對(duì)話框,根據(jù)下表配置數(shù)據(jù)源參數(shù)。
參數(shù)
說明
數(shù)據(jù)源名稱
數(shù)據(jù)源名稱必須以字母、數(shù)字、下劃線(_)組合,且不能以數(shù)字和下劃線(_)開頭。
數(shù)據(jù)源描述
對(duì)數(shù)據(jù)源進(jìn)行簡(jiǎn)單描述,不得超過80個(gè)字符。
Endpoint
Tablestore實(shí)例的服務(wù)地址。更多信息,請(qǐng)參見服務(wù)地址。
如果Tablestore實(shí)例和目標(biāo)數(shù)據(jù)源的資源在同一個(gè)地域,填寫VPC地址;如果Tablestore實(shí)例和目標(biāo)數(shù)據(jù)源的資源不在同一個(gè)地域,填寫公網(wǎng)地址。
Table Store實(shí)例名稱
Tablestore實(shí)例的名稱。更多信息,請(qǐng)參見實(shí)例。
AccessKey ID
阿里云賬號(hào)或者RAM用戶的AccessKey ID和AccessKey Secret。獲取方式請(qǐng)參見創(chuàng)建AccessKey。
AccessKey Secret
測(cè)試資源組連通性。
創(chuàng)建數(shù)據(jù)源時(shí),您需要測(cè)試資源組的連通性,以保證同步任務(wù)使用的資源組能夠與數(shù)據(jù)源連通,否則將無法正常執(zhí)行數(shù)據(jù)同步任務(wù)。
重要數(shù)據(jù)同步時(shí),一個(gè)任務(wù)只能使用一種資源組。資源組列表默認(rèn)顯示僅數(shù)據(jù)集成公共資源組。為確保數(shù)據(jù)同步的穩(wěn)定性和性能要求,推薦使用獨(dú)享數(shù)據(jù)集成資源組。
單擊前往購(gòu)買進(jìn)行全新創(chuàng)建并綁定資源組到工作空間或單擊綁定已購(gòu)資源組為工作空間綁定已有資源組。具體操作,請(qǐng)參見新增和使用獨(dú)享數(shù)據(jù)集成資源組。
待資源組啟動(dòng)成功后,單擊相應(yīng)資源組連通狀態(tài)(生產(chǎn)環(huán)境)列的測(cè)試連通性。
當(dāng)連通狀態(tài)顯示為可連通時(shí),表示連通成功。
測(cè)試連通性通過后,單擊完成。
在數(shù)據(jù)源列表中,可以查看新建的數(shù)據(jù)源。
步驟二:新增MaxCompute數(shù)據(jù)源
當(dāng)要使用當(dāng)前工作空間默認(rèn)生成的odps_first數(shù)據(jù)源時(shí),請(qǐng)?zhí)^此步驟。
具體操作與步驟一類似,只需在新增數(shù)據(jù)源對(duì)話框,找到MaxCompute區(qū)塊,單擊MaxCompute。
數(shù)據(jù)同步時(shí),一個(gè)任務(wù)只能使用一種資源組。資源組列表默認(rèn)僅顯示獨(dú)享數(shù)據(jù)集成資源組,為確保數(shù)據(jù)同步的穩(wěn)定性和性能要求,推薦使用獨(dú)享數(shù)據(jù)集成資源組。
如果未創(chuàng)建資源組,請(qǐng)單擊新建獨(dú)享數(shù)據(jù)集成資源組進(jìn)行創(chuàng)建。具體操作,請(qǐng)參見新增和使用獨(dú)享數(shù)據(jù)集成資源組。
步驟三:新建同步任務(wù)節(jié)點(diǎn)
進(jìn)入數(shù)據(jù)開發(fā)頁面。
登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的 ,在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)開發(fā)。
在DataStudio控制臺(tái)的數(shù)據(jù)開發(fā)頁面,單擊業(yè)務(wù)流程節(jié)點(diǎn)下的目標(biāo)業(yè)務(wù)流程。
如果需要新建業(yè)務(wù)流程,請(qǐng)參見創(chuàng)建業(yè)務(wù)流程。
在數(shù)據(jù)集成節(jié)點(diǎn)上右鍵選擇新建節(jié)點(diǎn) > 離線同步。
在新建節(jié)點(diǎn)對(duì)話框,選擇路徑并填寫節(jié)點(diǎn)名稱。
單擊確認(rèn)。
在數(shù)據(jù)集成節(jié)點(diǎn)下會(huì)顯示新建的離線同步節(jié)點(diǎn)。
步驟四:配置離線同步任務(wù)并啟動(dòng)
新建并配置MaxCompute到表格存儲(chǔ)的同步任務(wù),具體步驟如下:
在數(shù)據(jù)集成節(jié)點(diǎn)下,雙擊打開新建的離線同步任務(wù)節(jié)點(diǎn)。
配置同步網(wǎng)絡(luò)鏈接。
選擇離線同步任務(wù)的數(shù)據(jù)來源、數(shù)據(jù)去向以及用于執(zhí)行同步任務(wù)的資源組,并測(cè)試連通性。
重要數(shù)據(jù)同步任務(wù)的執(zhí)行必須經(jīng)過資源組來實(shí)現(xiàn),請(qǐng)選擇資源組并保證資源組與讀寫兩端的數(shù)據(jù)源能聯(lián)通訪問。
在網(wǎng)絡(luò)與資源配置步驟,選擇數(shù)據(jù)來源為MaxCompute(ODPS),并選擇數(shù)據(jù)源名稱為MaxCompute數(shù)據(jù)源。
選擇資源組。
選擇資源組后,系統(tǒng)會(huì)顯示資源組的地域、規(guī)格等信息以及自動(dòng)測(cè)試資源組與所選數(shù)據(jù)源之間連通性。
重要請(qǐng)與新增數(shù)據(jù)源時(shí)選擇的資源組保持一致。
選擇數(shù)據(jù)去向為Tablestore,并選擇數(shù)據(jù)源名稱為表格存儲(chǔ)數(shù)據(jù)源。
系統(tǒng)會(huì)自動(dòng)測(cè)試資源組與所選數(shù)據(jù)源之間連通性。
測(cè)試可連通后,單擊下一步。
在提示對(duì)話框,單擊確認(rèn)使用腳本模式。
重要表格存儲(chǔ)僅支持腳本模式。當(dāng)存在不支持向?qū)J降臄?shù)據(jù)源時(shí),如果繼續(xù)編輯任務(wù),將強(qiáng)制使用腳本模式進(jìn)行編輯。
任務(wù)轉(zhuǎn)為腳本模式后,將無法轉(zhuǎn)為向?qū)J健?/p>
配置任務(wù)并保存。
全量數(shù)據(jù)的同步需要使用到MaxCompute Reader和Tablestore(OTS) Writer插件。腳本配置規(guī)則請(qǐng)參見MaxCompute數(shù)據(jù)源和Tablestore數(shù)據(jù)源。
在腳本配置頁面,請(qǐng)根據(jù)如下示例完成配置。
重要由于全量導(dǎo)出一般是一次性的,所以無需配置自動(dòng)調(diào)度參數(shù)。
為了便于理解,在配置示例中增加了注釋內(nèi)容,實(shí)際使用腳本時(shí)請(qǐng)刪除所有注釋內(nèi)容。
{ "type": "job", "version": "2.0", "steps": [ { "stepType": "odps", #插件名稱,不能修改。 "parameter": { "partition": [], #如果表為分區(qū)表,則必填。如果表為非分區(qū)表,則不能填寫。需要寫入數(shù)據(jù)表的分區(qū)信息,必須指定到最后一級(jí)分區(qū)。 "datasource": "", #MaxCompute數(shù)據(jù)源名稱,請(qǐng)根據(jù)實(shí)際填寫。 "column": [ #需要導(dǎo)出的MaxCompute列名。 "*" ], "table": "" #MaxCompute中的表名。 }, "name": "Reader", "category": "reader" }, { "stepType": "ots", #插件名稱,不能修改。 "parameter": { "datasource": "", #表格存儲(chǔ)數(shù)據(jù)源名稱,請(qǐng)根據(jù)實(shí)際填寫。 "column": [ #作為數(shù)據(jù)表屬性列的列。 { "name": "columnName1", "type": "INT" }, { "name": "columnName2", "type": "STRING" }, { "name": "columnName3", "type": "DOUBLE" }, { "name": "columnName4", "type": "BOOLEAN" }, { "name": "columnName5", "type": "BINARY" } ], "writeMode": "UpdateRow", #數(shù)據(jù)寫入表格存儲(chǔ)的模式。取值范圍為PutRow和UpdateRow。選擇PutRow時(shí)表示覆蓋寫入數(shù)據(jù),如果該行不存在,則新增一行;如果該行存在,則覆蓋原有行。選擇UpdateRow時(shí)表示更新寫入數(shù)據(jù),如果該行不存在,則新增一行;如果該行存在,則根據(jù)請(qǐng)求的內(nèi)容在這一行中新增、修改或者刪除指定列的值。 "table": "", #Tablestore中的數(shù)據(jù)表名稱。 "primaryKey": [ #作為數(shù)據(jù)表主鍵的列。 { "name": "pk1", "type": "STRING" }, { "name": "pk2", "type": "INT" } ] }, "name": "Writer", "category": "writer" }, { "name": "Processor", "stepType": null, "category": "processor", "parameter": {} } ], "setting": { "executeMode": null, "errorLimit": { "record": "0" #當(dāng)錯(cuò)誤個(gè)數(shù)超過record個(gè)數(shù)時(shí),導(dǎo)入任務(wù)會(huì)失敗。 }, "speed": { "throttle":true, #當(dāng)throttle值為false時(shí),mbps參數(shù)不生效,表示不限流;當(dāng)throttle值為true時(shí),表示限流。 "concurrent":1 #作業(yè)并發(fā)數(shù)。 "mbps":"12" #限流。 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
單擊圖標(biāo),保存腳本。
說明執(zhí)行后續(xù)操作時(shí),如果未保存腳本,則系統(tǒng)會(huì)出現(xiàn)保存確認(rèn)的提示,單擊確認(rèn)即可。
執(zhí)行同步任務(wù)。
說明全量數(shù)據(jù)一般只需要同步一次,無需配置調(diào)度屬性。
單擊圖標(biāo)。
在參數(shù)對(duì)話框,選擇運(yùn)行資源組的名稱。
單擊運(yùn)行。
運(yùn)行結(jié)束后,在同步任務(wù)的運(yùn)行日志頁簽,單擊Detail log url對(duì)應(yīng)的鏈接后。在任務(wù)的詳細(xì)運(yùn)行日志頁面,查看
Current task status
對(duì)應(yīng)的狀態(tài)。當(dāng)
Current task status
的值為FINISH時(shí),表示任務(wù)運(yùn)行完成。
步驟五:查看導(dǎo)入到表格存儲(chǔ)中的數(shù)據(jù)
在表格存儲(chǔ)控制臺(tái)查看表格存儲(chǔ)數(shù)據(jù)同步結(jié)果。
在概覽頁面上方,選擇地域。
單擊實(shí)例名稱。
在實(shí)例詳情頁簽下的數(shù)據(jù)表列表頁簽,單擊目標(biāo)數(shù)據(jù)表名稱。
在數(shù)據(jù)管理頁簽,即可查看同步到該數(shù)據(jù)表中的數(shù)據(jù)。