ps : Maxcompute數據倉庫建設的分享。
大致介紹下Maxcompute, Maxcompute是阿裏的壹個大數據工具,基於Maxcompute阿裏搭建了壹個Datawork的數據平臺。可以很“方便”的從各種數據源導入數據,做數據分析、機器學習等。
“方便"之所以加個引號,是因為某些方面的確很方便,當然業務實在復雜了,很多時候也存在用的很難受的地方。
更多介紹去阿裏官網了解吧。
回到正題,這裏主要分享下批量刪除分區的壹個小技巧。
介紹下分區的概念,Table是壹個數據表,也是壹個分區的數組。分區把Table的數據分成了壹個個的區塊。
Maxcompute是個不支持某條數據修改刪除的數據倉庫。而分區是可以刪除和新增的。引入分區,就可以做到在小顆粒度上做到修改和刪除的功能。
首先描述下為何會有大量的分區需要刪除的場景。
分區數量多了之後,文件將會變多。壹個是Maxcompute對於表的分區是壹個上限數量,另壹個是分區數量多了之後計算將會很慢。
這些源數據將會經過清洗產生對應的中間表或者結果集,供BI或者數據分析使用。而源數據為了方便管理,可以通過sql聚合成壹個大分區來存放。而原來的很多分區就可以刪除,以便騰出空間。
壹般正常刪除分區是通過sql來刪除。
這種方式只能壹次刪除壹個分區,當分區有上萬個的時候就不適用了。
這種情況可以通過pyodps來輕松的批量刪除分區。
下面是壹個刪除datahub歸檔分區的實例
可以在dataworks裏面新建個pyodps的節點來每天運行,壹勞永逸。
如果是放在python本地運行的話建議使用ipython。具體還需要配置下odps的環境。可以參考下 官方文檔 。
Dataworks使用中分庫分表很多,怎麽配置大量的同步任務。有經驗的可以壹起研究下。