MaxCompute问答整理之2020-03月
本文是基于本人對MaxCompute產(chǎn)品的學(xué)習(xí)進(jìn)度,再結(jié)合開發(fā)者社區(qū)里面的一些問題,進(jìn)而整理成文。希望對大家有所幫助。
問題一、在 MaxCompute SQL執(zhí)行過程中,報錯Table xx has n columns, but query has m columns如何處理?
MaxCompute SQL使用INSERT INTO/OVERWRITE插入數(shù)據(jù)時,需要保證SELECT查詢出 來的字段和插入的表的字段匹配,匹配內(nèi)容包括順序、字段類型,總的字段數(shù)量。目前 MaxCompute不支持插入表的指定字段,其他字段為NULL或者其他默認(rèn)值的情況,您可以 在SELECT的時候設(shè)置成NULL,例如SELECT ‘a(chǎn)’,NULL FROM XX。
問題二、MaxCompute 中使用什么方法可以實現(xiàn)相同字段連接,將group by產(chǎn)生的同一個分組中的值連接起來,返回一個字符串結(jié)果。類似MySql中的group_concat()函數(shù)?
MaxCompute可以使用WM_CONCAT函數(shù)來實現(xiàn)相同字段連接。具體函數(shù)說明可參考:
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);
問題四、如何進(jìn)行增量數(shù)據(jù)同步到MaxCompute?
可以嘗試兩種方式,一種不變的數(shù)據(jù)進(jìn)行增量同步,一種是會變的數(shù)據(jù)進(jìn)行增量同步(不推薦使用此方式,只有如不支持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上傳數(shù)據(jù)的時候報錯信息如下:You cannot complete the specified operation under the current upload or download status
錯誤原因:Session過期或者已經(jīng)Commit過,需要重新創(chuàng)建Session上傳。Tunnel上傳時每個Session的生命周期是一天,如果源表數(shù)據(jù)太大,導(dǎo)致Session超時任務(wù)失敗時,建議將源表拆分成2個任務(wù)執(zhí)行。
問題七、如何使用Clone table實現(xiàn)同region不同賬號之間的MaxCompute的數(shù)據(jù)遷移?
使用Clone table進(jìn)行數(shù)據(jù)遷移操作,命令格式為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?
在執(zhí)行Python 3 UDF的SQL語句前增加set odps.sql.python.version=cp37;語句一起執(zhí)行,即可開啟Python 3。
問題九、MaxCompute中如何禁止/恢復(fù)生命周期功能?
可使用禁止/恢復(fù)生命周期SQL來設(shè)置。具體語法如下:
問題十、MaxCommpute中,如何查看指定的表或者分區(qū)是否存在?
可使用使用函數(shù)TABLE_EXISTS,查詢指定的表是否存在。
使用函數(shù)PARTITION_EXISTS,查詢指定的分區(qū)是否存在。
具體函數(shù)說明可參考:
https://help.aliyun.com/document_detail/48976.html
原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的MaxCompute问答整理之2020-03月的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向大数据与云计算调度挑战的阿里经济体核
- 下一篇: 阿里每天究竟要抵御多少攻击