天天看點

MaxCompute問答整理之2020-03月

本文是基于本人對MaxCompute産品的學習進度,再結合開發者社群裡面的一些問題,進而整理成文。希望對大家有所幫助。

問題一、在 MaxCompute SQL執行過程中,報錯Table xx has n columns, but query has m columns如何處理?

MaxCompute SQL使用INSERT INTO/OVERWRITE插入資料時,需要保證SELECT查詢出 來的字段和插入的表的字段比對,比對内容包括順序、字段類型,總的字段數量。目前 MaxCompute不支援插入表的指定字段,其他字段為NULL或者其他預設值的情況,您可以 在SELECT的時候設定成NULL,例如SELECT ‘a’,NULL FROM XX。

問題二、MaxCompute 中使用什麼方法可以實作相同字段連接配接,将group by産生的同一個分組中的值連接配接起來,傳回一個字元串結果。類似MySql中的group_concat()函數?

MaxCompute可以使用WM_CONCAT函數來實作相同字段連接配接。具體函數說明可參考:

https://help.aliyun.com/document_detail/48975.html

問題三、如何在MaxCompute Java SDK上使用Logview排錯?

MaxCompute Java SDK提供了Logview接口 i = SQLTask.run(odps, sql); String logview = odps.logview().generateLogView(i, 7 * 24);

問題四、如何進行增量資料同步到MaxCompute?

可以嘗試兩種方式,一種不變的資料進行增量同步,一種是會變的資料進行增量同步(不推薦使用此方式,隻有如不支援Delete語句),可參考文檔:

https://help.aliyun.com/document_detail/87157.html

問題五、MaxCommpute中,如何修改表的Hash Clustering屬性?

增加表的Hash Clustering屬性語句如下:

ALTER TABLE table_name [CLUSTERED BY (col_name [, col_name, ...]) [SORTED BY (col_name [ASC | DESC] [, col_name [ASC | DESC] ...])] INTO number_of_buckets BUCKETS]

去除表的Hash Clustering屬性的文法格式如下:

ALTER TABLE table_name NOT CLUSTERED;

問題六、Tunnel上傳資料的時候報錯資訊如下:You cannot complete the specified operation under the current upload or download status

錯誤原因:Session過期或者已經Commit過,需要重新建立Session上傳。Tunnel上傳時每個Session的生命周期是一天,如果源表資料太大,導緻Session逾時任務失敗時,建議将源表拆分成2個任務執行。

問題七、如何使用Clone table實作同region不同賬号之間的MaxCompute的資料遷移?

使用Clone table進行資料遷移操作,指令格式為CLONE TABLE <[src_project_name.]src_table_name> [PARTITION(spec), ...]TO <[dest_project_name.]desc_table_name> [IF EXISTS (OVERWRITE | IGNORE)] ;

可參考文章:

https://developer.aliyun.com/article/748158

問題八、MaxCompute Python UDF如何開啟Python 3?

在執行Python 3 UDF的SQL語句前增加set odps.sql.python.version=cp37;語句一起執行,即可開啟Python 3。

問題九、MaxCompute中如何禁止/恢複生命周期功能?

可使用禁止/恢複生命周期SQL來設定。具體文法如下:

ALTER TABLE table_name [partition_spec] ENABLE|DISABLE LIFECYCLE;
           

問題十、MaxCommpute中,如何檢視指定的表或者分區是否存在?

可使用使用函數TABLE_EXISTS,查詢指定的表是否存在。

使用函數PARTITION_EXISTS,查詢指定的分區是否存在。

具體函數說明可參考:

https://help.aliyun.com/document_detail/48976.html