大數據

SaaS模式雲數據倉庫 MaxCompute 問答整理之2020-09~10月

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

問題一、MaxCompute中,同一時間操作同一張表的同一分區,會產生數據翻倍的情況嗎?
不會,MaxCompute在更新元數據的時候不允許同時更新元數據。

問題二、MaxCompute中執行SQL報錯ODPS-0130071:[0,0] Semantic analysis exception - physical plan generation failed: java.lang.RuntimeException: com.aliyun.odps.lot.cbo.FailFastException: instance count exceeds limit 99999.
單作業需要的併發超過最大限制,可通過調整split size降低併發量來解決。可以設置一下set設置,set odps.sql.mapper.split.size=512 ,調整每個Mapper讀取table數據的大小,單位是MB。

問題三、在DataWorks表管理中添加的表,修改字段名稱報錯。
可以使用DDL語句ALTER TABLE 修改。可以參考文檔:
https://help.aliyun.com/document_detail/73771.html

問題四、MaxCompute可以指定列進行 insert overwrite嗎?
insert overwrite 不支持指定插入列的功能,可以用insert into或者設計一張拉鍊表。可以參考這篇文章:
https://developer.aliyun.com/article/542146

問題五、MaxCompute中,按照分區查詢數據的語法是什麼?
select *from table where dt='1'; 可以參考文檔:
https://help.aliyun.com/document_detail/73777.html

問題六、MaxCompute SQL task 能執行語法檢查嗎?
可以執行一下explian,參考官方文檔:
https://help.aliyun.com/document_detail/73787.html

問題七、使用Tunnel 可以下載某個分區的數據嗎?
可以,參考一下Tunnel 命令說明文檔:https://help.aliyun.com/document_detail/27833.html

問題八、不同工作空間的表是否可以相互引用?
可以,授權就可以。可以參考一下文檔:https://help.aliyun.com/document_detail/27935.html

問題九、請問MaxCompute表字段string類型的數據長度大於8MB怎麼解決?
有兩個方法:1、拆分字段。2、使用獨享資源組,再提工單綁定可以解決大於8MB問題。

問題十、字段為空字符串的怎麼在SQL裡面過濾掉?
1605684405687-ee2fae0a-ef7f-472e-9eaf-215acd014d00.png
可以使用uid!='';

問題十一、PyODPS 操作 SQL 的示例代碼有獲取記錄數的操作,放到 MaxCompute 中運行的就提示沒有 count 屬性了,怎麼解決?
Dataworks上默認未開啟Instance Tunnel,即instance.open_reader默認使用Result接口,最多可以獲取一萬條記錄。開啟Instance Tunnel後,可以通過reader.count獲取記錄數。

問題十二、MaxCompute中,CAST(substr(sdk_channel,1,1) AS BIGINT) = 1 或 CAST(t.is_client AS BIGINT) = 1 報錯: Illegal type cast - in function cast, value 'n' cannot be casted from String to Bigint
substr 是對字符串截取 (),該函數裡面的 兩個參數 是 下標和截取個數,代碼截的是 string類型,外面的 cast 函數是對類型進行轉換,如果裡面截出來的例如:abc,根本無法轉換成 bigint,如果截出來是數字 123 是可以的 轉成 bigint的。 例如:select cast(substr("1234",1,1) as BIGINT );

更多關於大數據計算產品技術交流,可掃碼加入 “MaxCompute開發者社區” 釘釘群
2群.jpg

Leave a Reply

Your email address will not be published. Required fields are marked *