Data Lakehouse:你的下一个数据仓库

news2024/11/16 19:52:31

作者:张友东 StarRocks TSC member/镜舟科技 CTO

数据分析是现代企业和组织决策过程中不可或缺的一部分,数据分析技术经过数十年的发展,需求场景从 BI 报表到数据探寻、实时预测、用户画像等不断丰富,技术架构经历从数据仓库、数据湖、到数据湖仓的演进,并走向数据湖仓一体架构,通过一套架构服务多样化的分析场景。

数据仓库

image.png

数据仓库的发展可以追溯到 1980 年,关系型数据库、日志文件等数据源的数据经过 ETL 处理,统一存储到数据仓库,用于服务 BI 报表、数据挖掘等分析场景。数据仓库在数据质量、事务处理、查询性能、数据治理等方面有明显的优势,但随着数据分析的需求越来越大,数据仓库的方案也面临一些挑战。

  1. 数据多样化:除了结构化的数据,半结构化、非结构化的数据越来越多。

  2. 数据孤岛问题:数据仓库面向主题管理,导致数据分散形成孤岛,难以形成全局统一的数据分析。

  3. 成本与扩展性:大数据量增长带来数据存储成本与横向扩展的问题。

  4. 高级数据分析支持:数据仓库能很好的支持 BI 相关应用,但随着 AI 的发展,AI 应用与数据仓库的数据交互效率不高,制约了 AI 应用的发展。

数据湖

image.png

数据湖的概念在 2010 年首次提出,如果把数据仓库/集市类比为瓶装水,数据湖则是以更加原生态方式存储数据的大池子。数据湖的核心优势是统一与开放,数据基于对象存储、HDFS 等系统实现低成本、可扩展的 数据存储,并作为企业数据的 Single Source of Truth;同时数据的数据格式是开放的,便于不同的应用灵活访问。

数据湖解决了数据成本与扩展性、数据多样性、数据孤岛等问题,并同时满足 BI 与 AI 应用对数据分析的诉求;但数据湖在数据分析性能、数据管理与治理方面仍然存在较大的挑战。

湖仓分层架构

image.png

数据仓库与数据湖各有长处,业界持续在探索两者如何更好地融合,在过去几年湖仓分层的架构得到广泛的应用。企业数据统一写到数据湖,作为统一存储,湖上开放的数据可以服务 AI、ML 等应用场景;数据湖上部分数据经过 ETL 处理导入到数据仓库服务 BI 等 OLAP 分析场景。

湖仓分层架构融合了数据湖与数据仓库的优势,但面临一些问题与挑战。部分数据从数据湖导入到数据仓库,数据链路的增长影响数据分析的时效性,两份数据也会带来冗余存储、数据口径不一致的问题;另外,对于数据仓库里加工产生的数据,仍然很难高效的服务 AI 场景。

数据湖仓

image.png

湖仓分层架构在过去几年被广泛应用,并且不断地加深融合。新兴的数据仓库如 Snowflake、Redshift、BigQuery 均采用云原生存算分离架构演进,并且支持直接查询开放数据湖的能力。数据湖在事务支持、查询性能等方面的能力不如数据仓库,近年来随着新兴数据湖格式如 Iceberg、Hudi、Delta Lake 等的发展,事务支持能力得到提升;另外,在查询性能上,通过不断优化数据湖上的数据分布以及增加缓存机制等技术的演进,数据湖上的数据分析性能已经大幅提升,达到接近数据仓库的水平。

image.png

从数据湖和数据仓库的演进来看,两者在不断的融合,并逐步往数据湖仓的方向演进,兼具数据湖与数据仓库的优势。数据湖仓作为一种新的数据分析架构,用户采用湖仓就能方便将数据源和数据应用连接在一起。数据湖仓兼具数据仓库与数据湖的优势,湖仓具备开放统一的数据存储能力,并基于统一存储直接服务批处理、流处理、交互式分析等多种分析场景,实现湖仓 One data,all analytics 的业务价值。

StarRocks 3.0:Evolution to Lakehouse

StarRocks 2.0 版本凭借其优异的查询性能在业界得到广泛应用,很多用户采用湖仓分层架构,并将 Hive、Iceberg 等数据湖里的数据部分导入到 StarRocks 服务 OLAP 分析场景。StarRocks 3.0 通过存算分离架构升级、极速的湖仓分析性能、物化视图等关键能力,帮助用户构建数据湖仓,简化数据分析架构。

存算分离架构

image.png

StarRocks 存算分离 2023 年 4 月正式发布,目前已有上百家用户上线存算分离架构。与存算一体架构相比,保持了原有简洁的架构;同时极大的降低数据存储成本,提升计算的弹性能力。

image.png

访问远端对象存储的延时相比本地存储有数量级的提升,StarRocks 通过 Data Cache 机制提升数据访问性能,确保热数据与存算一体架构接近。根据实际测试,存算分离缓存命中的情况与存算一体架构相比性能完全相同;在完全冷查询时,性能大概是存算一体的 30-50%。

在存算分离架构下,StarRocks 可以方便的支持 Multi-warehouse 的能力;多个 Warehouse 共享一份数据,不同 Warehouse 应用在不同的 Workload,计算资源可以进行物理隔离,并且可以按需独立弹性伸缩。

极速湖仓分析

image.png

StarRocks 3.0 提供统一 Catalog 管理的能力,用户不仅能高效分析导入到 StarRocks 的数据,同时也支持直接分析开放数据湖 Apache Hive、Apache Iceberg、Apache Hudi、Apache Paimon 的数据,分析性能相比业界同类产品快 3-5 倍。

image.png

StarRocks 在查询层 CBO、向量化、Runtime filter 等技术可以无缝应用到开放数据湖分析,但湖上数据分析还面临一些其他挑战。湖上数据一般以原始格式存储,数据组织上没有针对查询优化,同时访问远端对象存储/HDFS 的延时相比本地盘更高。StarRocks 通过 I/O 合并、延迟物化、Data cache 等一系列关键技术加速湖上数据分析。另外,为了让用户平滑的获得 StarRocks 极速湖仓分析性能,StarRocks 实现了 Trino 方言的兼容,用户可以采用 StarRocks 无缝直替 Trino。

物化视图

image.png

StarRocks 物化视图提供了一种从预建模到后建模的方法,大大缩短业务建模以及上线时间。业务可以直接查询原始数据,借助 StarRocks 极致的查询性能,已经能满足绝大部分场景的需求;如果直接查询性能不满足,则可以按需构建物化视图来加速查询,StarRocks 支持物化视图的透明查询改写,实现业务无感的情况下实现查询加速。

基于 StarRocks 构建 Lakehouse

基于 StarRocks,用户可以高效的构建 Lakehouse 数据分析架构,用户可以选择 StarRocks 内表或开放数据湖 Apache Iceberg、Apache Hudi、Apache Paimon 作为统一的数据存储,基于 StarRocks 服务 BI 报表、Ad-hoc 等多样化的分析场景,对于业务性能要求高的查询,通过物化视图技术实现按需透明加速。

image.png

湖仓实践案例

image.png

  1. 腾讯微信:数据写入到 Iceberg,基于 StarRocks 实现准实时分析,数据新鲜度从小时/天到分钟即,查询性能提升 3-6 倍。

  2. 携程旅行:数据统一存储在 Hive,通过 StarRocks 直接服务 BI 报表,交互式分析。重点业务场景按需创建物化视图查询加速,查询性能提升 10+ 倍

总结

Lakehouse 兼具数据仓库与数据湖的优势,是下一代数据分析架构的演进趋势;StarRocks 是构建 Lakehouse 的最佳选择,已在微信、小红书、携程、平安银行等数十个大型企业落地实践,帮助企业实现 One data、all analytics 的业务价值。

更多交流,联系我们:https://wx.focussend.com/weComLink/mobileQrCodeLink/33412/8da64

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

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

相关文章

三方语言中调用, Go Energy GUI编译的dll动态链接库CEF

如何在其它编程语言中调用energy编译的dll动态链接库,以使用CEF 或 LCL库 Energy是Go语言基于LCL CEF开发的跨平台GUI框架, 具有很容易使用CEF 和 LCL控件库 interface 便利 示例链接 正文 为方便起见使用 python 调用 go energy 编译的dll 准备 系统&#x…

过去的六年,教会了我很多事

目录 过去六年的风风雨雨android缘起爱情缘灭顿悟收拾心情,再次启航面试阿里大起大落 如今时光,刺激且美好未来展望 过去六年的风风雨雨 android缘起 2018年,我从北京联合大学毕业,跟随着学长一起创业,从此开始了我的…

基于异构图的大规模微服务系统性能问题诊断

简介:本文介绍由南开大学、清华大学、腾讯、国家超级计算天津中心共同合作的论文:基于异构图的大规模微服务系统性能问题诊断。该论文已被IEEE Transactions on Services Computing期刊录用 论文标题:Diagnosing Performance Issues for Lar…

【计算机毕业设计】388微信小程序足球赛事及队伍管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

解密网络流量监控:优化IT运维的利器

引言: 在当今数字化时代,网络流量监控是维护网络稳定与业务连续性的关键。作为一名资深网络工程师,我将分享一些关于网络流量监控的重要知识,并探讨如何在IT运维中运用这一工具优化网络性能,确保业务的顺畅进行。 1. 网…

微前端(无界)入门

主应用通过props给子应用传值 父子应用通过eventBus通信 通过路由同步实现记录子应用的路由状态 主应用 main.ts: import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia import WujieVue from wujie-vue3import App from ./App.vue impo…

dust3r部署踩坑全记录

目前dust3r是三维重建最新最好的技术,运用了ViT编码器、Transformer、注意力机制、回归等技术,无需相机参数标定。 但是我部署过程中有很多坑,记录一下。 1.OSError: CUDA_HOME environment variable is not set. Please set it to your CU…

sprongboot+vue 游泳馆管理系统

游泳馆管理系统 spring bootvue 主要有游泳课程预约、网上购票、教练预约、游泳器材管理、会员管理等功能; 1、管理员 登录、修改密码 购票管理:查看订单、删除订单、修改订单 教练管理:教练信息查询、修改 课程信息:增删改查课程…

【class19】人工智能初步---语音识别(5)

【class19】 上节课,我们学习了:语音识别模型的结构和原理,同时调用创建好的AipSpeech客户端实现了语音转文字功能。 本节课,我们将初识字幕,学习这些知识点:1. srt字幕 2. 获取时间数据 …

认识NoSql

SQL是结构化的,NoSql是非结构化的 SQL是关联的: Nosql是无关联的: SQL采用的是SQL查询: 语法固定,好处是:只要是关系型数据库(Mysql,Oracle),都能够使用相同的语句进行查…

Re73 读论文:ULMFiT Universal Language Model Fine-tuning for Text Classification

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:Universal Language Model Fine-tuning for Text Classification 模型简称:ULMFiT 模型全名:Universal Language Model Fine-tuning ArXiv网址:https…

Three.js 入门介绍与环境搭建

Three.js 入门介绍与环境搭建 一、引言 Three.js 是一个强大的用于在网页上创建和展示 3D 图形的 JavaScript 库。艾斯视觉作为ui设计和前端开发服务商在这里很高兴能与你共同探讨学习:它使得开发者能够轻松地构建令人惊叹的 3D 场景和交互体验。在这篇文章中&…

Type ‘null‘ is not assignable to type ‘T‘. - ArkTSCheck

设置泛型将参数配置为 null 时抛出了如下异常: Type null is not assignable to type T. T could be instantiated with an arbitrary type which could be unrelated to null. <ArkTSCheck> 解决办法 在 null 后面添加 ! 即可,以表示该值不会为 null data: T null! 以…

python-web框架应用程序-Django环境搭建

python-web应用程序-Django环境搭建 一、Django入门 使用Django&#xff08;http://djangoproject.com/&#xff09;来开发一个名为“学习笔记”&#xff08;Learning Log&#xff09;的项目&#xff0c;这是一个在线日志系统&#xff0c;让你能够记录所学习的有关特定主题的知…

leetcode - 20.有效的括号(LinkedHashMap)

leetcode题目有效的括号&#xff0c;分类是easy&#xff0c;但是博主前前后后提交了几十次才通过&#xff0c;现在记录一下使用Java语言的写法。 题目链接: 20.有效的括号 题目描述&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&…

SAP 生产订单报工函数BAPI_PRODORDCONF_CREATE_TT不返回报错信息

最近财务一直反馈MES报工的数据都没有成本,然后去查看原因发现是财务当月的KP26的价格没有进行维护,导致没有收集到工单的报工成本。 但是在前台操作CO11 报工的时候,系统会给出报错的信息 但是我们在调用函数BAPI_PRODORDCONF_CREATE_TT的时候,系统并没有返回报错的信息…

Windows电脑高颜值桌面便利贴,便签怎么设置

在这个看颜值的时代&#xff0c;我们不仅在衣着打扮上追求时尚与美观&#xff0c;就连电脑桌面也不愿放过。一张唯美的壁纸&#xff0c;几款别致的小工具&#xff0c;总能让我们的工作空间焕发出不一样的光彩。如果你也热衷于打造高颜值的电脑桌面&#xff0c;那么&#xff0c;…

下一代 CI/CD:利用 Tekton 和 ArgoCD 实现云原生自动化

一、回顾目标 背景&#xff1a; ​ 部门业务上云&#xff0c;之前服务采用传统的部署方式&#xff0c;这种方式简单&#xff0c;但是不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计算资源&#xff0c;而且程序之间容易产生影响。随着互联网时代的到来&#xff…

Leetcode - 131双周赛

一&#xff0c;3158. 求出出现两次数字的 XOR 值 本题是一道纯模拟题&#xff0c;直接暴力。 代码如下&#xff1a; class Solution {public int duplicateNumbersXOR(int[] nums) {int ans 0;long t 0;for(int x : nums){if(((t>>x)&1) 1){ans ^ x;}else{t | (…

图片去水印工具(低调用哦)

一、简介 1、它是一款专业的图像编辑工具&#xff0c;旨在帮助用户轻松去除照片中不需要的元素或修复照片中的缺陷。无论是修复旧照片、消除拍摄时的不良构图&#xff0c;还是删除照片中的杂乱元素&#xff0c;都能帮助用户快速实现这些目标。其功能强大且操作简单&#xff0c…