00:00
啊,大家好,我是来自腾讯云大数据基础产品中心的陈龙,我今天给大家分享的内容是如何基于云上和腾讯云em构建上,我首先做一下自我介绍。那么我目前负责腾讯云E的研发工作,先后在百度、支付宝做后端研发,2011年加入腾讯,先后参与了腾讯云、腾讯云云数据库、h base以及业等多款云产品的开发。我个人也向HP have等多个社区贡献过代码,如下是我今天分享的内容的提纲。我今天分享的内容分为四个部分,第一个部分是云上house基础架构。是在云上如何基于高性能执行引擎stars和em构建house。那么第二部分是云上Li house性能优化,在计算存储分离的场景下,如何有效保证Li house高性能?第三部分是云上Li house成本控制,如何利用云的弹性能力进行架构改进,降低house的资源成本。
01:12
第四部分是star的产品特性,通过的产品化能力,如何让云上的stars更加用和更好用。接下来我们看在云上如何构建。House这个词这几年可谓炙手可热,对于house,可能大家最直观的理解的就是数据胡仓一体,到底什么是胡仓一体?或者是说那house到底要解决什么样的问题,到目前为止没有一个统一的标准,那么我今天也来尝试回答一下这个问题,那么我理解的那个号是是基于现代化云上存储计算分离架构之上,解决了如下问题。第一是数据重复,尽可能解决维护多套数据分析系统,比如说合仓的数据重复,去除数据的重复性,真正做到of trust。
02:05
第二,要是要有低廉的存储成本。在数据分析领域中,一般计算和存储都是不对等的,云上的对象存储大大降低了数据分析对数据分析的存储成本和运维成本。三是在技术形态上要有统一的架构。在现阶段数据分析场景中,面向不同的场景以及不同的需求。所需要的技术架构也不尽相同,那么早晨的问题就是系统非常复杂,运维成本高昂。第四是要有效的降低数据分析的计算和IO成本。现在的数据分析系统大多是基于哈多生态技术站构建,存在的问题就是数据更新和删除需要通过ETL来进行,会造成大量的重复计算,从而导致计算和IO成本上升。那么基于house要解决如上问题,那么house从技术上要具备什么样的核心能力呢?
03:07
那么第一是事物支持和多版本控制内耗需要处理多条不同的数据管道,需要在无破坏数据完整性的前提下支持并发读写事物。第二是要需要高效的更新。基于数据合规和数据更新是业务客观存在的需求,如何高效对数据更新是house核心能力之一。其三是高效数据消费数据分析、场景查询是非常复杂的,那是需要具有面对复杂业务高效响应的能力。第四是便捷的数据管理能力。数据感管理在Li里面至关重要。数据管理不仅仅是业务数据上质量管理、数据关系的管理,还包含底层数据索引、源数据版本管理等。基于以上分析,可以得出house需需要如下四个技术基础组件。
04:04
第一是统一的数据格式,那么基于这个数据格式呢,可以完成事务管理、高效更新等。第二是统一的执行引擎,通过统一的执行引擎完成ETL类分析和机器查询类分析。第三是要有数统一的数据管理,提供完完善的数据质量、数据分析、数据科学、数据格式等管理能力。第四是统统一存储,价格低廉、高稳定性、高可靠性的统一存储。基于这四个核心技术条件,在云基础平台上,我们看如何一步一步的去构建云上ni house。我们首先从技术架构上去拆解云上ni house,从技术角度看,可以分为如下五个部分,第一是技术资源层,云上的云服务器我金属以及容器可以为out提供海量的计算资源,同时还可以通过弹性实现资源随负载的变化而变化。
05:01
第二是云上存储层。云上对象存储、云SDFS文件存储提供了面向不同业务场景的低成本、高可靠性、高稳定性的存储解决方案,而且云上存储时使用按量计费,成本更加低廉。第三层是data data storage层,也叫表格式层。这层使用开开源的技术,在技术解决方案比如IB屋底,同时云上的IB和护底也也针对云存储和计算做过大量的优化和扩展。基于开源的表格式的好处呢,是开源开放,格式透明。第四层是统一的计算引擎层,统一计算引擎需要具备ETL和继续查询、快速响应的能力。那么在现阶段呢,我们都是通过Spark来做etr,通过star rocks做机器机器分析。第五层是统一的数据管理层,在这一层要提供完善的数据治理。数据管理可以通过围达实现数据质量、血缘、数据科学等基础,基础管理通过em service可以实现更底层的表格式的快照、四五效文件以及所有管理的能力,降低了cos使用的门槛。
06:18
基于那个house技术架构,我们接下来看如何从数据角度使用云上的云上的产品把那个house给组建起来,从数据层面,可以从数据的六个层面来使用云上不同的产品来组合来构建的cos。数据分析面向的数据类型复杂,数据体积、延时各不相同,数据原层大为大致分为三类,第一类是数型数据库产生的数据,一般为应用系统、应用程序产生的数据,比如说CRM或者ERP等。那么第二种是日志的数据,主要是有应应用程序产生,第三种是物联网、传感器等产生的持续数据。数据分析的第一步,即时把这些数据尽可能实时的流入到那个耗时之中。
07:05
呃,数据的流入,或者叫数据集成,那么在云上我们可以通通过多个产品实现。对于事物类引擎产生的数据呢,我们可以通过em或者Spark导到Li house之中,对于类数据,我们可以通过em或者是消息服务一对的应导入到house之中。对于流失数据,我们可以通过em Mr Spark或者O型导入到那中。具体选用哪种方式,可以根据实际具体的业务成本及技术技术站来综合做选择。流入活动数据呢?可以根据业务场景统一存储为Google smart,那么具体选取哪一种格式,可以根据自己业务的实际需求。目前页上支持I物体两种格式,其中I做了Z索引、point等很多功能性的优化,那么接下来内容呢,我会做分享。那么流入服务中的数据呢?可以使用对象存储HDFS或者CHDFS作为底层的存储。
08:07
那么同时云上的和体基于对象存储做了很多性能方面的优化。呃,围绕呼合时,对小文件、快照清理、casting索引管理等一直有着较高的门槛。虽然iceber和护理也提供了相应的produce,但是使用的门槛还是比较高。那么因此em提供那service可以很方便的自动化的去做小文件合并,快照清理等。对于胡歌,呃,胡歌是内部的ET,比如classing,可以通过1EM的离线离线etr来实现。为了达到较好的性能,建议对胡格斯定期的做classing。那么做好class斯后的数据呢?可以通过巴里star rocks来分析这些数据。Starworks在plan优化层面引入了CPU和分区裁剪等功能,那么在starck在执行层面呢?通过向量化值引擎和化的OC和来保证每一个S都会有良好的响应。
09:07
同时在应用层面,应用层还可以通过DLC来来查询弧点的数据,实现联邦分析,那么也可以通过O来实现CDC功能。接下来我们看如何通过多个MR机群来实现这个能力。通过em来构建那house我们分别从离线链路和实时链路来看,通过em以搭建积木的方式来构建那house。在离线链路。离线数据通过D工具进行入户,数据格式可以呃是I和或者是物体,也可以基于have的传统离线模式使用orc,或者它会作为文件格式来存储。因为目前使用S或者估计的时候缺乏嗯,完善的东西去做小文件合并数据的cost,呃,这些操作又会消耗计算资源。因此提供了Li service服务管理服务来简化对IB和户体的使用。em service提供的快照合并、事务管理、小文件合并以及所引管理的能力。同时云上stars支持的访问云上对象存储的能力,直接可以查询物体和S里面的数据。
10:19
结合云上对胡格斯的优化以及stars c向量化执行等,获得良好的性能。构建那个耗的目的呢?是在数据分析的时候有更好的性能,更低的成本,那么这里的成本包含技术成本、运维成本、使用的计算成本和存储成本,同时整个系统要有要有着很好的可用性。接下来我们看在性能成本和可用性方面面临的一个问题。首先我们看性能问题。呃,在云上存储为统计对象存储对象存储和卡顿生态的HTFS还是存在一定的差异性,如何保证数据入户和查询效率是一个不小的挑战,同时还需要star rocks高效的读写云存储提高技能。传统的方式是扫描尽可能的。
11:11
扫描少的数据文件和良好的索引,在IO层面上有很好的IO能力。那么在成本方面呢?包含两部分成本,一是硬件成本,在大多数数据分析系统中,存储和计算并不对等,如何实现存储成本量化,计算成本量化也需要对现有架构进行改进才能实现。另一方面。另一方面,数据分析系统非常复杂,如何高效运维是一个很大的挑战。可用性方面,对象存储保证了数据良好的可用性,但是如何高效稳定的使用格式是一个很大的挑战。尽管和护理也提供了一定的管理工具,但是可用性依然很低。因此在云上需要提供标准化的产品能力去提升活的可用性。接下来我们看如何实现云上数据分析高性能。
12:07
我们首先来看rocks引擎层面的性能优化。在可用性方面,Stars架构简洁,整个系统核心只有fe和BE2类进程。不依赖外部任何组件,方便部属于维护,同时F1和B模块被在线水平扩展。原数据和数据都用副本机制,确保整个系统固单点。fe是starcks前端节点,负责管理数据。管理客户端链接进行查询、规划、查询调度一配置。根据配置,有两种类型的角色,Follow和观察者。那么follow会选出一个leader,只有leader会原数据进行写操作,非节点会自动的将原数据写入路由到leader节点,每次原数据写入的时候必须有多数的follow写入成功才算成功。那么观察者不参与选组操作,只会异步同步并且回放日志,用于扩展集群的查询并发能力。
13:08
每个f fe节点在内存里面都会保留一一份完整的原数据,这样每个f fe节点能给我提供无差别的服务。Fe为了保证性能,在做完语义分析之后,还会进行分区裁剪。你过滤掉不必要的数据,同时还会基于开头那里面的统计数据进行CPU优化,以使生成的物理执行计划是最优的状态。B是starrocks的后端节点,负责数据存储以及收购执行等工作。B为了保证良好的性能和扩展性,在执行层面引入了向量化执行器,使用SIM指令集来获得更高的性能,而同时设备又有又有着较低的负载。同时B在IO接口方面有着良好的扩展性设计,这使得很可以很方便的去扩展实现云存储,比如说对象存储、CDFS等存储。
14:06
因为传统存储系统并不支持协议的标准文件系统API,因此在某些系统API调用的时候会有着更高的性能开销,因此云车为了降低应用车的改造成本,同时又有着更高的性能,实现了融合存储技术。使使得传统对象存储在调用文件系统API的时候呢和。和传统文件系统有着一样的性能表现,同时为了加速云上,Star也说两层和物化视图技术。Block catch技术在B节点缓存底层存储数据块实现就近访问,可以通过良好的淘汰算法保证上层有极致的性能。block因为云上X是工作计算存储模式下。主要是缓存。对象存储数据到计算节点,通过启来访问对象的延时获得良的性能。
15:04
物化视图技术。这里的物化视图是对是,是指对经常使用的结果基金进行物化,在查询的时候通过F1的circlel直接读取物理物化结果来提升性能。那么要获得良好的性能,除了有良架构、良好的执行引擎之外,对于数据的组织和索引管理也尤为重要。腾讯云。做了大量的优化工作,接下来我分享腾讯云EI在上做的Z索引技术。那么,多维分析师大数据分析的一个经典场景。这种分析一般带有过滤条件,对于此类查询,尤其是在高级字段查询的过滤。过滤查询,理论上我们只需要对原始数据做合理的布局,结合相关的过滤条件,查询引擎就可以过滤掉大大量不相关的数据,只读取据很少部分数据。
16:03
就可以。例如我们在入库之前对相关的字段做排序,这样生成的每个文件相应字段的mmax值是不存在交叉的差距,引擎下推过滤条件跟数据源结合每个文件的mmax统计信息,这样就可以过滤掉大量不相干的数据。上述技术即是我们通常所说的dataing和datak。直接排序可以在单个字段上产生很好的效果,但是如果多个字段直接排序,那么效果会大打折扣,那么zo可以很好的解决多字段排序问题。那么是一种可以将多维数据压缩到一维的技术,在索引及图像方面使用较广。那么曲线可以将一些一条无限长曲线填充到任意维度空间,对于一条数理来说,我们可以将其多个要排序的字段字段。看作是数据的多维内曲线,可以通过一定的规则将多维数据映射到一维数据上,构建ZY6,进而可以基于该一维数据进行排序。
17:09
那么我们不用去太去理解这个zo的在数学上的意义重点,它为我们解决问题带来的思降为。解决问题其实就是要利用空间填充曲线,对多维数据,比如一张表的多个列进行较为处理。以提升相关数据具体效果以及相应数据max的使用效率。那么以这张胶片为例。假设红色块是我们查询中V部分V的条件部分,正常情况下,在数据没有被class class前,这些数据分布在N个数据文件之中。也就是这样的一个要扫描大量的数据文件才能得到结果集,而我们对数据重新排序、定义卡甚至Z缩引之后,红色块的数据只会分布在部分文件之中。
18:02
查询已下推,下推过滤条件跟数据源结合每个文件mmax统计信息,即可过滤掉大量不相干的数据,这样就可以大幅提升性能。腾讯腾讯云中的E的S在zo的zo的特性领先,领先于社区一年进入生产和环境。下面是E的,呃,Zo的支持的数据类型。页中的索影不不仅支持基础数据类型,比如int string we data基础类型之外,还支持符合符合数据类型,比如map,以简化业务使用内索引。同时还提供了S语法进行Z索的构建,比如my table column,进一步降低客户使用Z引的门槛。那么以下是基于腾讯云EMS索引基于SSD的性能测试报告。基于SSD的呃,性能测试硬件为磁盘八核32G,磁盘为云SSD的标准型机型,那么从图中我们可以看到。
19:09
在查询引擎方面。基于Z的查询性能相比随机扫描有十倍的性能提升,那么相比小文件合并呢,也有二到五倍的性能提升。在数据扫描方面,基于的数据扫描量只有随机。石有随机和小文件合并数据扫描量的40%,那么这里还有一份,呃,来自业务真实业务的数据啊,就是业务总,总数据量大小是1.78TB,总行数是200亿条。那么使用的计算资源是200 200个CPU。同样的条件下,未开启Z的查询需要1030秒,而开启Z的只需要29秒。除了通过Z的提升性能之外,E中的S还考虑到离线和数据安全。提供了换的功能,进一步降低使用的门槛。
20:01
试用po是指将某些文件组织为组织标记为已保存,以便清理程序不会将其删除。在发生灾难和数据恢复的情况下,它有助于数据集还原时间轴上的某一个节点,同时页中S还实现了star rocks have Spark,在查询的时候按照C判去查询全量数据,可以做到流批融合,既满足了离线离线场景又。又不对现有业务架构做任何调整。页中的提供的信工具可以将传统中的离线表直接转化为格式中的S表。C的具具体技术原理是基于I的快照和他功能。在原表基础上实现了基于事件时间的快照标记功能。简单说。可以理解,在原表基础上。查看某个事件时间的全量。全量拍照突出一点,不同的是这里强调的是基于数据的事件时间,而不是处理时间,那么在生生成好这些C之后呢?可以在。
21:10
在stars have SPA中。读取的时候可以根据Meta Meta表里面的最新的的信息,就可以查询某个时刻的全料数据。那么在性能方面,妈做了腾讯云妈做了大量的优化工作,今天分享只是一小部分。接下来我们看在数据分析成本方面如何做成本控制。雷克耗是成本控制,即呃即是实现,那个耗是数据分析,成本量化。要实现成本量化,我们先从现有的技术架构看问题所在。那么以哈集群为例,常规的部署,常规部署的时候,你进程data load和计算进程load manager为了保证计算数据的亲和性,正常都是部署在一起的。那么我们再来看star rocks。
22:01
S be级点既负责计算又负责存储,但实际情况就是计算和存储并不对等,有的时候计算是平级,有的时候存储存储式平级,特别是基于云的环境下,存储全部为云存储,涡克节点只是负责计算,这个时候我们只需要保留较少的存储节点用于存储。计算的中间临时结果和日志。这个时候我们就需要对集群的部署结构和引擎内核做改造,以设备上的架构。下面我们看如何进行改进。我们首先来看集群,我们把一个集群的top分为master route Co和ma task4种类型的节点。root节点用于水平扩展无状态比较重要的服务。或者是基于云基础设施简化组件的高可用。比如,我们可将部署在root节点上,也可以将quality data部署在root基点上,通过云的负载均衡来实现故障自动切换。
23:06
而扩节点。相比传统模式下的存储节点而。而task节点作为计算节点,上面只会部署计算进层,而对于star集群,腾讯内部团队对传统的B点机器的拆分。把存储进程和计算进程拆成了两,拆成了两类进程,原来的B节点还负责存储,而计算由新的节点声声音来负责。至我们来看基于这种架构,如何通通过原上弹性能力来大幅降数据分析成成本。在自愿维度看。对于扩。或者是B节点即为固固定成本,而或者声音节点即是计算节点,可以使用云上提供的自动伸缩,让task节点的规模随着负载的变化而变化,使用的资源可以是云上的。com竞价实力或者是容器。那么这里我单独分享一下烟中离三项混合部符的方案。对于卡的集群,那么我们采用的方案是亚氨容器或者是SPA容器,这种方案的好处是业务不用修改任何一行代码。
24:15
对于容器集群,如果是嗯TPE,则可以通过TPE直接使用业务在线服务器资源,对于跑的场景特别适用。正常情况下。业务服务器在业务是夜晚是低风,呃,夜晚则是跑批的高峰,也可以使用云上的EKS,那么使用EKS则不用关注具体的机型,那么用性更好。那同样对star集群则是一样,可以通过离散离散线混合部署,将声音节点直接部署到容器集群之中,通过自动伸缩竞价实力和服复用容器里面的在线资源来降低成本。那么接下来我们看EI里面提供的弹性化产品,弹性化产品能力。
25:01
在弹性能力上,烟妈提供了三种弹性模式来让开发者便捷使用云上的弹性能力。第一种是托管伸缩,托管伸缩是指自动调整集集群大小等功能。能够以最低成本实现最佳性能,只需要设置集群最低与最高限制即可使用。托管伸缩能够自动根据负对集群资源机器规模化伸缩,借此实现最佳性能与最低运营成本,无需预测负载模式或者编写自定义逻辑即可以即可轻松建立弹性集群。在弹性资源上可以选择CM竞价实例容积和裸金属。同时缩容,缩容过程中支持优雅缩容,配合内核上的改造,在缩缩容过程中呢,可以不会导致query失败。第二步是自动伸缩,自动伸缩相比托管伸缩,那么自动伸缩需要显示去设定规则。那么自动伸缩提供了两种模式,第一种是按负载伸缩。
26:04
这种按负载伸缩可以根据,呃,可以根据引擎里面的。负载情况进行自动的扩容或者是缩入。而按实间伸缩则可以通过某个时间点进行扩进行扩容,或者某个时间点进行缩容,对这两种伸缩模式的资源都是都支持CM容器、竞价实和裸金属,同时不仅支持优雅,还支持这些资源具体加入到某个资源队列或者是签。以降低业务使用的门槛。那么第三种是手动缩,在这种模式下,一般用用于手动扩缩容,同样支持优雅缩容,对于存储节点,在缩容的时候会自动搬迁数据。无需关注,无需关注所有的细节。以上是叶妈对S在数据分析中对针对资源成本层面的优化,那么接下来我我介绍云上页妈围绕大做的提供了哪些产品化的功能,到云上大做是更加易用。
27:10
云上star rocks从如下四个维度提供了产品化的能力,结合云基础设施,要让云上stars更加应用和好用。第一是集群操作,在集群操作层面提供了创建、扩容、缩容以及集群节点变配的规格变配的能力。同时,对于stars。的管理,Web UI提供了统一安全代理。针对star source快速发展和版本变化,业I提供集群类版本自助升级和引导程序的能力。以便快速更新和自助和自助开发。第二是集性管理层面,集性管理层面提供了配置管理,支持f fe be的基础配置文件管理,同时还支持自定义配置文件,以便访问不不同的数据源,同时还支持对不同的机型。
28:04
配置分组和配置分类的能力,让开发者一目了然了解每个配置项的含义和默认值。呃第三是服务,服务进程管理,管理针对十大十大X的服务进程,Em妈提供了安全启停、进程监控以及一些高阶操的产品产品化能力。第一次是集群am,针对star rocks集群的am em妈提供的从S层面到star rocks组件层面。各个维度的基础监控告警能力,那么监控指标大盘可见,同时还提供了呃进程日志,日志搜索能力。针对集群的关键事件提供了集群事件集群巡检能力,让开发者在第一时间掌握集群的健康情况。那么以上就是我们今天关于基础基基础设施和star rock来构建的,从而在性能和成本方面做到良好良好控制的分享,谢谢大家。
我来说两句