大数据ACP总结(一)-阿里云开发者社区

开发者社区> 大数据> 正文

大数据ACP总结(一)

简介:

刚刚顺利苟过了阿里ACP, 主要复习策略是多次熟悉阿里云提供大数据官方教程,官方文档,并对核心环境做总结。

社区关于复习提纲的内容以及比较详细了,这里梳理下存在关键细节的考点,也给大家一些参考。

关键数字:

  • 单表分区层级最多6级。单表分区数最多允许60000个分区。一次查询最多查询分区数为10000个分区。
  • MaxCompute支持上传的单个资源大小上限为500MB,
  • 当使用Select语句屏显时,目前最多只能显示10000行结果
  • 单个SQL中最多可以写256路输出,
  • MaxCompute在MapJoin中最多支持指定8张小表,否则报语法错误。如果使用MapJoin,则所有小表占用的内存总和不得超过512MB。
  • 名称的长度不超过128字节。一张表最多允许60000个分区,单表的分区层次不能超过6级。注释内容是长度不超过1024字节的有效字符串
  • 表的最大列数为1200列。

sql语法:

Q:在 MaxCompute SQL 执行过程中,报错为Table xx has n columns, but query has m columns。

A:MaxCompute SQL 使用 INSERT INTO/OVERWRITE TABLE XXX SELECT 插入数据时,需要保证 SELECT查询出来的字段和插入的表的字段,包括顺序、字段类型都能匹配,当然总的字段数量上也要能对的上。

目前 MaxCompute 不支持指定插入表中某几个字段,其他字段为 NULL 或者其他默认值的情况,您可以在 SELECT 的时候设置成 NULL,例如:SELECT ‘a’,NULL FROM XX。

Q:用insert into…values...语句插入表记录报错,请问如何向 MaxCompute 表中插入记录?

A:向 MaxCompute 表中插入记录的操作步骤如下:

创建一个表, 例如 dual 表。语句如下:

createtabledual(cntbigint);
insertintotabledualselectcount(*) as cnt from dual;

执行完上述语句便生成了一张有 1 条记录的 dual 表。
执行下述语句,即可向 MaxCompute 表中插入记录。

insert into table xxxx select 1,2,3 from dual;

Q:用insert into partition时,如果分区不存在,如何操作

A: 用insert into partition时,如果分区不存在,如何会自动创建分区

  • 分布式环境下,使用动态分区功能的SQL中,单个进程最多只能输出512个动态分区,否则会引发运行时异常。
  • 动态生成的分区值不允许为NULL,也不支持含特殊字符和中文,否则会引发运行时异常FAILED: ODPS-0123031:Partition exception - invalid dynamic partition value: province=xxx。
  • 如果目标表有多级分区,在运行INSERT语句时允许指定部分分区为静态,但是静态分区必须是高级分区
  • MaxCompute 1.0在进行动态分区时,如果分区列的类型与对应SELECT列表中列的类型不严格一致,会发生报错。MaxCompute 2.0则支持隐式类型转换。

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

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章