MaxCompute问答整理之2020-03月-阿里云开发者社区

开发者社区> 阿里巴巴大数据计算> 正文
登录阅读全文

MaxCompute问答整理之2020-03月

简介: 飞天大数据平台计算引擎MaxCompute成为全球首个TPCx-BB认证的公共云产品,是除Hive、Spark以外TPCx-BB第三个标准支持的大数据引擎。

本文是基于本人对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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里巴巴大数据计算
使用钉钉扫一扫加入圈子
+ 订阅

阿里大数据官方技术圈

官方博客
链接