开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:快速构建轻量级云原生数据湖服务(一)】
课程地址:https://edu.aliyun.com/course/3112080/lesson/19071
快速构建轻量级云原生数据湖服务(一)
课程目标
学习完本课程后,你将能够:
1、了解数据库的基本概念、云原生数据湖应用场景和业务价值
2、掌握阿里阿里云DLA功能特性、基本技术原理以及亮点。
3、掌握如何快速构建DLA分析服务、一键建湖,实时建湖的技能。
内容介绍:
一、 DLA简介
二、DLA分模块介绍与竞争力分析
三、DLA典型应用场景介绍
四、DLA一键建湖、实时入湖介绍
一、DLA简介
1.数据湖发展历程简述
在2009年以前是以Greenplum为典型代表的传统数据仓库在数据、数据类型、数据规模和数据交换上面临着极大的挑战。
随后在2010年左右,以Hadoop体系为代表的big Data兴起,同时在Hadoop上构建传统的数据库服务成为一种趋势。
但是,随着数据的快速增长,在部署架构上、权限体系上和数据接入上再次面临着巨大的挑战。比如:计算存储进行绑定,存储和计算的浪费十分严重。
随后在最近几年,在云计算的加持下,云原生数据湖开始兴起,所以在借助云计算的形态,如今实现数据库走向计算存储分离部署的架构,在存储计算上进行分离,同时存储能够达到EB级别的弹性存储。
在计算上实现丰富的计算引擎,能够实现交互式的查询,ETL的批量处理,包括机器学习。在数据记录上同样接触更深更丰富的生态构建,包括数据库的数据和日志数据和日志有数据。在权限体系上进行更严格和更丰富的设计,包括数据的共享、数据的表权限、库表权限的隔离。
2.DLA基本概要介绍、实时入湖介绍
(1)DLA云原生数据湖分析简述
云原生数据湖分析服务DLA是新一代的大数据解决方案,基于OSS快速构建低成本的数据平台,一站式提供统一元数据管理。能够支持数据库数据和日志数据高效入湖。其中,完全兼容了 Serverless Spark 和 Serverless Presto 来满足在线交互式查询流,流批量处理,包含有联邦分析等。
DLA是一个双计算引擎的产品,能够100%支持和计算Spark、Presto引擎。同时,以围绕着此计算引擎和OSS作为数据湖的存储底座,打造一个一站式的数据湖管理平台,能够支持分钟级延时的实时数据入库,包括在元数据的管理上,权限体系的管理上,产品形态上,实现了云原生的弹性能够在分钟级别弹出数百个节点。
(2)基于DLA构建数据分析平台
上图左侧DRA能够支持非常丰富的数据源,包括传统的关系型数据库,NoSQL大数据体系,Hadoop能够支持Presto的ORC等等数据类型。
包括以OSS为核心的数据存储或OSS上的文件,阿里云数据库,数据库备份服务,包括日志流,SLS直接投递到OSS上的文件。
同时能够支持流失事件,包括上报到卡夫卡LT事件,LT事件能够接入到数据湖的双计算引擎Spark和Presto,在双计算引擎之上,我们实现了一个DRA的formation,Data Lake Formation能够实现原数据的自动感知、自动发现,从而实现一键建湖、实时建湖和增量建湖。
在数据接入层,为了降低用户的接入成本。100%兼容了My SQL介入协议和Spark介入协议。同时在管控体系上实行了严格的安全管理和授权机制,在元数据管理上能够实现自动元数据感知,自动发现,同时能够以开放的形式,支持原数据的元数据的共享。
在右侧能够支持丰富的调度系统,包括阿里云数据库管理服务、数据治理平台data works,在BI层面上也支持BI系统。
二、 DLA分模块介绍与竞争力分析
1.DLA分模块介绍
DLA主要的模块是构建于阿里云的K8S和ECI容器之上,在容器之上选择是以护底格式为主的LakeHouse,从而实现增量建湖和实时建湖。在数据层之上,有一个数据缓冲模块,Cache模块,此模块使得我们能够在数据库上实现一个高性价比,在性能上能够实现数倍到十几倍的性能提升。
计算引擎是一个双计算引擎的模式,Serverless Spark能够实现复杂的批处理和机器学习,在Serverless Presto上,完全通过一个纯SQL的形式来实现基于数据湖进行在线交互式查询。同时在元数据的构建上,内嵌和封装了Data Lake Formation,从而实现元数据的自动发现和元数据的对外服务。
(1)DLA数据湖存储-OSS
支持万亿级文件数目,无文件数量限制
支持EB级别的海量存储规模,无容量扩容难题
RESTFul协议,无平台限制,支持直接互联网访问,消除数据通道对接限制
分布式系统架构,高可靠、高可用、多种数据冗余能力可选
具有完善的安全访问控制
多种存储类型选择,提供更多成本优化空间
数据湖DLA只是一个数据符的计算引擎层,数据湖上面主要的存储层则以OSS为核心构建的。OSS能够支持万亿级别的文件数量,文件数量是无上限,同时,它也能够支持EB级别的海量存储规模,所以不存在数据湖上有容量规模的问题。它使用接入协议同样丰富,也是一个分布式的架构,在高可靠和高可用上,能力非常强。在安全管理上丰富多样,并且能够做到非常完善的安全访问控制。在存储类型上,能够支持多种存储类型,特别是数据弧,非数据弧上面护底的格式Bucket ORC,也包括我们一些传统的CV格式等等。
(2) DLA元数据:开放访问、兼容HiveMeta协议
元数据模块是一个内嵌的、开放访问的、兼容HiveMeta协议的模块。它以多租户形式对外进行服务的同时,能够实现库级、表级和列级的权限管理和控制,在针对大表进行分区管理同时能够感知来自OSS、包括阿里云日志服务,并投递到OSS上的数据能够自动感知,自动维护,当有一个新文件出现时,它能够自动去感知这个文件的生成,并去维护和更新自己的元数据,同时也支持表格存储OTS,各种数据库的元数据的更新。同时,也能通过OpenAPI的方式把自己的元数据进行开放,让用户能够自己去查询、感知和使用。
(3)DLA LakeHous:数据库据流、日志流快速入湖
DLA LakeHous 解决了传统数据湖的难题,传统的数据湖数据只能通过批量入库,而且是高延迟的入库方式,并且湖里的数据更新DLA LakeHous的出现,使得我们将数据入库的延迟从天级别缩短至分钟级别。
同时,它主要是以护底格式为核心来构建出来的,它分为copy on right的table和MOG on rid的table,从而实现增量的入湖和实时的入湖。并且它能支持数据库的数据update delete的小文件自动合并,lakeHouse也是数据湖最近几年发展的主要方向。
(4)DLA弹性Spark:Job力度弹性、优化版本的Spark
DLA产品区别于其他数据库解决方案的一个最大的亮点是它的弹性能力。
上图右侧是在用户的实际使用场景里,DLA对计算资源的消耗不是一成不变的,在不同的时间点,对计算资源的需求是完全不一样的,假如提供一个高度弹性,高度按需,高度按需弹性出来的数据湖的一种产品形态,则能够比客户自荐的Spark,或者区别于其他数据湖分析的方案,有一个比较强大的成本优势,所以DLA Spark job级别的弹性,从而能够比自建的Spark节约50%的成本。所以它是一个快速、按需、弹性的一种产品形态。
(5)DLA弹性Presto:在线交互式查询、优化版本的Presto
Presto是构建在弹性产品形态之内的,首先阿里巴巴以DLA为代表是Presto基金会的成员,一同参与下一代Presto开发。
第二,Presto在大数据在线交互式查询运擎上,是一个具有话语权的计算引擎。在DLA里,它能够实现租户级别的隔离,将大跨类和其他小跨类的资源增强,从而做到资源隔离与管理。
因为Presto是面向在线交互式查询,所以在数据库解决方案里,交互式查询往往需要依赖于数据的cache。所以在Presto计算引擎下,空间数据湖里有一个catch加速层,通过它,则能够实现至少十倍的性能提升。
DLA Presto也是一个分时弹性的形态,能够根据客户按需来提供按需的计算资源,从而提升更强大的性价比。
(6)生态工具:高度兼容、丰富生态工具
DLA的接入层能够实现能够MySQL的访问协议,从而能够让客户通过SQL的形式来实行交互式的分析。
所以在DLA Presto引擎下,我们能够支持丰富的生态工具,比如Table等,包括我们的调度系统;比如,阿里云的Dataworks、DMS,包括社区的呃,Airflow等等,在DLA Spark形态下,则可以做到100%兼容Spark。
同时能够通OpenApi方式,或者RESTFUL方式,来提交各种教辅作业,在任务调度上,也支持Dataworks、DMS、Airflow等等。
(7)DLA Spark性能数据介绍
上图,以TeraSort 10TB的数据做性能对比,在对比自建Spark和通过DLA Spark两种方式对比下。在10TB的性能下,我们采用计算引擎对齐资源规格对齐,在这种对齐下,图右侧是性能和价格的对比,我们可观察到利用DLA Serverless Spark,在spak上面的内核优化上,实现性能100%的提升,同时,在成本上,做到50%的成本优化。
(8)DLA SQL(Presto)性能数据介绍
DLA Presto面向的是交互式查询,所以在交互式查询上,我们在DLA里内置的一个catch,通过catch层,看到包括我们对Presto的内核优化。以1TB数据量的TBCH场景,在OSS中使用ORC的模式,在TBCH下可以看到通过优化,能够实现至少两倍,性能提升。