Serverless 数仓技术与挑战(内含 PPT 下载)

近期,Databend Labs 联合创始人张雁飞发表了题为「Serverless 数仓技术与挑战」的主题分享。以下为本次分享的精彩内容:

主题: 「Serverless 数仓技术与挑战」

演讲嘉宾: 张雁飞

嘉宾介绍: Databend Labs 联合创始人。前青云数据库团队负责人、开源 Databend 项目主要负责人。

演讲大纲: 传统数仓在扩展性、成本和管理等方面具有局限性。在本次分享中,我们将介绍一种新型的 Serverless 数仓技术,这种技术不仅能够解决传统数仓的痛点,还能显著提升性能并降低成本。此外,我们还将讨论 Serverless 数仓所面临的技术挑战。

  • 传统数仓的局限性
  • 理想的 Serverless 数仓架构
  • 如何实现 Serverless 数仓以及有哪些挑战

以下为本次演讲的精彩内容:

当今(2023)大数据分析新问题

大数据分析面临的新问题

  • 近 5 年生产了 ~90% 数据

    •   根据 IDC 的统计和预测,近 5 年来产生了大约 90% 的数据。这里用的单位是 zttabytes(ZB),1024PB = 1EB,1024EB = 1ZB 是一个非常庞大的数字。过去的大数据架构难以适应当下的数据规模,亟需变更,怎么样才能做到弹性和 Serverless 拓展,从而匹配业务增长?
  • 计算和存储成本高昂

     在企业的IT基础设施中,云厂商提供的计算和存储服务导致了高昂的成本。经测算,如果为 EC2 实例创建总容量为 500TB 的 SSD(GP2)存储,每个月在 EBS 服务上将会花费超过 7 万 5 千美元。如何才能在保证低廉成本的同时满足业务性能需求,提供经济、高效能的大数据架构?

  • 大数据平台越来越复杂

 上图是知名投资机构 a16z 绘制的统一数据基础设施架构全景图,不难看出,庞大的数据量和复杂的数据需求,导致大数据平台也变得日益复杂,需要数十种工具紧密协作,对于产品生态愈发严苛的要求。如何无缝与其他工具进行集成,并且复用现有基础设施?

大数据架构,能否完美实现

上述这些问题,为大数据架构提出了新的要求,特别是在以下几个维度上,能否做到“完美”实现 :

  • 存储成本:极致低廉
  • 计算控制:极致精细,支持算子在 Lambda 函数中运行
  • 集群控制:极致弹性,按需伸缩、启停
  • 架构特点:all-in-one platform,完全 Serverless 化
  • 未来规划:为未来的云端大数据做好准备

传统数仓架构 vs. 弹性数仓架构

在进入到架构对比之前,我们先来看一个成本估测公式:Cost = Resource * Time ,也就是成本大致可以用资源与时间的乘积进行测算。

传统数仓架构

传统数仓往往采用 Shared-Nothing 架构,存储、计算一体化设计,弹性相对较弱。而且由于调度上采用资源固定(Fixed-Set)式调度策略,资源控制粒度粗,也会带来更多的成本。

对应到成本估测公式上,在时间一定的情况下,由于耗费资源数量较大,成本将会居高不下。

弹性数仓架构

弹性数仓则采用 Shared-Storage 架构,底层可以使用对象存储,真正做到存储、计算分离,从而支持实时弹性扩容和缩容以及资源按需(Workload-Based)式调度,资源控制粒度更细。

对应到成本估测公式上,相较于传统数仓,弹性数仓的成本将会显著降低:存储成本可以按实际使用量折算,不需要为冗余的存储进行服务;而计算成本则根据业务需要实时调度,按需启停,按量计费,无需保有大量空闲计算资源。

Databend: 新一代云数仓架构设计

新一代云数仓的架构新在哪里?影响现代云数仓架构设计的因素和挑战都有哪些?这一部分将会给你答案。

新一代云数仓

现有数仓的局限

ClickHouse 是一款流行的开源数仓,以性能卓越著称。采用向量化计算技术,细节优化非常到位。具有 Pipeline 处理器和调度器以及 MergeTree + Wide-Column 存储引擎,单机性能非常强悍。

缺点: 分布式能力弱,无法应对复杂分析,运维复杂度高,不是为云设计。

Snowflake 则是一款云数仓,支持多租户,存储、计算分离。基于对象存储,存储介质便宜。弹性能力非常强悍,面向云架构设计。

缺点: 单机性能一般,比较依赖分布式集群能力。

Databend = ClickHouse + Snowflake + Rust

前面列出的是目前在开源和商业化领域领先的两款数仓产品,看上去性能和弹性无法兼得,想要低成本和弹性计算是不是就必须放弃单节点的极致优化呢?我们来看一下 Databend 交出的答卷。

  • 借鉴 ClickHouse 向量化计算,提升单机计算性能。
  • 借鉴 Snowflake 存储、计算分离思想,提升分布式计算能力。
  • 借鉴 Git,MVCC 列式存储引擎,支持 Insert / Read / Delete / Update / Merge 等操作,以及 Time Travel 等高级特性。
  • 全面支持 HDFS 、基于云的对象存储、IPFS 等 20 多种存储协议。
  • 基于便宜的对象存储也能方便的做实时性分析。
  • 完全使用 Rust 研发(超过 33 万行代码),研发第一天就在 Github 开源。
  • 高弹性 + 强分布式,致力于解决大数据分析成本和复杂度问题。

云数仓架构设计

Databend Cloud 架构全景图

Databend Cloud 是基于开源云原生数仓项目 Databend 打造的一款易用、低成本、高性能的新一代大数据分析平台,提供一站式 SaaS 服务,免运维、开箱即用。下面是 Databend Cloud 的架构全景图,也是 Databend Labs 团队对新一代云数仓的架构的设计与实现。

影响云数仓架构设计的因素与挑战

Databend / Databend Cloud 之所以演化出现在的架构,是因为新一代云数仓除了要在性能上比肩传统数仓、弹性上对标弹性数仓之外,还必须解决下面几个重要的问题:

  • Ingest 海量数据网络费用问题:传统 INSERT 模式费用昂贵,需要一套基于 S3 的免费方案。
  • 对象存储不是为数仓而设计,延迟和性能如何平衡:Network-Bound -> IO-Bound -> CPU-Bound 。
  • 如何让系统更加智能,根据查询模式自动创建索引:如何让某些场景的 Query 越跑越快...
  • 如何面向 Warehouse + Datalake 双重需求设计?

前两个问题是云带来的挑战,而后两个问题将直面用户需求,一旦考虑清楚这些问题,云数仓的架构也就呼之欲出了。

Databend 生态全景图

数仓的产品的成败,除了本身的设计和实现之外,也非常依赖数据生态,其关键在于解决数据的输入与输出问题。

Databend 自身支持一定 ETL 能力,能够使用 Stage 和 Multiple Catalog 挂载外部数据源,提供全量、增量、条件等多种导入方式,支持使用 PRESIGN 上传和下载数据。

Databend 积极融入大数据生态,拓展「Databend 朋友圈」,提供全链路解决方案,帮助用户将数据转化为商业洞见。

Databend 为用户提供价值

Databend 是一款开源、开放,运维简单、分钟级部署,为云端海量数据分析而设计的新一代云数仓。

我们在前面介绍了 Databend 的设计与实现,以及在生态方面做的一些努力,但产品是否能够占据市场、满足用户需求,还需要靠数据说话。

Databend v1.0 于 2023 年 3 月 5 日正式发布,目前处于 v1.2 版本,我们统计了以下几条关键数据:

  • 替换 Trino/Presto 场景成本降低了 75%
  • 替换 Elasticsearch 场景成本降低了 90%
  • 归档场景成本降低了 95%
  • 日志和历史订单分析场景成本降低了 75%
  • ~1PB+/天(2023.9 统计)在使用 Databend 写入公有云对象存储
  • 用户来自欧洲、北美、东南亚、印度、非洲、中国等地,每月节省数百万美元

以下是一些在生产环境中使用 Databend 的用户,感谢他们一直以来的支持与陪伴。我们将继续提供更有价值的服务。 

Databend 在开源社区

Databend 从第一天起就在 GitHub 上开源,目前已经成为 Rust 社区中的明星数据库项目。我们与上下游社区紧密协作,共同建设 Rust 大数据生态。Databend 目前的贡献者中不乏大公司背景,比如 SAP、Yahoo、Fortinet、Shopee、Alibaba、Tencent、ByteDance、EMQ、快手,Databend 社区正在被顶级需求、顶级场景驱动。

体验 Databend

最后,欢迎大家体验 Databend 产品与生态,与我们共同建设坚实可靠的大数据基础设施。

  • 本地部署可以尝试我们的社区版本,官网地址是:https://databend.rs 。

  • 同时,也欢迎访问 Serverless Cloud 体验 Databend 在云上的澎湃动力:

    • 海外(AWS / GCP):https://app.databend.com
    • 国内(阿里云 / 腾讯云 / 华为云):https://app.databend.cn

点击下方「阅读原文」,即可获取演讲 PPT 。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能井盖:提升城市井盖安全管理效率

窨井盖作为城市基础设施的重要组成部分,其安全管理与城市的有序运行和群众的生产生活安全息息相关,体现城市管理和社会治理水平。当前,一些城市已经将智能化的窨井盖升级改造作为新城建的重要内容,推动窨井盖等“城市部件”配套建…

微信公众号开发(BUG集)

1.微信公众平台接口错误:不合法的自定义菜单使用用户 地址:解决地址 2.微信公众平台接口错误:invalid ip 180.101.72.196 ipv6 ::ffff:180.101.72.196, not in whitelist rid: 6511420b-60c59249-01084d02 白名单离开放服务器IP

Mybatis学习笔记9 动态SQL

Mybatis学习笔记8 查询返回专题_biubiubiu0706的博客-CSDN博客 动态SQL的业务场景: 例如 批量删除 get请求 uri?id18&id19&id20 或者post id18&id19&id20 String[] idsrequest.getParameterValues("id") 那么这句SQL是需要动态的 还…

【初阶数据结构】——堆的引入

目录 前言 一、二叉树的顺序结构及实现 1.1二叉树的顺序结构 1.2堆的结构 二、堆的实现 2.1堆向上调整算法(堆的插入) 2.2堆向下调整算法(堆的删除) 2.3建堆的时间复杂度 2.4堆的创建 2.5堆的初始化和空间的销毁 2.6堆…

二值贝叶斯滤波计算4d毫米波聚类目标动静属性

机器人学中有些问题是二值问题,对于这种二值问题的概率评估问题可以用二值贝叶斯滤波器binary Bayes filter来解决的。比如机器人前方有一个门,机器人想判断这个门是开是关。这个二值状态是固定的,并不会随着测量数据变量的改变而改变。就像门…

Python 序列排序

嗨喽,大家好呀~这里是爱看美女的茜茜呐 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可 python中&…

【QandA C++】内存泄漏、进程地址空间、堆和栈、内存对齐、大小端和判断、虚拟内存等重点知识汇总

目录 内存泄漏 内存模型 、进程地址空间 堆和栈的区别 内存对齐 大端小端及判断 虚拟内存有什么作用 内存泄漏 概念: 是指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况, 内存泄漏并不是指内存在物理上的消失, 而是应用程序分配了某段内存后, 因为设计错误…

Docker 安装Redis(集群)

3主3从redis集群配置 1、新建6个docker容器 redis 实例 docker run -d --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381 docker run -d --name redis-node-2 --ne…

2023 “华为杯” 中国研究生数学建模竞赛(E题)深度剖析|数学建模完整代码+建模过程全解全析

​ 问题一 血肿扩张风险相关因素探索建模 思路: 根据题目要求,首先需要判断每个患者是否发生了血肿扩张事件。根据定义,如果后续检查的血肿体积比首次检查增加≥6 mL或≥33%,则判断为发生了血肿扩张。 具体判断步骤: (1) 从表1中提取每个患者的入院首次影像检查…

python基础语法

目录 常量和表达式 变量和类型 1.整数int 2.小数float 3.字符串string 4.布尔类型bool 5.动态类型 注释 输入输出 输出 输入 运算符 算术运算符 关系运算符 逻辑运算符 赋值运算符 python和C、Java语法区别 创建一个python项目 常量和表达式 在python中&…

String的增删查【C++】

String的增删查【C】 前言string的增删查改构造与析构构造string(const char* str "")赋值构造string(const string& s1) 赋值重载析构函数增reservepush_backappendinsert 删erase 查迭代器流插入流提取流插入流提取 前言 从这里开始可以算是进入了STL的学习中…

CRM客户管理系统英文专业版

外资公司日常沟通的语言以英文为主,业务往来也是涉及到国内外,专业的英文版CRM系统很适合这样的业务团队,尤其CRM供应商是国际化企业,在海外也有分公司、办事处。 多语言 ZOHO支持多语种如英语、汉语、日语等28种语言&#xff0…

MySQL基础篇-函数

目录 1.字符串函数 2.数值函数 3.日期函数 4.流程函数 5.小结 在MySQL中,函数是一种数据库对象,用于执行特定的操作或计算,并返回结果。函数通常用于查询、数据处理和转换,以及在SQL语句中执行其他操作。MySQL提供了许多内置函…

linux驱动之input子系统简述

文章目录 一、什么是input子系统二、内核代码三、代码分析 一、什么是input子系统 Input驱动程序是linux输入设备的驱动程序,我们最常见的就按键,触摸,插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标…

C++ -- IO流

目录 C语言的输入与输出 CIO流 C标准IO流 C文件IO流 文件常见的打开方式如下 以二进制的形式操作文件 以文本的形式操作文件 读写结构体 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输…

零基础学空手道_3_空手道的站姿(上)

欢迎回来一起学习刚柔流空手道。 讲一些比较严肃的内容,就是礼仪和站姿。 空手道一开始不是要学习怎么打,而是要学习怎么去尊重别人和不打。所以礼仪很重要。 一切事情都是以礼仪开始,以礼仪结束。这叫以理始以理终。 空手道也是这样&#xf…

MySQL - DML数据增删改

功能介绍: DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据记录进 行增、删、改操作。 添加数据(INSERT) 基本语法:insert into 表名(字段列表) values (值列表); …

【问题解决】Android Studio 无法连接手机(荣耀90)无法识别手机usb

问题描述: 使用AS调试的时候遇到一个问题,由于是重装后的电脑,什么都没配置,但是两个旧手机都在安装SDK tools里的Google usb driver后直接连上AS,而我的新手机却死活连不上,查了一下午,啥方法都…

Redis原理(一):Redis数据结构(上)

文章目录 1、 Redis数据结构-动态字符串2、 Redis数据结构-intset3、 Redis数据结构-Dict4、 Redis数据结构-ZipList5、 Redis数据结构-ZipList的连锁更新问题6、 Redis数据结构-QuickList1、 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串,value往往是字符串…

MongoDB(二)基础操作 创建、删除,查询等

mongodb有一个特点,如果某个库,库下面没数据(mongodb成集合),该库等于不存在的 mongodb只要创建一个库,在库下写入数据,该库才会生成 mongoshe [-hhost -pxxx] 创建数据库 use 数据库名 # 如果…