亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MaxCompute中odpscmd如何使用

發布時間:2021-07-27 16:01:49 來源:億速云 閱讀:200 作者:Leah 欄目:云計算

這期內容當中小編將會給大家帶來有關MaxCompute中odpscmd如何使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。



一、命令行工具odpscmd在MaxCompute生態中的定位
odpscmd其實就是MaxCompute的命令行工具的名稱,其在整個MaxCompute中的位置是位于最上端的。如下圖所示,整個MaxCompute生態自下而上是支撐的關系,而真正暴露給用戶的是一套Rest API,這套API也是最核心的接口,無論是Java還是Python的SDK都需要調用這些核心API。而命令行工具就是對于MaxCompute開放的Rest API做了深度的包裝,在客戶端使得用戶可以使用命令的方式來提交作業,這些作業又將會通過接口提交給MaxCompute集群進行相關的管理和開發。可能大家對于MaxCompute以及DataWorks這個組合比較熟悉,這是因為使用MaxCompute之前需要在DataWorks上面進行開通。實際上,MaxCompute自身也有一些生態工具,比如odpscmd以及MaxCompute Studio等。

MaxCompute中odpscmd如何使用cdn.com/b03edb54aee0bb5188a4fa4d570fbd0e85b11b28.png">

二、快速開始:一個完整簡單的小例子
在本部分中,將通過一個簡單而完整的例子對使用odpscmd客戶端進行數據處理的各個階段進行介紹。在文中僅對于各個步驟進行簡略描述,具體的實踐操作詳見視頻分享。

MaxCompute中odpscmd如何使用

作為MaxCompute的客戶端工具,odpscmd與Hive CLI以及PSQL這樣客戶端工具是比較類似的,都是一個黑屏的操作管理工具。接下來為大家分享一個完整而簡單的小例子,這個例子能夠完整地覆蓋大數據處理的各個環節,包括了環境準備、數據接入、數據處理加工以及數據消費。在大家常見的大數據場景中,業務數據往往分散在數據庫以及其他的生產環境中,而定期會進行數據采集或者同步,將生產環境中的增量數據同步到數據倉庫中去,這樣就會涉及到數據接入。之后在數據倉庫中就會周期性地做一些數據處理加工,這些加工有時候會用常見的SQL做,對于MySQL而言提供了MR這樣的編程框架,而一些具有深度需求的用戶則會通過UDF來實現一些比較復雜的業務邏輯,同時在數據加工的時候會需要監控作業的執行情況,所以也會有對于進度以及成功狀態等的作業查看和管理的需求。作業處理完畢之后,這時候基本上完成了數據的清洗和聚合,這時候就可以提供給數據消費方使用。對于數據使用消費方而言,往往需要將加工好的可消費數據回流到業務系統來支撐在線應用,或者通過JDBC接口連接BI工具進行可視化分析,而業務分析師也往往希望下載一些數據進行二次加工和處理。

1.下載與配置安裝
對于odpscmd而言,大家可以在官方網站上找到其下載地址,通過瀏覽器下載到本地的是一個ZIP包,解壓之后就可以看到odpscmd一些相關目錄。而對于Linux用戶而言,也可以通過yarn源去下載并安裝相應的包。下載完成之后,需要修改odps_config.ini配置文件,如下圖藍框中所示,需要錄入項目名稱,填寫登錄訪問者所擁有的access_id和access_key等認證信息。同時,這里需要注意MaxCompute在國內的Region里面的end_point域名是一致的;而對于tunnel_endpoint而言,則是和Region密切相關的,所以對于不同的Region而言,所填寫的tunnel_endpoint是不同的。在填寫完配置文件之后就可以啟動odpscmd客戶端了。

MaxCompute中odpscmd如何使用

2.數據環境準備
對于使用odpscmd客戶端的同學而言,往往會深度地使用shell以及一些開源的工具進行配合。這里舉個例子,在業務數據庫中有一張日常的業務表,可能存儲了日常業務點擊的日志以及新增的訂單數據,那么常見場景是需要將數據同步到數據倉庫,這個過程需要一些數據同步工具周期性地將數據加載到數據倉庫的表里面,而且往往會需要建立相應的分區表,將相應的數據放入到相應的分區里面去。這一個任務可以通過開源工具DataX完成,實現將數據同步地插入到數據倉庫表里面去。而當手工配置DataX命令時,有一些像分區字段這樣的參數往往是動態的,所以也需要動態地放入到DataX腳本的參數當中。

MaxCompute中odpscmd如何使用

3.數據加工處理
當數據同步完成之后,在很多的場景中需要對一些分區表做加工處理,如下圖所示的例子中是新建一張表或者insert OVERWRITE一張表,還會對于數據表中由于增量同步而引入的新的分區數據進行匯總聚合計算,并將結果生成到新表中。而當作業非常長的時候,odpscmd工具也提供了作業監控命令“Show p”,就能夠檢索出全量歷史作業。而每個作業都會有自己的instance_id,而對于MaxCompute而言,最基本的任務單元就是instance,每個instance就是提交作業的實例。根據instance_id在事后還可以檢索到其對應的Logview。總之,odpscmd本身就提供了完整的作業提交、作業事后查看以及對于指定作業詳情的查看能力。在本次分享的例子中,使用的是Tunnel對于MaxCompute的結果數據集進行下載,并通過Excel或者其他的工具進行分析,因此執行tunnel download就能夠將結果數據表下載到本地文件中。

MaxCompute中odpscmd如何使用

三、客戶端提供的能力框架
上述的內容其實是希望通過一個簡單的例子將日常較為復雜的大數據處理流程和環節進行簡單回溯,借此希望向大家傳達MaxCompute客戶端工具能夠支持日常工作的各個環節。那么,MaxCompute客戶端工具究竟有什么樣的功能能夠支撐各個環節的需要呢?其實,odpscmd的功能包含了對于項目空間的管理,對表、視圖以及操作分區的操作管理,對資源、函數的管理,對作業實例的管理,并且提供數據上傳下載的數據通道,同時也提供安全與權限管理等其他的操作。接下來就為大家依次介紹。

MaxCompute中odpscmd如何使用

項目空間相關操作
在連接項目之前首先已經創建了一個MaxCompute項目,在使用項目的時候可以使用類似于Hive數據庫一樣“use <project_name>;”這樣的命令去跨空間切換,通過這種方式可以使得用戶在多個項目之間進行快速切換,當使用了“use <project_name>;”之后,后續的所有命令將會直接應用到制定的項目中。

MaxCompute中odpscmd如何使用

表相關操作
表相關操作的命令在odpscmd客戶端工具上能夠很輕松地進行操作,其包含了表的創建和刪除以及對于表的修改,比如修改列名、修改分區、修改屬主Owner、非分區數據的刪除等。其他的操作諸如show tables也都兼容了Hive的使用習慣。在下圖中為大家列出了與表相關的操作命令以及幫助文檔。

MaxCompute中odpscmd如何使用

視圖及分區相關操作
對于視圖和分區而言,odpscmd也可以通過view方式把一些復雜的處理邏輯進行二次封裝,更容易地對外進行暴露。對于view而言,提供了創建、修改、刪除以及查看的操作。對于Partition而言,大家關注的也比較多,常見的就是如何查看表的分區,通過show partition <表名>的方式就能夠列出這張表里面有多少個分區,同時分區的名稱是什么。同時可以借助alter <表名>的方式將某一個分區刪除掉或者修改其命名。

MaxCompute中odpscmd如何使用

資源與函數相關操作
深度用戶在使用時就會發現,很多內置函數不能夠滿足自身邏輯需求,往往會需要使用一些UDF來進行復雜計算,也可以通過MR來做更自由的計算邏輯,這些時候用戶需要上傳一個自定義開發包,這些對于MaxCompute而言就是資源Resource。通過odpscmd可以上傳也可以查看項目中的資源。對于函數而言,用戶創建UDF的時候,就可以使用create方式很容易地進行創建。

MaxCompute中odpscmd如何使用

實例相關操作
對于實例而言,大家可能會在客戶端運行很多作業,可能在某個時間想要看看作業是否已經運行完成了,但是又記不住作業的具體ID是什么,這時候就可以使用show p和show instance命令來列出提交過的歷史作業,并且還支持按照時間等條件進行過濾。當instance列表獲取之后,對特定的任務做操作還可以使用“wait”命令查看其詳情。

MaxCompute中odpscmd如何使用

Tunnel相關操作
有一種操作命令實際上是提交給控制、管理、數據查詢作業的命令,并且還有一部分是做數據的上下行,這有別于前面提到的任務提交,更多的是對于數據的吞吐量要求比較高,因此odpscmd集成了Tunnel工具,能夠在命令行里面進行數據上傳以及下載等。這里經常會遇到的問題就是很多開發者在自己的生產環境里面通過Tunnel做數據同步,而這時候對于斷點續傳的能力要求就會比較高了。

MaxCompute中odpscmd如何使用

安全及權限相關操作
很多用戶對于DataWorks比較熟悉,DataWorks里面有比較簡單明了的用戶角色授權管理的能力。而做數據庫的一些同學則更加習慣于黑屏的方式,也就是通過命令方式做安全和權限的管理。

MaxCompute中odpscmd如何使用

角色相關權限管理
比如對于角色相關權限的管理,可以通過create role可以在大數據項目中創建角色,并對角色賦權,將某一個用戶加入到角色當中去,或者移除相關的角色。同時也能夠查看究竟有哪些角色。

MaxCompute中odpscmd如何使用

用戶相關權限管理
對于用戶相關權限管理而言,最常見就是將一個阿里云的賬號加進項目中去,并為用戶指定具體的角色,并獲取對應的權限。

MaxCompute中odpscmd如何使用

項目空間的數據保護
一些管理員對于項目空間的保護要求比較高,而在MaxCompute當中天然對于多租戶支持方面做了很多工作。比如可以設置禁止項目數據被下載,僅允許幾個授信的項目之間共享數據,這樣就可以將與項目空間相關的權限保護能力都放在odpscmd中。

MaxCompute中odpscmd如何使用

權限查看
同時,odpscmd也給出了權限查看相關的命令。

MaxCompute中odpscmd如何使用

其他操作
odpscmd還提供一些其他常用的操作。大家可能經常會遇到一些性能優化的場景,比如對于一張比較大的數據表做掃描分區的切分,這樣可以增加作業任務的并行度,這些優化手段的開關都可以通過命令行進行快速設置,同時也可以對于一些SQL進行成本預估,并且也可以輕松地獲取幫助信息。綜上所述,odpscmd是一個比較強大并且完整的客戶端工具。

MaxCompute中odpscmd如何使用

四、客戶端重點場景說明
接下來重點分享幾個客戶端使用的重點場景。
場景1:通過shell腳本調用tunnel命令進行文件上下傳
在這種場景下,默認會通過分隔符的方式進行上傳。而當用戶遇到了一些非標準化的分隔符時,通過-fd方式就能夠快速適配對應的列分隔符。而很多同學也希望通過shell腳本的方式能夠動態地進行調度,這里也會涉及到動態參數傳入的問題。如下圖中示例所示,可以將日期動態地傳入到Tunnel命令當中去,周期性地將新增的日志文件上傳或者下載到對應的目錄中去。

MaxCompute中odpscmd如何使用

場景2:調試odpscmd命令
在非交互式的場景下,MaxCompute命令支持-f參數,可在腳本或其它程序中直接以odps -f <文件路徑>的方式支持MaxCompute命令。此外MaxCompute命令還支持-e參數,在這種方式下需要通過括號的方式將SQL命令嵌入進去。

MaxCompute中odpscmd如何使用

場景3:運行數據查詢/數據加工作業UDF
在odpscmd里面能夠原生地支持UDF和MR,如下圖所示的是UDF作業的使用流程。

MaxCompute中odpscmd如何使用

在前兩個環節需要在線下將寫好的UDF編寫好的程序打成Jar包,在命令行當中通過“add jar”的方式把其傳入到指定的項目中作為一個資源。而通過createfunction命令可以命名一個自定義函數并于上傳的主函數進行關聯,這樣就真正地建立了這樣的一個函數。之后在測試或者使用的時候通過調用剛才創建的UDF進行使用。這樣就是通過odpscmd實現UDF的完整創建。

場景4:運行數據查詢/數據加工作業MR
對于MR作業而言,首先需要在編譯環境中編寫并打包MR程序,打包完成之后將其作為一個資源注冊到項目之中,在odpscmd里面執行“add jar”,之后在命令行里面運行MR作業,之后就可以獲得相應的結果。

MaxCompute中odpscmd如何使用

五、容易碰到的問題
接下來為大家總結了幾個常見的問題。首先是動態參數的傳入,因為odpscmd是一種命令行的方式,那么大家通過shell調用的比較多,這時候就涉及到如何將一些動態的參數調入進去,其實可以通過shell的方式變相地將一些動態信息傳遞進來。還有一個常見的問題就是“手工執行odpscmd命令正常,通過shell腳本調用時報錯”,此時就需要檢查shell腳本下有沒有設置JAVA的環境變量。

MaxCompute中odpscmd如何使用

上述就是小編為大家分享的MaxCompute中odpscmd如何使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遂平县| 库车县| 三江| 汤阴县| 当阳市| 清水河县| 吐鲁番市| 安丘市| 旬阳县| 赤水市| 万山特区| 高碑店市| 义乌市| 新河县| 隆德县| 崇信县| 驻马店市| 新巴尔虎右旗| 铁力市| 富源县| 湖口县| 玉树县| 睢宁县| 华坪县| 五台县| 凤山县| 南通市| 郓城县| 施甸县| 嘉峪关市| 文水县| 新田县| 合江县| 孟连| 昌吉市| 临洮县| 洛浦县| 丽江市| 昭觉县| 北流市| 沭阳县|