0. Data Warehouse VS Data Lake
0.1 传统数仓
- 数据来源于各类云数据存储、NoSQL和关系型数据库等系统,比如OSS、Table Store、NAS、 云HBase、RDS、PolarDB等;
- 数据以实时、分钟、小时、天等级别进行ETL抽取与同步到数仓系统中;
- 在数仓中进行实时、定时调度、汇总计算分析。
关注到数仓的实时同步、实时海量数据的分析能力,可以关注阿里云的分析型数据库AnalyticDB(https://www.aliyun.com/product/ads),在云上打造实时数仓的解决方案。
从数据、Schema、价格、性能、数据质量、用户、分析的workload等各类特征维度比较传统数仓和Data Lake的解决方案和应用场景的区别:(注:部分内容翻译于:https://amazonaws-china.com/big-data/what-is-a-data-lake/)
特征
|
Data Warehouse(传统数仓)
|
Data Lake
|
数据
|
来自于交易型系统的典型的关系型数据和各类业务线的应用数据
|
来自IoT物联网设备、网站、移动设备、社交媒体和企业应用的各类非关系型和关系型数据
|
Schema
|
Schema-on-write
(在数仓规划和实现前预先设计好Schema和ER关系)
|
Schema-on-read
(分析时确定或伴随着分析时进行获取)
|
价格、性能
|
更高的数据存储开销,获得最好的分析查询性能
|
比较低的数据存储开销,以还不错的速度获取分析查询结果
|
数据质量
|
高度策划、清洗过的数据,提供最核心关键的数据信息和决策支持
|
任何数据(清洗或者未清洗过的)
|
用户
|
Business analysts
|
Data scientists, Data developers和 Business analysts (使用高度策划和清洗过的数据)
|
分析
|
批量报表、BI和可视化展现
|
机器学习、预测分析、数据发现和画像
|
0.2 Cloud Data Lake分析分层
在云上构建数据湖分析场景的架构分层比较清晰,自底向上分三层:
- 第一层:多样选择的“南向多模”云原生数据存储和数据库服务。用户面向一系列云原生的数据存储服务和云数据库系统存储、摆放自己的数据,多样的选择包括:性价比高的对象云存储(非常方便存储文件,结构化、半结构化、非结构化的raw data,多媒体文件),NoSQL(TableStore、云HBase等),RDS、PolarDB等云数据库服务。
第二层:面向“南向多模”而构建的云原生Data Lake分析服务层。该层强调云原生Cloud Native中很重要的一个特质,就是Serverless无服务器化,是云上打造SaaS化的基础服务,除了Data Lake分析场景,还有更加泛在的Serverless PaaS(https://serverless.aliyun.com/)和FaaS(比如阿里云的函数计算: https://www.aliyun.com/product/fc)。本文重点关注Data Lake分析场景的Serverless分析能力,总的来看我们总结为三个方面:
- 第一,Elastic。强调弹性化能力,能够按需、及时弹性,有预测性,智能的混合负载处理能力;
- 第二,Resilient。用户无感知的高可用能力,包括透明的滚动升级、快速Failover、跨AZ(可用区)的容灾能力等;
- 第三,Federated & Analytical。面向多模的联邦分析能力,包括对多种格式、系统的分析对接能力,全面的分析功能和优秀的交互式分析性能和体验,包括数据、计算并行化处理能力,良好的接口兼容能力等。
- 第三层:数据分析应用、可视化应用层。基于Data Lake分析服务层打造的业务逻辑,还包括云上的数据分析工具和产品DataV( https://data.aliyun.com/visual/datav ),QuickBI( https://data.aliyun.com/product/bi ),或者未来在云市场( https://market.aliyun.com/ )上上线的各类其他数据分析产品和工具等。
在云上,用户能够非常方便的直接与三层的云产品、服务交互,构建自己的云数据湖分析场景和解决方案。
1. Data Lake Analytics概述
1.1 Data Lake Analytics生态分层
在上一节Cloud Data Lake分析分层的基础上,Data Lake Analytics的生态分层分为:Result结果层,Serverless分析层,数据源Source层,以及BI SaaS层。
- 数据源Source层:支持OSS、NoSQL(TableStore等)、RDS(MySQL、PostgreSQL、SQL Server)等数据的并行化联邦分析;
- Serverless分析层:是Data Lake Analytics的核心计算、分析层;
- Result结果层:通过Data Lake Analytics内置的多源、多路的ETL能力,将分析结果回流到OSS、NoSQL系统、RDS等RDBMS关系型数据库,以及一些其他的数据缓存系统等;
- BI SaaS层:兼容性在持续增强,目前支持Qlik、Tableau、Microstrategy、阿里云QuickBI以及其他主流MySQL客户端工具以MySQL数据源的方式,连接Data Lake Analytics服务进行分析。
1.2 产品特点
无服务器化
|
标准SQL与连接
|
异构数据源
|
优化的计算引擎
|
|
|
|
|
2. Data Lake Analytics云上部署架构
在单个阿里云region内,Data Lake Analytics服务的部署架构如下所示:
Alibaba Cloud Management Zone(OXS区)
- Admin Proxy属于产品的管控节点,部署在OXS区,向下负责与阿里云售卖系统、计量、ALB、SLA、云监控、SLS、RAM等系统交互,完成所有云产品属性的管控和服务功能,向上负责提供POP API,为产品控制台提供服务入口;
Alibaba Cloud Public Cloud Zone(售卖区)
- DLA所有服务角色都运行于VPC内的ECS,包括Resource Manager,Frontnode,Computenode,Meta Store等;
- Resource Manager是Data Lake Analytics资源调度的大脑,负责服务进程拉起、看护、版本升级;
- Resource Manager负责调用为DLA定制化的ROS模板,进行各个阿里云region上DLA服务的初始化;
- Resource Manager还负责根据集群服务的资源利用率和繁忙情况,控制计算服务节点的水位和ECS水位,其中,ECS水位,通过调用ESS进行弹性伸缩,有效控制集群资源利用率;
- Frontnode是DLA查询分析服务的入口,多个Frontnode挂载在ALB的EIP后,提供查询访问连接的负载均衡;
- Computenode为无状态的查询任务计算节点;
- Meta Store服务为DLA集群的元数据中心,基于VPC内RDS for MySQL存储,为其他服务角色提供统一的元数据存储和查询服务。
- 通过ALB提供的服务接口支持SingleTunnel VPC、经典网络IPv4和经典网络IPv6的服务入口(Data Lake Analytics是阿里云公共云上第一批支持IPv6服务入口的产品之一:https://www.aliyun.com/solution/ip/ )。
3. 针对数据湖存储OSS的分析
3.1 目标用户与应用场景举例
0)对存储在OSS中的数据有数据分析需求的人;
1)熟悉SQL的云上开发和分析人员;
2)对云上数据有临时探索、分析、发现的人;
3)寻求在OSS上构建Data Lake的用户和企业。
3.2 典型使用流程
0) 用户把业务产生的数据如Log、CSV、JSON等格式的文件,直接上传到OSS,然后用Data Lake Analytics直接指向文件或者文件夹进行建表查询,使用BI工具进行业务数据分析展现;
1)用户在其他Hadoop生态的Legacy系统上有Parquet、ORC、RCFile、Avro等格式的数据,直接复制上传到OSS,然后用Data Lake Analytics直接指向文件或者文件夹进行建表查询,使用BI工具进行业务数据分析展现;
2)为了让后续OSS上的数据分析具备更好的查询性能和更低的存储成本,可以把数据进行格式转换,比如转换成Parquet或ORC格式来提升数据反复分析的性价比。
在TPC-H原始数据量在1GB的情况下,各类数据格式的对应数据量比例如下图所示。
3.3 DBS结合Data Lake Analytics的数据备份查询分析
- DBS ( https://www.aliyun.com/product/dbs )服务是云数据库的数据备份服务,提供数据的全量和增量备份;
- DBS备份数据存储在OSS上,存储成本较低;
- 过去对于备份数据基本没有分析能力,DBS结合DLA后,无需进行备份恢复,就能直接对OSS上的历史备份数据进行分析;
- DBS结合DLA,使得用户围绕云上数据库的备份与恢复、甚至历史数据分析的整个体验大大提升。
4. 结合OSS Select优化DLA的查询性能
OSS Select是OSS团队开发的靠近OSS存储的单文件简单查询分析服务(https://yq.aliyun.com/articles/593910),由于OSS Select更靠近OSS,加上OSS Select对CSV文件的分片索引优化和数据反序列化优化,Data Lake Analytics结合OSS Select在CSV文件的分析场景下,性能提高50% ~ 90%不等,在大文件数据过滤的极端场景下,有数十倍的性能提升。在TPC-H SF 10(原始10GB数据)的workload测试下,DLA开启OSS Select的查询计算下推功能和不开启的查询比较如下图所示。
5. 安全与跨云产品访问
安全永远是云上数据访问和操作的标准,Data Lake Analytics在云产品的各个层面follow云上的安全实践:
- 云账号、子账号在控制台的访问控制;
- DLA自建服务账号通过KMS信封加密技术,保障用户服务账号的安全性;
- 采用数据库体验的ACL机制,进行对象的授权与访问控制;
- 售卖区服务角色全部部署于VPC内,保障计算、服务实例的网络隔离性;
- 跨云产品的服务访问,全部通过RAM角色授权 + STS方式进行访问。
6. Data Lake Analytics数据流
在Data Lake Analytics整体上下游数据流生态中,目前主要支持OSS、Table Store、AnalyticDB和RDS(MySQL、PostgreSQL和SQL Server)。
源(Source,查询)和目标(Sink,数据回流)的详细支持情况列表:
数据系统
|
源(查询)
|
查询优化
|
目标(数据回流)
|
写入优化
|
OSS
|
|
支持OSS Select单文件的计算下推优化
|
|
|
Table Store
|
|
针对Table Store SDK进行列式压缩调用返回优化,性能提升近4倍
|
|
|
AnalyticDB
|
|
支持分区级别并行优化
|
|
数据batch insert到AnalyticDB表中
|
RDS
(MySQL,PostgreSQL,SQL Server)
|
|
针对包含AUTO_INCREMENT列的表,进行range切片的数据分片并行查询优化
|
|
|
MongoDB
|
|
|
||
Redis
|
|
|
||
PolarDB
|
|
|
7. 小结
Data Lake Analytics(https://www.aliyun.com/product/datalakeanalytics)产品公测二维码:
技术介绍、教程、使用相关
- Data Lake Analytics-数据分析时代迎来新变革
- 为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics
- 基于 DataLakeAnalytics 的数据湖实践
- 教程:使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集
- 教程:Data Lake Analytics + OSS数据文件格式处理大全
- Data Lake Analytics中OSS LOCATION的使用说明
- 教程:如何使用Data Lake Analytics创建分区表
- 使用Data Lake Analytics从OSS清洗数据到AnalyticDB
- OLAP on TableStore:基于Data Lake Analytics的Serverless SQL大数据分析
- 如何在阿里云上使用Data Lake Analytics分析Table Store数据
- 教程:使用Data Lake Analytics读/写RDS数据