上图是飞天MaxCompute平台融合的案例。其中一层为统一的存储层,不仅仅可以开放MaxCompute的引擎,也可以开放其他的引擎。中间的抽象层为联合计算平台,联合是指将数据、资源和接口抽象成一套标准的接口,包括Spark和其他引擎都可以应用,形成一套完整的生态系统。第二条线的生态是MaxCompute源向外的生态,数据源是多种多种的,不仅仅存在阿里自已的存储里,也可以存在于数据库的系统和文件系统等。此外,可以让用户在不搬迁数据的情况下和其他系统做联动,称为联邦计算的概念。
另外,Blink是当年在Flink社区的一个单独的分支,针对阿里内部的最佳开发实践的系统,在1.9的版本上已经成为完全默认的社区,在SQL引擎、调度系统以及Algo on Flink上做出了很多贡献。随着和Flink的某公司存在收购关系之后,将会推动Flink公司一直向前发展。
计算引擎的优化除了自身的优化以外,还涉及到自动驾驶。上图是使用车的例子,展现了飞天进化的过程。第一个过程为可用阶段,比如双十一当天是否能支撑如此大量的负载以保证系统是可用的。第二个过程是在性能和成本上达到极致的追求。第三个过程是让性能变得更好。
智能云数仓(Auto Cloud Data Warehouse)在阿里内部已经出现了三条关键的挑战:
1、EB级数据和百万级别作业,很难管理。数据中台团队不再胜任(传统的DBA模式不能支撑)
2、多种数据融在一起,人无法在海量规模上理解数据的所有价值
3、大数据系统经过多年发展,如果需要实现“跃迁”式的进步,需要体系结构层面的改造
从智能云数仓的角度来看,可以从三个方面上做优化。第一方面是效率优化,包括HBO是基于历史信息的优化,可以理解是一个全新的作业作用到系统中,当系统对它并不了解时,对资源的分配相应的会采用保守的方式,使作业运行完成。在第一次运行作业时,系统的调优可能是保守的,慢慢的会越来越贴近自身的运行状态,到四天之后,所认为的作业就非常好了。通过HBO优化,阿里巴巴的资源利用率达到了70%。此外,还包括Learned Statistics、智能计算重用和智能的数据分层。
第二方面是资源规划,当云上有十万台的机器分布在不同的数据中心时,怎样规划数据和资源调动是不属于人工的过程,应属于自动化的过程,包括作业运行模式的自动分类,其中有三种不同的运行模式是针对非常大的作业和交互性非常高的作业。此外,还包括动态Quota调整、缩扩容、作业运行预测与自动预报警、作业自动升降级和数据排布与跨集群调度。
第三方面是智能建模,包括相似作业与数据的识别、自动纠错、作业运行预测与自动预报警以及作业自动升降级。
以上这三个方面是在智能数仓领域可以持续发展的方面,上图中带*的是阿里已经或者马上要公布的功能。
Auto CDW – 智能索引推荐
通过作业之间运行的关系,做cost module的同化,通过这种方式是找到一种index最优的调节并且进行push。例如,基于MaxCompute,在阿里集团内挑选了8W张表的30W个字段 ,从中为4.4W张表推荐出最优的Clustering方案,平均Cost节省43%。
Auto Tired Store - 冷热数据识别和管理