Hologres弹性计算在OLAP分析上的实践和探索

作者:王奇 阿里云Hologres研发

简介:

1、本文介绍了OLAP分析在大数据分析中的位置

2、分析并介绍目前大数据OLAP遇到的分析性能、资源隔离、高可用、弹性扩缩容等核心问题

3、解析阿里云Hologres是如何解决极致性能、弹性、业务永续、性价比等核心刚需的最佳实践

4、介绍阿里云Hologres弹性计算组在弹性计算、资源隔离上的探索和创新

、 OLAP分析在大数据分析中的位置

目前业界将大数据分析主要分为四个阶段:描述性分析、诊断性分析、预测性分析、规范性分析。

目前OLAP分析主要集中在描述性分析阶段,其中诊断性分析、预测性分析、规范性分析属于高阶分析领域,后续OLAP分析也会逐步渗透于诊断性分析和预测性分析中。

在这里插入图片描述

二、Hologres如何解决OLAP分析的核心问题

OLAP分析的核心问题

  1. 分析性能差,数据价值可望而不可及。 当前大数据在接受度、技术、应用等各方面趋于成熟,大数据逐步应用于各行各业,这些行业在大数据应用领域面临的第一个问题和挑战就是分析性能差,进而阻碍了挖掘大数据中的巨大价值。如何让用户更快的进行OLAP数据分析是普遍面临的一个问题。

  2. 多种业务场景之间相互影响,隔离成本较高。 业务在线上经常会遇到不同业务场景之间的相互影响而带来的查询抖动的问题,比如写写之间、读写之间、大小查询间的相互影响,以及在线服务、多维分析、即席分析等之间的相互影响。尤其是某些大数据引擎并不是存算分离架构,一般会通过复制多副本去实现隔离,成本很高。

  3. 无服务级高可用、 容灾和多活的方案。 业务一般通过双/多链路来实现高可用、容灾和多活,这其中涉及的人力、计算资源等成本较高。

  4. 不支持弹性扩容。 越来越多的业务对弹性能力有着强烈的诉求。当业务流量突然增长能及时扩容扛住流量,否则对业务就意味着资损;在业务低峰时能及时缩容,降低成本。那么如何低成本的实现弹性扩缩容是大数据引擎面临的一个普遍问题,尤其是某些引擎不是存算分离架构,一般是需要通过数据的复制来实现多副本,基本上很难实现及时的弹性扩容能力。

在这里插入图片描述

OLAP分析的核心刚需:高性能、弹性、低成本

随着业务的不断发展,OLAP分析也逐渐进入大多数业务的核心在线场景。用户对其OLAP分析有如下四大刚需:

  • 业务永续:有高可用、容灾和多活的能力,提升生产系统的稳定性

  • 极致性能:数据的价值应该被最大程度的挖掘,需要有更加极致的性能来满足业务需求

  • 弹性:弹性资源能够很好的支持业务的动态变化,满足业务的不同需求

  • 低成本:用更少的成本支持更多的业务,实现更高的性价比

在这里插入图片描述

Hologres如何解决OLAP分析的核心问题

Hologres是阿里云自研的一站式实时数仓引擎,支持数据的实时写入、实时更新,同时也支持OLAP分析和在线服务查询,目前已广泛应用于阿里内部众多核心业务场景,包括菜鸟物流、淘宝搜索推荐等,同时在云上也有着众多客户实践。那Hologres作为企业级的生产实时数仓,是如何解决OLAP分析问题呢?

1、HSAP架构运用。 在解决OLAP分析时运用 Hybrid Serving/Analytical Processing(HSAP)设计理念,通过统一的实时存储,数据无需复制就能一站式提供简单查询、OLAP 分析、在线数据服务等多样化的数据查询和应用服务,满足数据应用方的访问和接入需求。这种架构大大地降低了业务的复杂度,快速应对新的业务需求。同时也提供的秒级甚至亚秒级实时性让决策更及时高效,从而让数据创造出更大的商业价值。

在这里插入图片描述

2、弹性能力提升。 Hologres引入弹性计算组模式(Warehouse),每个Warehouse可按时按需创建销毁,重新配置,且可动态热扩缩容。计算和存储高度可扩展,具有双重弹性的能力。

3、云原生资源存储。 基于云原生资源存储的弹性扩展,按需使用,可以做到低成本、高可用,高可靠,同时还具有弹性能力。

4、极致性能。 基于现有的C++ Native执行引擎+优化器,拥有全异步框架(Thread-per-core 架构)、向量化计算、多种 Index 的实现、精细化的 Cache、基于代价的优化器模型,支持各种 predicted pushdown、runtime filter 等;轻量级用户态线程调度,同时支持多种查询负载(高并发、复杂统计)、公平调度算法(CFS)、高并发充分利用计算资源等主要特性。

5、实现流批统一存储。 具有业内领先的行列共存特性,列存对查询分析友好,行存对点查快速;具有高效数据分片、分段、压缩、索引;LSM-like 写友好数据结构,高吞吐数据写入,支持更新,写入即可见。

三、Hologres只读从实例(共享存储)解决隔离问题

如上文所述,几乎每个用户都会遇到不同业务场景之间的相互影响而带来的查询抖动的问题。不同的引擎因为架构不一样,对于隔离的实现也不一样,那Hologres又是如何解决隔离的问题呢,下面我们以具体场景为例:

具体场景:

场景一:多种业务场景之间相互影响 。

几乎每个用户都会遇到不同业务场景之间相互影响而带来抖动。比如:读写、读读 相互影响;分析、服务、离线加工 相互影响

场景二:在线业务需要通过多链路才能实现计算多活 。

具体挑战:

挑战一:如何更好的解决系统资源隔离的问题

挑战二:如何让用户更简单低成本的实现计算多活,降本提效

具体措施: 通过Hologres只读实例(共享存储)来解决

只读实例具有五大特性:基于物理WAL日志驱动、共享存储、物理文件的完全复用、主实例 Failover 时从实例不受影响、只读实例 Failover 时可从最新位置开始恢复。通过只读实例可以实现:

  1. 资源隔离:用户可以实现完整的读写/读读分离功能,保障不同业务场景的服务稳定性;

  2. 计算多活:用户只需简单配置可以快速实现同城计算多活,以更少的资源(8~10:1)实现多链路,并节省用户的人力、计算资源等成本。

在这里插入图片描述

四、Hologres新一代弹性计算组实例解决弹性问题

越来越多的业务对弹性能力有着强烈的诉求,那么Hologres又是如何解决弹性的问题呢?

具体场景:

场景一:只读实例需要多个Endpoint,用户感知差 。业务需要配置新的Endpoint才能使用新的只读实例。

场景二:用户希望业务高低峰弹性扩缩容 。用户期望按需弹性扩缩容,节省成本。

场景三:用户希望有更灵活更精细化的资源隔离方案 ,可以按业务等场景实现资源隔离。比如:写写隔离,业务隔离。

具体措施:建设新一代实时数仓Hologres弹性计算组实例

为了更好的解决弹性问题,满足业务不同场景下对资源的合理使用,Hologres率先支持弹性计算组实例。弹性计算组实例采用 Multi-cluster, Shared Data 架构,将计算资源分解为不同的计算组(Warehouse),每个计算组可独立弹性扩展,计算组之间共享数据、元数据。

在这里插入图片描述

Hologres弹性计算组实例介绍

弹性计算组实例主要分为以下几个组件:

1.计算组:

计算组的弹性能力:

计算组在任意时间进行按需地创建、销毁或者重新配置, 可动态热扩缩容单独的计算组,实现单个计算组的弹性伸缩能力。 同时Hologres 具有天然的计算存储分离架构,结合计算组实例可以同时做到计算、存储高度可扩展,具有双重弹性。

计算组的资源隔离能力:

写写隔离:实时写入分离、离线写入分离,以及 实时写入 和 离线写入等写入之间的隔离。

读写隔离:实时写入、离线写入 和 服务分析、即席分析、在线分析之间等 读写之间的隔离。

读读隔离:服务分析、即席分析、在线分析等读读之间的隔离。

业务场景隔离:用户可以将多个业务部门按照不同的计算组 隔离开,实现业务之间的完全的资源隔离。

2. 云服务组件: 云服务组件是基础组件。它主要包括原数据管理、安全认证以及统一接入的管理能力。

3.数据存储: Hologres 借助阿里巴巴自研的分布式文件系统 Pangu 对用户提供高性能、高可靠、高可用、低成本、弹性存储空间、强大稳定安全等核心服务。

弹性计算组核心价值介绍

1.弹性:Warehouse可按时或按需拉起(Scale Out);Warehouse可动态热扩缩容(Scale Up); 计算和存储高度可扩展,双重弹性。

2.易用:整体上对用户暴露一个实例一个Endpoint,解决只读实例多个Endpoint的问题; Warehouse 相关操作(扩缩容等)均可以通过SQL实现, 可以简单配置就能实现支持多种业务场景。

3.低成本:用户可按需弹性使用资源,成本可控制到最低 ;基于物理Replication实现,物理文件完全复用,更节省资源(8~10:1),成本更低。

4.隔离: 每个计算组之间是天然的物理资源隔离,避免计算组之间的相互影响,减少业务抖动等。

五、Hologres 基于OLAP分析最佳实践

Hologres只读实例最佳实践

一般情况下只读实例数据异步同步延迟 p99 在 5ms内 ,可以高效的在双11等大促中为业务降本提效。下面介绍只读实例在阿里内部一些核心业务的运用与效果。

最佳实践一:双11在阿里CCO业务中的运用和效果

阿里CCO业务之前是使用双链路来建设容灾与读写分离的能力,切换到Hologres的只读实例方案后全部下掉双链路,通过只读从实例实现业务的查询隔离、容灾等能力。相比之前的双链路方案,新的Hologres只读实例方案,省去了备用数据链路上实时任务开发维护、数据比对的人力投入,减少链路切换时的数据不一致等问题,为业务在大促上降本提效。

在这里插入图片描述

最佳实践二:双11在阿里DT业务中的运用和效果

在双11大促中,阿里DT(淘宝营销活动分析)业务引入了Hologres的只读实例实现读写分离能力,读写分离可以最大程度的保障高吞吐写入和灵活查询互不干扰。主备双链路方案可以让业务拥有底气和信心去应对随时可能出现的不可控风险,当故障出现时,可以实现秒级切换,为整个产品和业务决策分析提供稳定支持。

在这里插入图片描述

Hologres弹性计算组双11在阿里CCO业务的最佳实践

为了更好的解决弹性和隔离的问题,在去年双11中,阿里CCO业务将之前的只读实例升级为弹性高可用实例,实现了资源的弹性按需使用、写写隔离、业务读写隔离等需求,同时在使用上不需要维护多个实例Endpoint,系统变得更加灵活,也减少了运维压力。在稳定性、性能等方面经受双11、618等大促的考验,为业务在弹性、资源隔离、易用性等发挥了重要作用,最终为业务降本提效。
在这里插入图片描述

六、总结与未来展望

随着大数据技术在业务生产场景的推进,弹性、隔离、性能、成本等需求也开始变得越来越重要,我们期望通过这次分享Hologres在弹性、隔离方面的技术演进和思想,给更多的引擎和业务提供新的发展思路。同时Hologres也将持续优化核心技术竞争力,持续在资源隔离、弹性、高可用等方面进行技术完善和产品演进,助力更多业务构建企业级一站式实时数仓,真正地实现普惠化、自动化和智能化,为用户发挥更大的价值,提升在行业的竞争力。

在这里插入图片描述

  • Hologres 5000CU时,20GB存储免费试用, 前往试用>>

  • 了解Hologres: https://www.aliyun.com/product/bigdata/hologram

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32858.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

.maloxx勒索病毒数据怎么处理|数据解密恢复,malox/mallox

导语: 随着科技的快速发展,数据成为了企业和个人不可或缺的财富。然而,网络安全威胁也日益增多,其中Mallox勒索病毒家族的最新变种.maloxx勒索病毒的出现给我们带来了巨大的困扰。但不要担心!91数据恢复研究院将为您揭…

截断文件:truncate()和ftruncate()系统调用和LFS验证

简介 truncate()和ftruncate()系统调用将文件大小设置为length参数指定的值。 NAMEtruncate, ftruncate - truncate a file to a specified lengthSYNOPSIS#include <unistd.h>#include <sys/types.h>int truncate(const char *path, off_t length);int ftruncat…

Java面试题【1】

Java面试题——Java部分 文章目录 Java面试题——Java部分选择题1.下面sum的值是&#xff08; D &#xff09;2.下面程序的运行结果&#xff08; A &#xff09;3.若x是float类型变量&#xff0c;x10/4; 则x的值是&#xff08; B &#xff09;4.以下程序的输出结果是&#xff0…

HTML系列

快捷键 表格快捷键&#xff1a;table>trn>tdn{a}&#xff08;n行n列&#xff0c;内容均为a&#xff09;无序列表快捷键&#xff1a;ul>li*n&#xff08;n代表无序列表的数量&#xff09; 对应表格快捷产出的样式&#xff08;不用管table内的参数设置&#xff0c;这里…

用UDP套接字实现客户端和服务端通信

IP地址和port端口号 IP地址 数据有IP(公网)标识一台唯一的主机。 port端口号 为了更好的标识一台主机上服务进程的唯一性&#xff0c;我们采用端口号port&#xff0c;标识服务器进程&#xff0c;客户端进程的唯一性&#xff01; ip端口号 IP地址(主机全网唯一性) 该主机上的端…

Redis7【⑦ Redis哨兵(sentinel)】

Redis哨兵 Redis Sentinel&#xff08;哨兵&#xff09;是 Redis 的高可用性解决方案之一&#xff0c;它可以用于监控和管理 Redis 主从复制集群&#xff0c;并在主节点发生故障时自动将从节点升级为新的主节点&#xff0c;从而保证系统的高可用性和可靠性。 Redis Sentinel …

Flex写法系列-Flex布局之基本语法

以前的传统布局&#xff0c;依赖盒装模型。即 display position float 属性。但是对于比较特殊的布局就不太容易实现&#xff0c;例如&#xff1a;垂直居中。下面主要介绍flex的基本语法。 一、什么是Flex布局&#xff1f; Flex布局个人理解为弹性盒子&#xff0c;为盒装模型…

【机器学习】——神经网络与深度学习

目录 引入 一、神经网络及其主要算法 1、前馈神经网络 2、感知器 3、三层前馈网络&#xff08;多层感知器MLP&#xff09; 4、反向传播算法 二、深度学习 1、自编码算法AutorEncoder 2、自组织编码深度网络 ①栈式AutorEncoder自动编码器 ②Sparse Coding稀疏编码 …

opencv编译

文章目录 一、编译前工作二、编译安装1、Windows2、Linux 一、编译前工作 进入下载页面https://github.com/opencv/opencv&#xff0c;下载指定.tar.gz源码包&#xff0c;例如&#xff1a;opencv-4.7.0.tar.gz。解压到指定目录。 二、编译安装 opencv构建时&#xff0c;需要…

chatgpt赋能python:使用Python连接网络摄像头

使用Python连接网络摄像头 网络摄像头是现代生活中不可或缺的设备之一&#xff0c;其允许用户在远程位置查看实时视频流。Python语言提供了强大的工具来连接和控制网络摄像头。本文将向您展示如何使用Python连接网络摄像头以及如何将视频流数据流式传输到本地计算机。 环境设…

OpenGL 鼠标拾取模型

1.简介 在我们的场景中&#xff0c;使用鼠标光标点击或“挑选”一个3d对象是很有用的。一种方法是从鼠标投射3d光线&#xff0c;通过相机&#xff0c;进入场景&#xff0c;然后检查光线是否与任何物体相交。这通常被称为光线投射。 我们不是从局部空间中的网格开始&#xff0c…

vscode 出现 No such file or directory 的解决办法(python tkinter)

问题 主要解决的问题是python在linux下包没办法安装的问题 Traceback (most recent call last): File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\navigation\demo.py”, line 202, in w Window() File “e:\Github\Python-GUI\PyQt-Fluent-Widgets\examples\na…

Python学习—装饰器的力量

Python学习—装饰器的力量 作为许多语言都存在的高级语法之一&#xff0c;装饰器是你必须掌握的知识点。 Python的装饰器&#xff08;Decorator&#xff09;允许你扩展和修改可调用对象&#xff08;函数、方法和类&#xff09;的行为&#xff0c;而无需永久修改可调用的对象本身…

leedcode-只出现一次的数字-异或

题目 题目 代码 class Solution { public:int singleNumber(vector<int>& nums) {int ansnums[0];for(int i1;i<nums.size();i){ansans^nums[i];}return ans;} };

C++ - 哈希的应用

前面的文章中我们讲解了如何进行哈希表的构建以及使用实现的哈希表来模拟实现unordered_map&#xff0c;在本文中我们将继续来讲解一下哈希的应用。 位图 问题引入 首先我们来引入一个问题&#xff1a;给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&am…

介绍 9 个研发质量度量指标

研发质量管理中的 MTTR、MTBF、MTTF、MTTD 都是什么&#xff1f;今天我们从生产事件的全生命周期出发&#xff0c;认识研发质量管理的 9 个度量指标——「MT 家族」。 01 Mean Time To ALL 「MT」是 Mean Time 的缩写&#xff0c;意为平均时间&#xff0c;「MT 家族」则是 Li…

【AcWing算法基础课】第一章 基础算法(部分待更)

文章目录 前言课前温习一、快速排序核心模板1.1题目描述1.2思路分析1.3代码实现 二、归并排序核心模板2.1题目描述2.2思路分析2.3代码实现 三、二分查找整数二分题目一3.1题目描述3.2思路分析3.3代码实现 浮点数二分题目二3.1题目描述3.2思路分析3.3代码实现 四、高精度加法核心…

记录--巧用 overflow-scroll 实现丝滑轮播图

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 前言: 近期我在项目中就接到了一个完成轮播图组件的需求。最开始我也像大家一样&#xff0c;直接选择使用了知名的开源项目 "Swiper"&#xff0c;但是后来发现它在移动端项目中某些测试环境…

函数调用的机器级表示

文章目录 1.Call和ret指令2. 如何访问栈帧里面的数据为什么栈底放在上面&#xff0c;栈顶放在下面X86中的寄存器EBP、ESP寄存器push 、pop 指令mov 指令总结如何访问栈帧 3. 如何切换栈帧函数调用时函数返回时 4. 完整的函数调用过程1. 一个函数的栈帧内包含哪些内容2. 汇编代码…

Jenkins 发送文件到远程服务器:Publish Over SSH 插件

Jenkins 发送文件到远程服务器&#xff1a;Publish Over SSH 插件 文章目录 Jenkins 发送文件到远程服务器&#xff1a;Publish Over SSH 插件一、Publish Over SSH 插件1、概述2、主要功能和特点3、插件主页4、安装 Publish Over SSH 插件5、配置远程主机 二、发送文件到远程主…