一、Serverless简介
下图是MaxCompute的Serverless架构,主要包括数据接入服务、多计算环境、储存服务和管理几个模块。
其中各个模块的主要特点如下:
(1)Serverless的数据接入服务
- 提供Tunnel批量、流式导入,转换为MC列存格式、自动伸缩等功能,且免费;
- 可以免费使用LOAD/UNLOAD命令进行OSS导入/导出。
(2)Serverless的多计算环境
- Severless计算资源池,大规模计算资源池,On-demand按需提供,按作业付费;
- 独占计算资源:支持包年包月付费、Workload管理(负载隔离、优先级、分时伸缩等);
- 运行环境(runtime)支持ETL/OLAP/ML等大数据分析使用场景。
(3)Serverless的存储服务
- 与计算无关,独立伸缩,提供GB-EB级别的存储服务;
- 按实际存储大小付费,降低成本;
- 无需指定,默认面向分析优化(列压、压缩);
- 支持区分/分桶/Zorder等优化手段。
(4)Serverless的管理
- 开箱即用,内建了完整的管理能力,以API/sdk/web-console管理;
- 平台则无需用户运维,降低成本。
上面是对Serverless架构的一个简述,本文的重点是如何利用MaxCompute的Serverless计算资源来满足数据仓库的需求。
下图所示的是MaxCompute计算资源与管理与使用的逻辑模型。对于MaxCompute中的Project,实际上对应的是一个逻辑的数据仓库的隔离单元,我们可以根据不同的管理目标创建不同的Project,比如我们可以分别创建面向测试的Project和面向开发的Project,两个项目之间有独立的数据和权限管理体系,并不互通,达到管理的隔离作用。当然,只有这样的隔离空间还不足够