云上Doris最佳选择:云原生数据仓库SelectDB
内容介绍:
一、阿里云SelectDB版介绍
二、阿里云SelectDB版核心特性
三、阿里云SelectDB版新特性介绍
四、阿里云SelectDB版案例介绍
五、现代化的监控观测平台
六、SelectDB驱动的新一代监控观测平台
本次分享的主题是云上Doris的最佳选择,云原生实时数仓SelectDB。首先简单介绍SelectDB,然后介绍核心特性,最后分享点击场景下的客户案例。
一、阿里云SelectDB版介绍
介绍SelectDB之前,先介绍Doris这款产品,Doris是一款开源的实时数仓,已经发展十多年,所以非常的成熟稳定,成为Apache基金会下非常活跃的顶级项目。从一些统计数据可以看到,Doris已经成为Apache所有项目中官网访问量第一的产品,并且阅读活跃开发者数量超过熟知的Flink ,Stack, Kafka这些常见的项目而且Doris已经在全球吸引近4000家中大型的企业用于生产环境中。SelectDB跟Doris之间什么关系。SelectDB实际上是一款基于Apache Doris的云原生实时数仓。
SelectDB可以从数据库,数据流,数据湖等各种数据源场景下汲取数据,用于熟知的一些数据分析场景,比如高并发的实时报表,要求非常严格的交互式分析场景,以及日志分析场景、数据工程、数据科学等各种各样的数据分析场景。由于Doris的需求非常的强劲,阿里云和飞轮科技SelectDB公司,建立战略合作,在阿里云上推出了Doris的服务,这款产品的名字叫阿里云数据库SelectDB版,然后由阿里云和SelectDB公司一起研发支持,并且打通Apache Doris的开源生态以及阿里云产品的生态。这是整个SelectDB产品的技术介绍。
二、阿里云SelectDB版核心特性
然后看SelectDB的一些核心特性。
SelectDB的核心特性有四个,一个是原生架构使用云的基础设施,提供极致的弹性以及极致的性价比。
第二个核心特点是实时极速,去满足客户越来越多的实时化的数据分析的需求。
第三个是融合统一,去简化传统大数据架构里面看到的一堆数据组件,导致架构非常复杂的问题。
第四个是开放生态,通过开放的生态对接大量的周边生态,方便客户的使用。云原生架构里面一个很关键的点,就是存算分离,基于存算分离可以得到几个非常好的特性,一个是计算存储分离,客户可以非常快速灵活,并且进行无限制的扩容。
另外,计算存储分离之后,多个计算实际上可以共享访问下的数据存储,这个时候收益,计算,负载之间可以得到天然的多业务之间的隔离,并且存储达到多业务之间的共享,解决数据共享的问题。这是技术上的东西。
从客户的角度,云原生架构给客户带来什么东西,第一个是云原生架构可以带来极致的性价比,可以从SelectDB的架构上看,从底层往上,SelectDB最底层存储采用对象存储,非常廉价,由于对象存储具有非常高的可用性,所以SelectDB在上层消除分布系统里面的副本机制,使得存储成本进一步降低,存储成本整体可以下降66%。
第二个维度,计算层。计算层由于存算分离之后,计算可以非常好,非常快速的弹性伸缩,并且单副本的情况下,已经消除多副本的计算,异步任务的处理各种过程,计算成本实际上可以达到50%,甚至往上的节省。云服务的接入层是由云平台管理,客户不需要关注,可以看到存算分离架构的成本优势非常明显。可以得到非常好的灵活弹性跟资源隔离,整个技术栈从下往上都有一个完整的灵活的弹性,比如存储是对象存储,是按使用付费,用多少付多少,所以是实时弹性的,缓存层面支持弹性的扩容。缓存用来加速对象的访问,支持平滑的、无感的,弹性的扩容。
计算层面,没有状态之后可以按需的实时弹性,客户能看到整个技术栈的弹性、灵活性非常好,计算层面支持用户在不使用的情况下像虚拟机一样停机不收费,只有一个存储的费用,成本非常低,最后一个是资源隔离。SelectDB实际支持多个计算集群访问同一份数据,多个业务共享数据,并且共享访问的数据,客户之间是强一致,强一致达到多个集群可以多读多写,任意一个集群都可以写入,并且任一个集群都可以查询最新的数据,而不是历史的数据。
第二个核心的特性,实时极速,客户都能感知到现在对于实时分析的需求越来越强。要求数据进来一定快,要达到秒级的水平,并且有分析的时候体验非常好,点击快速出结果,SelectDB在实时写入方面做比较大量的工作,支持秒级的写入,然后支持高效实时的更新,支持秒级的加减,变更schema,使得实时的整个链路对客户非常顺畅,在查询方面要求速度快,做到在多个场景下高并发点查,宽表、多表、join,数据湖,分析场景下的性能都达到业界领先的水平。
看一组具体的公开数据,在今年五月份打榜ClickBench,就是公开的宽表查询引擎,拿到业界全球第一的水平,在今年NineData发布的数据库的多表关联参与场景下,SelectDB拿到业界第一学术界的产品,还要领先一些,在数据湖场景下,SelectDB可以达到Trainer、 Pressure等产品的三倍的性能,看到在多种负载下SelectDB的性能都非常领先。
第三个特性是融合统一,在传统的大数据技术栈下,客户通过多个引擎满足自己的业务需求,比如有流式的,有批量的,有实时的,有交互式的,还有各种各样的其他的一些系统,使整个系统的组件非常多,数据链路很长,运维复杂,成本也高,问题非常多。
SelectDB通过一套系统解决多种分析的需求,做到多种分析负载的统一,多种分析负载的性能都非常好,第二个是支持多种数据源,包含数据湖,数据库中的数据都可以分析,并且可以把数据服务的数据拿进来做联邦分析。
第三个是支持业界客户越来越多要求,半结构化数据的分析,达到一个对于半结构化数据有结构化数据分析的性能,有半结构化数据schema的灵活性。SelectDB通过All In One的一套架构来解决用户复杂的大数据的技术栈问题,使业务专注于上层的数据应用,不需要管底层的数据的基础设施。第四个是开放生态,希望打造一个开放生态和生态中的周边,能够快速的对接起来。
简化用户的使用,重点体现在三个层面,第一个层面是跟Apache Doris生态的开放兼容,保持数据格式以及接口的完全兼容,Doris的用户觉得SelectDB做的不错,可以快速迁移过来。如果发现还有改进的地方,可以迁出去,保持一个开放,与MySQL生态的兼容。实现MySQL的连接协议和方言,兼容MySQL生态。MySQL里面的JDBC,ODBC连接器,各种连接工具拿过来基本上直接用,MySQL的生态非常庞大,对产品非常好。第三个是与周边数据源,数据生态的打通,SelectDB高吞吐的开放的数据API,跟数据库一样,数据可以进来,也可以出去,SelectDB基于API做跟云上数据库的打通,跟云上大数据的打通,DPS产品做一键的集成,这是SelectDB的四个核心特性,云原生的架构,实时极速,融合统一,开放生态。
三、阿里云SelectDB版新特性介绍
下面介绍SelectDB的新版特性。3.0版本已经在云上持续稳定的运行一年多,最近发布4.0版本,首先是开箱即用,极致的性能,相比传统数据库,客户拿上来之后调优,得到一个好的性能,SelectDB在4.0里面实现大量的自动化的优化,往SARS方向走,包含自适应的查询化自动调优,以及导入的优化。直接性能是开箱即用的性能提升一倍往上。第二个是多表物化视图,多表增量的物化视图,优化复杂查询的性能。第三个是半结构化数据的增强,在索引的基础上继续引入Variant数据类型,结构化数据分析的性能,但半结构化数据scheme的灵活性,客户可以关注阿里云SelectDB的产品动态。
四、阿里云SelectDB版案例介绍
最后看阿里云SelectDB的一些典型场景下的客户案例,第一个是实时报表场景,SelectDB非常擅长的场景是在线的实时报表,比如国内在线的头部教育公司以及互联网金融公司,使用SelectDB做在线的Toc实时报表,它的并发量跟延时要求非常高,达到4000的QPS,20毫秒的延迟,金融公司有活动,早上的时候QPS直接达到上万。
第二个是即席分析,即席分析是典型的BI分析,交互分析,国内的互联网头部的内容分发公司在使用SelectDB作为它的用户行为与画像分析平台,它的平台里用户的月活跃有十亿级,所以是中国头部的公司,使用SelectDB替换它原有离线计算好用户画像行为分析的结果之后,导入方案,整体的结果相比原来的需求的交互效率,从七天到零天级,用户行为的数据延迟,查询耗时都有非常好的优化。
第三个是日志搜索与分析,SelectDB提供非常优秀的日志分析方案,相比阿里设计有十加倍的性价比的提升。合作伙伴观测云在使用SelectDB作为日志解决方案,然后提供完整的可观测性的产品资源,成本降低70%。另外国内头部的AI独角兽使用,每天的日志量可以达到400TB总数据量10个TB加。
第四个是统一的分析平台,是国内头部的服装零售公司,使用SelectDB作为公司统一的大数据分析平台替代它原来组建式的大数据架构。里面包含实时报表,即席查询、ETL处理,数据导出,基本典型的数据需求都包含在里面,整体替换之后,整个平台的性价比提升三倍,在每个场景下都有倍数的性能提升,这是SelectDB的点击场景和客户案例,方便客户参照理解,欢迎客户到阿里云上搜索体验SelectDB产品。
五、现代化的监控观测平台
下面分析SelectDB在观测云内部的应用案例。
首先观测云是目前中国唯一的真正意义上的统一的可观性平台,做实时行情场景要结合很多的数据平台,要管理东西非常多,从架构上非常类似,希望把完整的监控观测能力带到最终的用户,最后能够一个平台,一份数据,一个团队提供完整的服务,一个团队并不是指传统意义上监控系统给运维用的,要覆盖到产研团队等,包括开发团队,实际上客户可以看到一个监控平台本身要管理的数据,技术栈更多,不只是简单的产品,如果开源要构建一整套技术栈是非常复杂的,和SelectDB一起把事情变成一份东西,一份数据,同时在这些整合的技术栈后,提供整体的更新定位,团队协作,包括降低整体的用户运维成本以及资源部署成本。
整个平台可以看到最中心的是GuanceDB,把整个SelectDB在产品引擎上,整理成类似数据库的产能力,同时DataKit的平台可以从最底层的第三方包括MQTT,包括一些其他的硬件物联网的数据,到云厂商,到中间件,到各种各样的编程语言写的应用程序,最后到端侧,不管是安卓,ios,或是现在最新的鸿蒙,都可以整体的将所有数据相关的监控观测数据收集到平台,提供一整套的各种各样的服务能力。
DataKit是国内唯一的实现真正意义上的开放的数据采集平台。很多客户在现有环境中有大量的LXI的数据采集能力,或者LXI的监控系统,不仅提供一整套完整的支持能力,同时也兼容国内外主流的监控平台或日志平台所产生的数据,将它统一的收集到平台。
另外产品是一个非常完整的功能性产品,从最前端的用户侧的操作行为,到每一次行为访问中用户的旅程,到每一个旅程所有对应后端服务的应用调用链路,到链路背后代码执行的profiling,到最后所有发起请求的所有的组件网络请求,以及相关调用主机中间件的监控指标,都能在一个数据维度上,一个平面上,一个操作界面上给团队每一个用户看到一模一样的效果。
用产品前端,永远不用提付现两个字。如果公司有提付现两个字,本质上没有任何的监控观测能力,还是传统运维作为排障的传统监控工具。对于整个基础设施支持面非常广,除了对阿里云的飞天,包括阿里云的公有云都有非常好的支持。同对一些传统的IDC,包括一些工厂类里面的传统的服务器一体机都可以做到统一的覆盖,除此以外,能够将数据统一采以后产生各种各样的高阶应用。可以做日志,主机,应用,用户行为的智能分析。
客户如果关注,在月底还会推出智能分析能力-云账单的分析。可以自动收集各种云账单,如果哪个云产品的消费突然暴增,暴降,都会自动提示,在平台里面一切数据可观,不仅看到的机器数据,完成一个完整的用户感知,前端能力其实和神策之类的产品有比较大的差异,更强调对于整个应用程序开发在产品经理和应用管理上更好的分析应用程序的端侧的性能,而不只是云侧的性能,而不只是服务端的性能。
支持面非常广,从web到各种各样的语言,甚至最近有一款游戏上线也集成平台。游戏公司的unity端,3d端,2d端也支持,包括支付宝小程序,微信小程序都可以覆盖。
六、SelectDB驱动的新一代监控观测平台
然后介绍为什么选择SelectDB作为平台的底座,实际上这是GuanceDB的架构,把GuanceDB抛开来看,会分成两个部分,有自己的查询引擎,有自己的语言dicker,在引擎下面,提供两个Store,一个是Metric Store,另外一块是ElasticSearch和OpenSearch作为Store,中间有一个方式,为什么会切换到Elastic,成本是很重要的一个观点,但更重要的包括性能都在,所以把整个引擎升级,时序还是一个独立的时序引擎。但把所有的event base的数据,不仅是log, event based的数据。
全部放到SelectDB上,这是新架构,实际上自己的引擎和SelectDB之间的关系是,所有的查询语言是由自己的语言叫DQL,在场景中不可能用SQL。会构建一个自己的语言,所有的语言进来以后会做一个查询,同时所有的数据进来,要实时,要暂批。
自己有一个专门的数据写入的功能,它能够暂批保证数据不丢失,类似一个word效果来实现数据的流失的写入,保证数据整体延时不超过十秒,大部分场景下基本上都在三秒以内,为什么自己弄个语言,站在监控观测场景中,在指标领域有prompt,想通过一个语言把指标日志、用户行为包括应用的chasing数据全部能够统一查询,统一分析,需要一个比SQL更简单、更容易使用并且更能符合场景的一些查询语言。所以自己构建语言,并且可以做到查询加速。
长桥的数仓有一个高并发的问题,DQL本身支持在引擎侧做实时加速的功能,qps可以达到10万、20万,监控器或者各种实时大屏会出现海量的图表,高qps很容易出现,自己语言在这一层做加速,另外本身比较简洁,实际上比SQL简洁,学习成本不高,另外特别要强调,对SelectDB很重要的选择是Variant,看到阿里云SelectDB 4.0支持Variant,现在有几个客户同时上线SelectDB 4.0,可观测性数据有个最大特点是,从普罗米修斯体系就知道,包括log数据都是半结构化数据。
半结构化数据要分析,实际上很难配置schema,不可能针对一个数据做动态的schema。每次去modify, schema, out table或者改表结构,很多时候数据也不是想象中的用户侧,有可能前端买点或者写入的接入的新的监控数据,可能会有新的结构,甚至字段冲突各种情况。所以schema无法固定,schema应该由语言决定。
第二个原因,发现所有使用包括click house,包括一些其他强schema的数据库做落地可观性场景的都会遇到一个巨大的困难,管理平台和使用者形成严重的冲突,前线同学要增加一个数据类型,不可能去create table的,导致没有办法将一些业务上想要分析,想要统计,想要做策略的一些数据快速的导入平台,需要有一个平台团队帮他设计schema,导致整个转不起来,ES会做动态schema,但ES的动态schema其实是伪的动态schema,它的性能不行,而且也不能解决字段冲突的问题。还有一个宽表上线的问题,这是遇到的最大点。
跟SelectDB交流最大引入,场景中最重要的一个需求是Variant。这是迄今为止在中国或者全球级别里面除了snowflake以外唯一支持Variant的产品,另外是聚合采样的能力,相对简单一点,可观的数据有时候很可怕,弄出来数据百万亿都有可能,不可能对百万亿数据做五分钟间隔的聚合查询分析。要做一些done ample,做一些数据抽样采样,通过固定时间的分片,只采样100万数据做一个计算,可能精度不准,但在一些大范围的数据分析中有很大的价值,整体也提升海量的高并发的性能,这是自己做的成本估算,客户可以按照倍数比,在杭州当时的一个服务器节点数相对elastic下降很多,下降接近一半,整体因为机器的配置下降,不仅下降机器的数量。
同时查询性能反向提升,然后整体成本基本下降超过60%,本身也提供对SelectDB 本身的可观测性,最终发现实际上很多竞争对手在美国,包括data dog,包括snow Flake也支持一家公司,叫observe income ,实际上他们本质上都在强调监控观测方案。并不只是原端的采集数据能力,或者给客户做简单监控。真正要站在数据处理和数据整合的角度思考,将海量的实时数据收集进来,能够做整体的能力。
对运维团队,研发团队,不仅是针对监控数据,查系统本身的故障,更多是要面向业务,面向平台。客户是头部的汽车公司,他们整体连车机的数据都接入到平台,包括一天的整体数据量可能会超过500TB。差不多整体三个月数据存下来是上万亿的一些部分业务数据,在海量的数据下,不仅是做简单监控,没有意义,在上面要分析,包括用户体验,包括系统的如何优化改良等,如果中国市场客户要选监控观测方案,没有选择。如果有选择,一定是水平不够。另外是全球化部署,这是中国唯一一个厂商可以提供全球化服务能力。
不仅在中国区域,包括在阿里云上,在欧洲,在美国,在新加坡,在香港都有节点,实际上出海客户可以完全直接使用服务,快速的接入平台,是一个非常好的方式,对于一些初创团队,一些start up团队非常有好处,成本非常低,因为整体的计费模式是Serverless的方式,在这种情况下,长期的全球的数据的汇聚支持这个功能,所有的用户如果在全球有节点都同时接入的平台,可以在一个平台里面看到全球的业务跑的情况,所有全球的监控,那包括世界500强之一的top组的一个公司外企,他其实也是大量的在全球使用产品,是一个独有的能力。
不仅要支持中国的技术栈,还要支持美国的技术栈。既要支持AWS lama label extension,又要支持阿里云,包括一些云原生的产品,严格意义上既要支持小程序,又要支持apple的vision pro,是全球在技术栈角度来,覆盖相对于外国友商更全的一个产品,另外一个也是阿里云新选产品,阿里云的用户可以直接从阿里云上,下单使用产品,甚至直接选择on premise部署在阿里云上的SelectDB版本,独立一个版本使用产品。