1、目录Hologre 产品介绍与技术揭秘4快速上手 Hologres16Hologres+Flink 实时数仓详解26MaxCompute+Hologres 数据仓库详解33开源 OLAP 升级 Hologres 详解46概要:近年来,随着数据实时化的诉求加剧,催生了一系列的实时数仓架构,Lambda 架构也应运而生,但是随着场景的复杂度和业务多维需求,Lambda 架构的痛点也越来越明显。HSAP 的理念则是服务分析一体化,在本文中,来自阿里巴巴的资深技术专家将会深度剖析 HSAP 技术实现 Hologres 的设计原理,解读其产品典型场景。Hologre 产品介绍与技术揭秘Hologre 产
2、品介绍与技术揭秘对于上面这些大数据业务场景,在很早之前业界就开始通过数据仓库的建设来满足这些场景的需求,比较传统的是如下图所示的离线数据仓库,其大致流程就是:首先,将各类数据收集起来;然后经过 ETL 处理,再经过层层建模对数据进行聚合、筛选等处理;最后在需要的时候通过应用层的工具对数据进行展现,或者生成报表。上面这种方式虽然可以对接多种数据源,但是存在一些很明显的痛点:ETL 逻辑复杂,存储、时间成本过高;数据处理链路非常长;无法支持实时/近实时的数据,只能处理 T+1 的数据。二、二、LambdaLambda 架构架构随着实时计算技术的兴起,出现了 Lambda 架构。Lambda 架构的
3、原理如下图所示,其思路其实是相当于在传统离线数仓的基础上再加上一个处理实时数据的层,然后将离线数仓和实时链路产生的数据在 Serving 层进行 Merge,以此来对离线产生的数据和实时产生的数据进行查询。从 2011 年至今,Lambda 架构被多数互联网公司所采纳,也确实解决了一些问题,但是随着数据量的增大、应用复杂度的提升,其问题也逐渐凸显,主要有:Hologre 产品介绍与技术揭秘Hologre 产品介绍与技术揭秘三、三、HSAPHSAP:分析、服务一体化:分析、服务一体化基于上述背景,我们提出了 HSAP 解决方案,HSAP 是指 Hybrid serving and analyti
4、cal processing,我们的理念是能够支持这种很高 QPS 的 Serverless 场景的查询写入,并且将复杂的分析场景在一套体系里面完成。那么其核心是什么呢?首先,要有一套非常强大的存储,能够把实时的数据和离线的数据存储进来,实现数据的通存,同时还要有一种高效的查询服务,能够支持高 QPS 的查询,支持复杂的分析以及联邦查询和分析,这样的话就可以把离线数据和实时数据都导入到系统里去,然后将前端的数据应用,比如 BI报表和一些在线服务,对接到系统中去。如此,上面提到的架构复杂的问题,其实就可以迎刃而解。我们把这样的设计理念叫做 HSAP 设计理念。四四、HologresHologre
5、s 简介简介有了上面 HSAP 的设计理念,我们要去做相应的产品来实现这种理念,于是有了Hologres。Hologres 这个词是 holographic 和 Postgre 的组合,Postgre 指的是兼容PostgreSQL 生态,holographic 指的是全息,也就是全部信息,我们希望通过H o l o g r e s 对 数 据 进 行 全 息 的 分 析,并 且 能 够 兼 容 P o s t g r e S Q L 生 态。用一句话来总结,Hologres 就是基于 HSAP 理念,兼容 PostgreSQL 生态、支持MaxCompute 数据直接查询,支持实时写入实时查
6、询,实时离线联邦分析,低成本、高时效、快速构筑企业实时数据仓库,其架构图如下所示。Hologre 产品介绍与技术揭秘Hologre 产品介绍与技术揭秘3 3)存储计算分离)存储计算分离Hologres 采用存储计算分离架构,用户可以根据需求进行弹性扩缩容,如果存储用的比较多可以多买存储,CPU 用的比较多可以多买 CPU。另外,Hologres 支持异构数据源交互分析以及离线数据和实时数据的联邦查询。Hologres已经和MaxCompute无缝打通,能够直接在 Hologres 中对 MaxCompute 表进行查询。4 4)PGPG 生态生态Hologres 兼容 PostgreSQL 生
7、态,能够与 PG 开发工具、BI 工具进行对接,同时在阿里云提供了一套原生的开发平台,能够在 WebIDE 中进行 SQL 的开发,并且支持任务的调度。(一)存储计算分离(一)存储计算分离在传统的分布式系统,尤其是分布式存储中,常用的架构有如下三种。其中Shared Disk/Storage 就是在存储集群上挂载了很多盘,每个计算节点都可以访问这些盘;Shared Nothing 架构就是每个计算节点自己挂载存储,节点之间可以通信,但是各个节点之间的盘不共享,存在资源浪费的情况;Storage Disaggregation 就是相当于把存储集群看做一个大的磁盘,每个计算节点都可以访问,且每个计
8、算节点都有一定的缓存空间,可以对缓存数据进行访问,也无需关心存储集群的管理,这种存储计算分离的架构便于灵活扩容,能够有效节省资源,Hologres 就是采用的这种架构。(二)流批统一的存储(二)流批统一的存储Hologre 产品介绍与技术揭秘Hologre 产品介绍与技术揭秘(三)极致查询性能(三)极致查询性能如果希望得到一个快速的系统,除了高性能的存储,更少不了高性能的查询。Hologres 其自身有着极致的查询性能,主要包括:同时支持行寸列存;向量化等执行层优化;高并发充分利用计算资源;纯 C+实现保证稳定的低延迟;优化的调度保证 SLA;基于成本的优化器,针对存储特点高度优化。总得来说,
9、Hologres 的技术亮点包括云原生、统一存储和极致性能,具体的细节大家可以参考 http:/www.vldb.org/pvldb/vol13/p3272-jiang.pdf。Hologre 产品介绍与技术揭秘Hologre 产品介绍与技术揭秘(三三)实时离线联邦计算)实时离线联邦计算如下图所示场景,基于实时计算引擎 RealtimeCompute、离线数仓 MaxCompute和交互式分析,从商业逻辑出发,实现离线数据分析实时化,实时离线联合分析,构筑实时全链路精细化运营。六六、典型客户案例、典型客户案例下图所示的是阿里数据业务基于 Hologres 的架构演进,从下图(左)可以看出,在没
10、有 Hologres 之前,整个数据链路以及架构非常的复杂,比如图中所示的 5 条红线代表的 5个链路;在有了 Hologres 之后,整个数据链路就变得清晰明了,数据进入系统之后通过Flink 做实时的 ETL,然后直接写入到 Hologres 中,之后可以通过 Hologres 进行归档、历史数据的加速等,数据服务也非常简单,点查询、分析查询等操作都可以通过 Hologres来完成,整个链路就变的非常简单,大大降低了架构复杂度,降低了成本。Hologre 产品介绍与技术揭秘Hologre 产品介绍与技术揭秘(三三)基于实时分析引擎构建安全风控系统实时分析)基于实时分析引擎构建安全风控系统实
11、时分析本案例是一个风控场景,通过将实时、离线的数据写入到 Hologres 中,加速查询的过程,最终产生相应的分析报表或者实时预警的规则,通过 Hologres 的引入,节约了大量成本,大大降低了学习成本,且与 BI 工具可以无缝对接。上面三个场景各有各的业务特点,也有各自的痛点问题,通过 Hologres 可以针对性的解决所面临的问题,达到降低成本,节约资源的效果。目前,Hologres 已经在阿里内部众多场景得到应用来解决面临的问题,并且Hologres 也已经完成了商业化,欢迎大家使用,希望能够给云上的客户带来业务上的实质性帮助。概要:本文将会为您介绍如何开通并使用 Hologres,并
12、为大家详细介绍在 Hologres 中使用 SQL 开发以及性能调优。快速上手 Hologres快速上手 Hologres二、二、SQLSQL 开发教程开发教程在学习 Hologres SQL 的使用之前我们需要了解 Hologres 实例内的相关概念:实例:使用和管理数据库存储服务的实体,一个实例可以看作是多个数据库的合集。数据库:一个模式的合集,用户所有的操作,包括表、函数等都是在数据库中完成的。系统会在用户完成实例申请后默认创建一个“postgres”的数据库,该 DB 仅用于运维管理,实际业务需要新建 DB。表:表是数据存储的单元。它在逻辑上是由行和列组成的二维结构,列的数量和顺序是固
13、定的,并且每一列拥有一个名字;行的数目是变化的,它反映了在一个给定时刻表中存储的数据量。外表:外表是数据实际存储在其他系统里,但是通过 Hologres 来访问的一类表。Hologres 完全兼容 postgres 的 Foreign Data Wrapper,目前内部支持直接访问MaxComputer 中的数据。(一)连接开发工具(一)连接开发工具Hologres 是一个完全兼容 Postgres 生态的产品,因此原则上任何能够直接访问Postgres 的工具都能够直接连接 Hologres,比如 JDBC、ODBC 等工具。同时,Hologres 也提供了 HoloStudio、HoloW
14、eb 等开发平台,方便用户根据不同的业务需求连接 Hologres 编写 SQL 任务,加快开发过程。快速上手 Hologres快速上手 Hologres不能向父表中插入任何数据;只有 text/varchar 类型才能作为分区键;Partition by 类型仅支持 list,切分 Partition list 只能有一个值;分区表的数据不会自动删除,需要用户自己管理生命周期。下图是一个创建分区表的实例:3 3)数据类型)数据类型目前 Hologres 支持大部分 Postgres 支持的数据类型,如下图所示,并且 Hologres支持的数据类型在不断的增加,以便能够满足大家更多的场景需要。
15、关于数据类型的支持情况,可以参考文档数据类型。快速上手 Hologres快速上手 Hologres2.2.聚簇索引聚簇索引 ClusteringClustering KeyKey聚簇键类似于传统数据库中的聚簇索引。如果用户设置了 clustering key,指定一些列作为聚簇索引,Hologres 会在指定的列上将建立聚簇索引,并且在聚簇索引上对数据进行排序。建立聚簇索引能够加速用户在索引列上的 range 和 filter 查询。clustering key 创建的时候数据类型不能为 float/double,每个表最多只能有一个 clustering key。3.3.分段键分段键 Seg
16、mentSegment keykey聚簇索引主要是对数据进行排序,而分段键 Segment key 主要是用来帮助Hologres 进行一些文件的快速筛选和跳过。用户可以通过设置 Segment key 指定一些列(例如,时间列)作为分段键,当查询条件包含分段列时,查询可以通过 segment key快速找到相应数据对应的存储位置。segment key 要求按照数据输入自增,一般只有时间类型的字段(timestamptz)适合设置为 segment key,其他场景基本不需要设置;只有列存表支持分段键设置。快速上手 Hologres快速上手 Hologres6.6.分布键分布键 distri
17、butiondistribution keykeyHologres 是一个分布式的计算引擎,如果没有设置分布键,数据库表默认为随机分布形式,数据将被随机分配到各个 shard 上;如果用户指定了分布列,数据将按照指定列,将数据 shuffle 到各个 shard,同样的数值肯定会在同样的 shard 中。当用户以分布列做过滤条件时,Hologres 可以直接筛选出数据相关的 shard 进行扫描;当用户以分布列做 join 条件时,Hologres 不需要再次将数据 shuffle 到其他计算节点,直接在本节点 join 本节点数据即可,可以大大提高执行效率;同时如果用户 group by 的
18、key 是分布列也可以减少一次数据 shuffle,对整个查询的性能带来非常大的提升。对于有 pk 的表,其分布键默认就是 pk,如果不想 pk 字段作为分布键,可以指定 pk字段的子集,但是不能随意指定。可以通过 shard_count 来指定表的 shard 数,如果不指定的话每个数据库都有一个默认的 shard 数,一旦指定了一个表的 shard 数,其他的表如果想要和这个表做local join,就必须指定 colcate with 这个表。下图所示是一个通过分布键设置来加速两个表做 join 的场景。7.7.数据生命周期管理数据生命周期管理 time_to_live_in_secon
19、dstime_to_live_in_secondsHologres 目前提供了 time_to_live_in_seconds 来帮助管理数据的生命周期,其默认单位是秒,必须是非负数字类型。表数据的 TTL 并不是精确的时间,当超过设置的 TTL 后,系统会在某一个时间自动删除表数据,因此业务逻辑不能强依赖 TTL,以免带来不必要的损失。快速上手 Hologres快速上手 Hologresanalyze tmp1;analyze tmp2;在生成了统计信息之后我们再次通过 explain 查看执行计划:从上图中可以看到,在 analyze 之后,整个查询计划已经发生了改变:拿到了整个表的真实行
20、数,并且对整个查询计划做了相应调整;join 顺序从 tmp1 join tmp2 变成了 tmp2 join tmp1,降低了资源消耗。在经过上面的优化之后,再次执行相同的查询,发现整个查询过程只用了 500ms,整个查询性能大大提升,而我们所做的操作也仅仅是生成了整个表的查询信息,就获得了 10倍以上的优化效果。这也说明整个查询的统计信息对查询性能有着至关重要的影响,因此大家今后在导入数据之后可以生成一下统计信息,以便更好的执行查询计划。更多关于性能调优的方式,大家可以参考文档性能调优。概要:本次内容将会介绍使用 Flink 和 Hologres,实现可扩展的、高效的、云原生实时数仓。Ho
21、logres+Flink 实时数仓详解Hologres+Flink 实时数仓详解同时再为大家介绍一下 DataWorks,它是阿里云的一个数据开发平台,提供了数据集成、数据地图、数据服务等功能。数据集成主要功能可以将数据库的数据导入 Hologres,其中同步的方式包括离线同步和实时同步,离线同步支持几十种异构数据源同步至Hologres,而实时同步当前主要支持以下几种:Mysql Binlog:通过订阅 Biblog 的方式将 mysql 数据实时写入 Hologres。Oracle CDC:全称是 Change Data Capture,也是一个类似 Mysql Binlog 的用来获取
22、Oracle 表 change log 的方式。Datahub:是阿里巴巴自研的一个分布式高性能消息队列,值得一提的是,Datahub自身也提供了直接将数据实时导入至 Hologres 的功能,无需经过 Dataworks。PolarDB:是阿里巴巴自主研发的关系型分布式云原生数据库。二、二、HologresHologres 实时导入接口介绍实时导入接口介绍接下来为大家介绍一下 Hologres 提供的一个实时导入的接口,以及接口的技术原理。1 1)实时导入接口)实时导入接口Hologres 实时导入接口的具备以下特性:行存&列存都支持;支持根据主键去重(Exactly once);支持整行数
23、据局部更新;导入即可见,毫秒级延迟;单 Core 2W+RPS(TPCH PartSupp 表);Hologres+Flink 实时数仓详解Hologres+Flink 实时数仓详解接着来更进一步理解 Private API Service 的一个数据分发功能。如下图所示,一张表的数据分布在多个 Shard 上,一条记录只会属于一个 Shard,根据 Distribution key属性进行 Hash。当实时写入的数据请求到达后端的 worker 节点之后,worker 节点是怎么处理的。如下图所示,这一块有如下特点:Log Structured Merge Tree(LSM);全异步框架,协
24、程(Coroutine);基于 Masstree 的 Memtable。同时上面也提到通过 SQL 来进行数据的写入是最常见的场景,Hologres 也在后端优化了整个 SQL 的写入链路。例如对于 Insert into values,Insert into on conflict doupdate,Select from where pk=xxx 等场景简单的 SQL,Hologres 会进行优化,减少 SQL 的解析和优化过程,提升整个数据写入和查询的性能。Hologres+Flink 实时数仓详解Hologres+Flink 实时数仓详解而 Hologres 针对这种场景是如何实现的呢
25、?Hologres 支持局部更新的功能。如下图所示,按照这种实现方式,只需要两个流各自写入 Hologres 结果表。第一个流消费 ABCD 四个字段,将数据写入到最终的结果表中。第二个流消费 ABEF 四个字段,最终将数据写入到结果表,并不需要进行双流的 Join,最终 Hologres 会自己进行一个数据的组装。第一个流写入 ABCD 的时候并不会去更新已经存在的 EF 字段,同样,第二个流写入 ABEF 字段的时候,C 和 D 字段已经存在,不会被更新,最终达到完整的一个数据 Merge 的功能。使用这种功能,可以大大提升流作业的开发效率,以及减少流作业所需要的资源消耗,也能够更容易的维
26、护各个流作业。3 3)实时维表)实时维表 JoinJoin 场景场景除了写场景,Hologres 也支持读场景,最常见的是使用 Hologres 的行存表来进行点查。如下图所示,是一个实时维表的 Join 场景。主要逻辑是生成一个数据源,会不停的生成一个数据流,和 Hologres 的维表进行 Join,打宽数据流,最终将数据写入到一个结果表中。在实际业务中,这种使用场景通常会用来替换 HBase,以达到更好的性能和更低的成本。最后一个场景是 Hologres 的 Binlog 场景,如下图所示,以消息队列方式读取Hologres 数据的 Change log。Hologres+Flink 实
27、时数仓详解MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解作者|刘一鸣 阿里云高级产品专家一、传统数据库痛点一、传统数据库痛点传统的数据仓库开发方式,比如在一些用户行为的分析,点击流的分析场景,一般来说是通过一些报表的形式去展现。这类分析背后往往需要很复杂的计算,需要计算引擎具备很强大的计算能力。另外一个场景,也是一个很强的数据驱动的场景,常见的像推荐系统的场景。推荐背后完全依赖对数据或者说对人的行为的理解,基于历史行为的统计信息,我们来智能化的推荐什么事情是他当下最感兴趣的。这类场景并不是传统的分析场景,但它也是一个数据决策的场景,今天
28、我们把它们放在一起,看一看我们的数据仓库是如何支持不同的数据决策场景。从行为分析到实时推荐,这两者之间有一些关系。传统的报表分析是一种查询相对比较复杂,查的也比较快,要交互式体验。但是对于实时推荐的场景,查询往往更简单,往往就是一张单表的查询,但是对性能会非常的敏感,一般来说需要毫秒级响应。这两件事过去往往是由不同的系统来做的。MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解首先出现的是红线和蓝线交界部分,让一个系统既可以支持分析,又可以支持事务,也就是我们常说的 HTAP,它有一定的适用场景:数据来源于业务系统(TP)。需要机制保证 T
29、P 和 AP 的一致性(数据、模型,大量同步)。模型简单,用于简单分析场景。局限是,事务系统的数据模型是无法直接用于分析场景的,数据需要被加工、抽象才能用于数据分析师。在另一侧,蓝色和黄色交界的部分也有一个场景,分析和服务也可以做成一个系统,也有它的适用场景:统一实时、离线存储引擎。没有事务需求,减少针对事务场景的开销(锁、同步)。埋点数据、机器数据,比 TP 高数量级。为多场景设计可复用数仓。二、二、HSAPHSAP:服务分析一体化:服务分析一体化我们提出 HSAP(Hybrid Serving&Analytics Processing)的理念,目标做到服务分析一体化,背后的技术挑战是非常大
30、的:首先,离线数据和实时数据都要支持。然后我们希望数据是统一的,不要把实时和离线割裂。也希望接口是统一的,提供一套统一的接MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解上面提到 Hologres 既能支持分析,又能支持服务。这是因为 Hologres 底层会有两种不同的存储模式:行存和列存,这也就意味着我们既能支持查询的量大,又能支持查的快。下图是 Hologres 行存和列存两种模式下的对比:同时,下面也可以给大家分享 Hologres 与 Druid 的性能对比(对比基于 TPC-H 测试集),可以从图中直观的看到 Hologres
31、 绝大多数场景下性能更优。MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解1 1)看产品定位和高层设计)看产品定位和高层设计2 2)存储引擎和查询引擎的差异存储引擎和查询引擎的差异MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解列存的场景,一般是面向报表的场景,一般会把我们的数据结果变成我们的数据产品,提供给我们的分析师。分析师选择相关的维度做一些过滤组合,得到相关的一些转化率。这相当于是把我们的数据产品作为一种服务。2 2)友盟)友盟友盟+是国内最大的移动应用统计服务商,其统计分析
32、产品 U-App&U-Mini&U-Web 为开发者提供基本报表统计及自定义用户行为分析服务,支持精细化运营。业务痛点包括:业务数据量大,年新增行为数据 10PB 级,个性化、自定义地交互式用户行为分析强需求;基于 MaxCompute 提供异步离线的 adhoc 分析和优化、以及自研引擎开发尝试均无法满足业务需求;MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解4 4)实时推荐场合)实时推荐场合刚才讲的几个场景,都是偏分析的场景。这边给大家介绍一个推荐的服务的场景。这个场景是实时推荐(特征查询、实时指标计算、向量检索召回),提高广告留存
33、率,用到的主要技术有 PAI+Hologres(with Proxima)。客户收益包括:支持 2000 万日活用户快速向量检索,千万级 u2u,i2i 均可以 20ms 返回;通过 SQL 描述业务逻辑,无需手工编码;加工逻辑简化,无需额外集群。这是一个很典型的把数据作为服务的场景。而且数据并没有离开我们的数据平台,还是在我们这套数仓平台里面,还是以表的形式,所以在运维上、开发效率上都会提升很多。MaxCompute+Hologres 数据仓库详解MaxCompute+Hologres 数据仓库详解一般来讲,在 Hologres 中加速查询 MaxCompute 有两种方式:创建外表(数据还
34、是存储在 MaxCompute 中),性能会有 2-5 倍的提升;导入内表,性能相比外表大约有 10-100 倍的提升。当我们设计的数仓,想要它跑的快,至少做好两件事:查询引擎优化和索引设计优化。直接查外表的方式实际上是利用查询引擎的优化能力来提高效率的,但是没有利用到索引能力。所以当把外表导到内表的时候,可以根据查询的方式指定内表的索引结构。通过这些索引能力带来更高的查询性能。这就是外表导入内表,内表的性能更好的原因,就是要充分发挥数仓里边索引优化的能力。概要:本文将会为您介绍开源 OLAP 如 ClickHouse/Druid/Presto 等架构同 Hologres的深度对比,并介绍如何
35、如何平滑迁移到 Hologres 技术体系,实现更稳定,更可扩展,更多功能的 HSAP 架构。开源 OLAP 升级 Hologres 详解开源 OLAP 升级 Hologres 详解二、二、开源开源系统对比系统对比将会从以下几个方面来深度对比 Hologres 和开源 OLAP 系统。1 1)存储计算角度)存储计算角度在存储方面,Hologres 支持毫秒级的写入可见性,Druid 和 ClickHouse 支持的是秒级。同时 Hologres 支持写入更新。在计算方面,Hologres 同 Druid 和 ClickHouse 都采用了向量化/SIMD 执行器,值得一提的是,因 Hologr
36、es 底层技术原理可以支持联邦查询和高 QPS 的点查,这些都是Druid 和 ClickHouse 无法做到的。开源 OLAP 升级 Hologres 详解开源 OLAP 升级 Hologres 详解从 Presto 迁移到 Hologres 后,基本上功能可以无缝的得到支持,而且 Presto 不支持实时数仓,而 Hologres 支持实时数仓,提供写入和更新能力,并支持高 QPS 的查询能力。迁移方案可以分别从数据模型,数据类型,SQL,数据接入,BI 生态来看。数据模型上 2 者概念类似,只不过 Presto 的 Catalog 需要变成 Hologres 的 Database。数据类
37、似方面Hologres 同 Presto 一致都支持基本以及复杂类型,无需做修改。SQL 层面,2 者都是支持 ANSI SQL,学习成本也比较低。对于数据接入和生态而言,Hologres 同 Presto 都提供 JDBC 接口,无需更换工具,只需要更换对应的连接信息就能立即使用总结来看,迁移的成本是非常低的,基本上可以做到无缝的迁移。开源 OLAP 升级 Hologres 详解开源 OLAP 升级 Hologres 详解迁移示例下图是一个具体的从 Druid 迁移 Hologres 的示例。就 DDL 而言,如上面所述,Datasorce 修改为 table,其余的参数都配置为Hologr
38、es 的字段信息即可。再来看 Query 相关的 Query 迁移,Druid 当前版本支持两种查询方式:SQL 查询和Native 查询,SQL 查询和 Hologres 的 SQL 查询方式类似,在此主要介绍 Nativequery 到 Hologres 的迁移方式。开源 OLAP 升级 Hologres 详解开源 OLAP 升级 Hologres 详解GroupBy 查询在 Hologres 中也是 Group by,无需做大幅度的修改。3 3)ClickHouseClickHouse 迁移迁移ClickHouse 简介及应用场景ClickHouse 自带存储引擎,支持实时数据,并提供亚
39、秒级查询,C+实现的 OLAP分布式列式数据库。适用场景有:海量明细数据存储单表聚合类查询写入可见性/一致性要求不高不适用的场景有:高 QPS 查询高 QPS 更新需要 join 的场景迁移方案常见实时数仓写入链路如下图所示,通过Flink将实时日志数据写入到ClickHouse中。这里将会涉及到两种数据迁移。开源 OLAP 升级 Hologres 详解 COPY OUT-Data File-COPY IN-Hologres 的链路,需要确定好字符集、分隔符和 NULL 标记等规范就能迁移。迁移过程中,数据模型的对应关系,如下图所示。55开源 OLAP 升级 Hologres 详解迁移示例迁移
40、的 DDL 示例如下图所示,建表语句可以保持一致,但是索引的创建需要改成 callset 语句。对于一些典型查询 Query,只需要修改部分的语法即可达到更好的效果。开源 OLAP 升级 Hologres 详解开源 OLAP 升级 Hologres 详解下图是具体的迁移表现。迁移到 Hologres 后,资源节省 60%。平均查询性能大幅提升,开发周期显著加快。2 2)某社交网站替换)某社交网站替换 ClickHouseClickHouse在阿里云上也有成功的迁移案例,例如某个社交网站的客户成功从 ClickHouse 迁移到 Hologres,资源也节省了几百 core,原来只能存储 7 天
41、的数据,现在能无限制存储并支持 7-15 天的明细数据复杂查询,相比之前的实时写入 QPS 也有大幅提升。3 3)某游戏客户替换)某游戏客户替换 RedisRedis下面是公共云上某个游戏客户替换 Redis 后的收益,首先是成本下降了 50%,也支持了复杂查询,学习成本也降低了,无需特别维护,就能开箱即用。开源 OLAP 升级 Hologres 详解58五、总结五、总结Hologres 作为 HSAP 服务分析一体化的最佳落地实践,。支持联邦查询,通过Hologres 完全无缝的加速离线场景。同时也能解决 AP 常见的能力,同时比 AP 系统的性能更好。并且还能解决 HBASE 这种点查系统的能力,可以解决实时推荐的一些场景的能力。在整个大数据架构中,通过 Hologres 完成了非常好的业务架构的整合,让业务能力得到非常大的扩张,用户可以非常方便的使用一套系统来完成各种各样的业务。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100