当我们用【MaxCompute】的时候,我们在用什么?

一、MaxCompute是什么?

    MaxCompute(原ODPS,Open Data Processing Service)是一项大数据计算服务,它能提供快速、完全托管的PB级数据仓库解决方案。主要提供了四大功能:数据通道、结构化存储、多计算模型、数据安全管理。

1.数据通道

批量/历史数据通道--tunnel

     适合于全量数据或历史数据的导入、导出;

实时/增量数据通道--DataHub

      该服务具有延迟低的特点,适合增量数据的导入,同时还支持多种数据传输的插件,如logstash、flume、fluentd、sqoop、logservice等。

2.数据存储

数据进入maxcompute后,默认会以结构化的方式存储,且有自己的数据类型,如Bigint, Boolean, Double, Datetime, String, Decimal;

数据上传后,以列压缩的方式存储到盘古上。这种压缩方式的好处就是对于文本类型的数据,一般都能取得较好的压缩比,一般是4:1。

3.多计算模型

  1)SQL

MaxCompute SQL采用标准的SQL语法,兼容部分Hive语法。在语法上和HQL非常接近,熟悉SQL或HQL的编程人员都容易上手;

MaxCompute提供更高效的计算框架支持SQL计算模型,执行效率比普通的MapReduce模型更高;

需要注意的是,MaxCompute SQL不支持事务、索引及Update/Delete等操作。

  2)MapReduce

MaxCompute提供的Java MapReduce编程模型;

由于MaxCompute并没有开放文件接口,用户只能通过它所提供的Table读写数据;

更为重要的是,MaxCompute还提供了基于MapReduce的扩展计算模型, 即MR2。在该模型下,一个Map函数后,可以接入连续多个Reduce函数。

  3)Graph

对于某些复杂的迭代计算场景,例如:K-Means,PageRank等,如果仍然使用MapReduce来完成这些计算任务将是非常耗时的。MaxCompute提供的Graph模型能够非常好的完成这一类计算任务。

二、飞天系统和Hadoop生态圈架构对比

vs

三、MaxCompute优化原则

1.选表原则

选择满足需求的小表,比如汇总表。维表尽量选择全量表,事实表尽量选择增量表;

选择产出早的表;

选择可回滚的表,比如使用加购事件表代替加购全流程表;

依赖的N个上游表,尽量保证上游产出时间要均匀,如果有差异,考虑换依赖表;

2.小表原则

行数小于100万的表认为是小表,这个时候使用mapjoin性能会提高很多;

读取数据的时候要加上分区等过滤条件,大表变小表。常用过滤条件字段,做成动态分区,方便下游过滤;

不得不读取N天大表的时候,使用unionall方式合并多天数据;

3.代码原则

Join关联要尽可能是主键关联。关联字段类型要一致;

多天汇总,先生成1天轻度汇总表,多天使用1天数据再汇总;

multiinsert,实现一次读取多次写入;

使用系统UDF代替自己的写的UDF;

4.调度原则

依赖max_pt的,要排除当天依赖;

上游是小时任务,使用max_pt要慎重;

执行超过1个小时任务要关注;

四、MaxCompute应用限制

1.SQL限制

多路输出限制:单个SQL里最多可以写128路输出,超过128路报语法错误;

动态输出分区限制:任意动态分区SQL不允许生成超过2000个动态分区,否则引发运行时异常;

Select屏显限制:Select屏显结果最多只有10000条输出;

Order by语句后必须接Limit;

Sort By必须与Distribute By配合使用;

最多允许128路union all,超过此限制报语法错误;

MaxCompute 的JOIN支持多路间接,但不支持笛卡尔积,即无on条件的链接;

MaxCompute中的Join连接条件,只允许and连接的等值条件,并且最多支持16路join操作。只有在MAPJOIN中,可以使用不等值连接或者使用or连接多个条件;

目前MaxCompute 在mapjoin中最多支持指定6张小表,否则报语法错误;

如果使用mapjoin,则所有小表占用的内存总和不得超过512MB。请注意由于MaxCompute 是压缩存储,因此小表在被加载到内存后,数据大小会急剧膨胀。此处的512MB限制是加载到内存后的空间大小;

多个表join时,最左边的两个表不能同时是mapjoin的表;

2.MapReduce限制

单个任务引用的资源数量不超过512个,分区表按照一个单位计算。

单个任务引用的资源总计字节数大小不超过64MB。

单个任务的输入路数不能超过128,单个任务的输出路数不能超过128路。

单个任务中自定义Counter的数量不能超过64。

单个Map或Reduce Worker占用memory默认为2048MB,范围[256MB, 12GB]。

单个Map或Reduce Worker重复读一个资源次数限制 <=64次。

本地运行模式下,Map Worker个数不能超过100;Reduce Worker个数不能超过100;默认一路输入下载记录数100。

以上

ps:这篇文章是基于我从工作中由hadoop切换到maxcompute时,搜集整理的一些内容,希望能帮助到需要的同学。如果觉得不错,欢迎收藏分享~

你可能感兴趣的往期文章:

大数据干货系列(一)--MapReduce总结

大数据干货系列(三)-- Hadoop2.0总结

还有其他感兴趣的文章可以进入公众号主页,点击【菜单】即可:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容