大数据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则支撑隐式类型转化。