目录
本文重点介绍两大流行开源项目Alluxio 和 Presto之间的协同作用,并展示如何利用两者实现跨云自助服务数据架构。
作者介绍
范斌 Alluxio VP Open Source and Founding Member
Adit Madan Alluxio Senior Product Manager
Jasmine Wang Alluxio Community Manager
什么样的架构能够称之拥有自助服务能力?
我们先来探讨一个问题,满足什么条件,这个架构才能称得上是自助服务。
条件1:随着数据平台的更新换代,架构无需修改
所有的数据平台都会随着时间的推移而演进,包括增加新的数据存储、计算引擎,或者有新的团队需要访问共享数据。无论哪种情况,如果这些变化而不需要对现有架构进行修改,则这样的平台是能够自助服务。
条件2:跨团队的数据隔离
有了自助服务平台,业务部门之间不会互相干扰。当有新团队加入时,数据可以共享,新增的数据访问不会影响原有平台的使用。
如果能满足上述两个条件,也就实现了敏捷性。在设计架构的时候,考虑能否实现自助式服务比考虑物理架构的成本更重要。
设计数据平台的考虑因素
下面,我们将介绍设计自助服务平台时的部分考虑因素,以及简化的架构模式和解决方案。
考量1:数据是共享的
在不同的计算框架之间共享数据
- 企业在数据平台中会使用各类计算引擎,每个引擎都完成某个特定的任务,例如,先进行ETL批处理,然后用Presto进行交互式查询。这就意味数据要在不同引擎、不同的团队之间共享
- 例如,一个团队负责收集业务数据,数据共享给多个业务部门使用
跨区域的数据中心以及跨云厂商共享数据
- 这样可以灵活地选择最优的存储环境和云服务
如何在解决数据共享问题,我们提出一个抽象层的概念,利用抽象层实现跨跨环境的异构计算。Alluxio正是提供了这样的跨云抽象层,无论数据存储在哪里,都能让Presto和其他计算引擎之间实现无缝数据共享。
考量2:数据拥有所属的业务领域,最简单的方式是留在原地处理
- 虽然拷贝能实现数据隔离,但当数据访问策略十分严格时,需要对数据生产者对数据的使用需要严格控制,整个数据治理会变得非常复杂。
- 数据拷贝导致存储空间冗余,容易出错,占用很多的资源。
拷贝数据显然不是理想的解决方案,但如何在不移动数据的情况下对异构的数据访问实现高性能?这就需要通过抽象层来解决数据治理、性能和跨业务移动数据的问题。
下面的架构展示Presto如何利用Alluxio作为抽象层来访问位于不同存储环境的数据。
一般会遇到这两种情况:
- 全部数据都在单云或单个数据中心中
- 数据在多个数据中心或混合云中共享
不管哪种情况,Alluxio都能作为抽象层来实现数据使用者和生产者的隔离。抽象层并非仅仅用作缓存,事先的预加载和写入能力可以确保即使是在数据与计算分离的情况下, SLA也能保持一致。
结论
Alluxio为Presto赋能了自助服务的能力,通过Alluxio可实现跨云的自助服务数据架构,整个架构能够更好地适应数据平台的演进。如果想要了解更多信息,可查看白皮书《Alluxio+Presto概述——交互式查询的架构演变》,了解Facebook、TikTok、Electronic Arts、沃尔玛、腾讯、Comcast等公司如何利用Alluxio优化Presto平台。