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

作者:张友东 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

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

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

相关文章

中学生学人工智能系列:如何用AI学英语

经常有读者朋友给公众号《人工智能怎么学》留言咨询如何使用人工智能学习语文、数学、英语等科目。这些都是中学教师、中学生朋友及其家长们普遍关注的问题。仅仅使用留言回复的方式,不可能对这些问题做出具体和透彻的解答,因此本公众号近期将推出中学生…

【Spring框架全系列】IOC DI案例,setter方法和构造方法注入(详解) + 思维导图

文章目录 一.概念实操Maven父子工程 二. IOC和DI入门案例【重点】1 IOC入门案例【重点】问题导入1.1 门案例思路分析1.2 实现步骤2.1 DI入门案例思路分析2.2 实现步骤2.3 实现代码2.4 图解演示 三、Bean的基础配置问题导入问题导入1 Bean是如何创建的【理解】2 实例化Bean的三种…

一年收入大几十个的副业兼职,闲鱼新玩法,新手小白可做,无门槛

在开始分享之前,我想先了解一下,大家是否曾在各大公众号上参与过各种打卡活动?比如减肥打卡、英语阅读打卡、考研考公打卡等等。如今,打卡已经成为现代人生活中不可或缺的一部分。无论是学习、健身还是工作,打卡都能有…

生成模型 | 从 VAE 到 Diffusion Model (下)

🐧大模型系列篇章 💖 多模态大模型 🔎 GroundingDINO 论文总结 💖 端到端目标检测 🔎 从DETR 到 GroundingDINO 💖 多模态大模型 👉 CLIP论文总结 💖 多模态大模型 👉 E…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数,strstr()的使用介绍和模拟实现。 模拟实现这个函数,可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力,有兴趣的话就请往下看吧。 strstr函数介绍 函数功能: strstr函…

STL:string

文章目录 标准库中的string类string的构造string的赋值重载string的容量size(length)max_sizeresizereservecapacityclearemptyshink_to_fit string的元素访问operator[] 和 atfront 和 back string的迭代器 和 范围forstring的修改operatorappendpush_backassigninserterasere…

Spring OAuth2:开发者的安全盾牌!(上)

何利用Spring OAuth2构建坚不可摧的安全体系?如何使用 OAuth2 从跨域挑战到性能优化,每一个环节都为你的应用保驾护航? 文章目录 Spring OAuth2 详解1. 引言简述OAuth2协议的重要性Spring Framework对OAuth2的支持概述 2. 背景介绍2.1 OAuth2…

上位机图像处理和嵌入式模块部署(f103 mcu中的串口接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在mcu开发中,mcu扮演着非常重要的角色。一方面,串口可以帮助我们对固件功能进行调试,另外一方面,串…

微信图片识别文字怎么弄?介绍三个识别方法

微信图片识别文字怎么弄?在信息爆炸的时代,我们每天都会接触到大量的图片信息,其中包含的文字内容往往是我们获取信息的重要途径。然而,手动输入图片中的文字既费时又费力,这时,一款能够准确识别微信图片中…

2024受欢迎的便签app是哪个

在繁忙的工作和生活中,便签app成为了我们不可或缺的小助手。2024年,随着人们对高效工作和生活品质的追求,选择一款功能强大且用户友好的便签app显得尤为重要。在众多选择中,敬业签以其出色的记录与提醒功能,脱颖而出&a…

MQ第②讲~保证消息可靠性

前言 上一讲我们讲了MQ实际工作中常见的应用场景,这一节讲一下消息的可靠性,如果对MQ掌握程度比较高的铁子,可以不用看,节省您宝贵的时间。 消息的大致链路 消息从投递到消费需要考虑如下几个问题 生产者的消息是否成功投递到消…

隐藏在OceanBase ODC中的运维神器

近期OceanBase 的ODC 推出的新版 v4.2.4中,提供了内置运维代码,让我们一起来看看吧。 DBA 可能会喜欢的功能 查看集群可用的资源 统计数据库内表的数据大小 用 SQL 创建租户不再复杂 请注意,在修改租户名字时,unit config和reso…

2024 最新版 Navicat 17 下载与安装步骤及演示 (图文版)

Navicat 是一款专业的数据库管理工具,支持多种数据库类型,包括 MySQL、Oracle、SQL Server、PostgreSQL、MariaDB、Redis、MongoDB 和 SQLite。Navicat17包含的版本如下Navicat Premium 17, Navicat 17 for MySQL, Navicat 17 for Oracle, Navicat 17 fo…

记录使用自定义编辑器做试题识别功能

习惯了将解析写在代码注释,这里就直接上代码啦,里面用到的bxm-ui3组件库是博主基于element-Plus做的,可以通过npm i bxm-ui3自行安装使用 // 识别方法: // dom 当前识别数据所在区域, questionType 当前点击编辑选择的题目类型&a…

Java设计模式 _行为型模式_观察者模式

一、观察者模式 1、观察者模式 观察者模式 ( Observer Pattern )是一种行为型模式。 常用于对象间存在一对多关系时,比如,当一个对象被修改时,需要自动通知它的依赖对象。 2、实现思路 (1)、定义被观察者的行为&…

Kafka原生API使用Java代码-生产者-发送消息

文章目录 1、生产者发送消息1.1、使用EFAK创建主题my_topic31.2、根据kafka官网文档写代码1.3、pom.xml1.4、KafkaProducer1.java1.5、使用EFAK查看主题1.6、再次运行KafkaProducer1.java1.7、再次使用EFAK查看主题 1、生产者发送消息 1.1、使用EFAK创建主题my_topic3 1.2、根…

c++(六)

c(六) 多态概念在c中是如何实现多态静态多态(绑定)动态多态(绑定) 动态多态的实现原理动态内存分配中遇到的问题 重载、重定义、重写的区别抽象类接口类---抽象类空类对象的内存大小explicitfinal修饰类修饰…

稳定性大升级!EMCS全球服务网络携手NineData实现数据实时同步

易客满(ECMS Express)专注于提供全球化的国际物流解决方案和经济快递服务,服务网络覆盖全球主要贸易市场的国际物流公司。ECMS拥有国际快递、国际货代、仓储供应链全球覆盖服务能力。 1. 易客满(ECMS)数据复制的技术挑…

SOLIDWORKS 2024:零件亮点的升级与突破

随着科技的不断发展,工程设计软件也在持续进步,以更好地满足工程师和设计师的需求。SOLIDWORKS,作为一款广泛使用的三维CAD软件,一直在不断地推出新版本,以提供更强大、更便捷的功能。今天,我们将深入探讨S…

高边坡监测常用的主要仪器设备

随着人类的发展,近几年由于人类生活生产的破坏,地球环境不断恶化。鉴于这一现象,监测行业也随之应运而生。常见的监测类型有:边坡监测,地灾监测,水库监测,大坝监测,矿山监测&#xf…