HashData湖仓一体方案:方案概览与Hive数据同步

news/2024/7/27 15:40:28/文章来源:https://blog.csdn.net/m0_54979897/article/details/135625697

随着云计算、大数据、AI的发展和普及,各行各业的业务场景日益复杂,数据呈现出大规模、多样性的特点,企业对数据仓库的需求也进一步拓展至对多元化数据实时处理的场景。

数据湖是多元数据存储与使用的便捷选择,而云原生具有数据资产统一、基础资源成本低、高性能计算体验升级等优势,是数据湖未来部署的重要形态。湖仓一体架构结合了数据仓库和数据湖的性能优势,在成本、灵活性、事务一致性、多元数据分析等方面具备显著的优势,可以为企业提供高效、兼容、低成本的数据存储和管理解决方案,帮助企业更好地实现数据驱动决策和业务创新。

在这次的直播中,我们介绍了HashData对湖仓一体方案的思考,并对Hive数据同步进行详细讲解和演示。以下内容根据直播文字整理。

方案概览

随着全行业数字化转型的推进,数据业务场景不断涌现,数据总量持续增长,云原生数据湖服务成为实现业务的技术支持。

在企业数字化建设过程中,由于采用技术路线不同、且形态各异,异构数据量逐渐增加,各项业务对数据的时效性要求也不一样,形成了混合数据生态。

图1:HashData湖仓一体方案架构示意图

HashData作为一款满足数据湖场景的云原生数据仓库,提供了外部表和连接器两类组件,帮助企业实现Data Fabric架构,并基于EPP引擎进行并行、高速的数据访问,实现与企业混合数据生态的无缝集成,可以支撑以下典型应用场景:

  • 构建数据联邦,无需搬迁数据,实现多数据源联邦查询;
  • 连接各类数据源,完成数据采集(批量、实时);
  • 与Hive、Hudi/Iceberg、Spark等集成,构建企业级的湖仓一体的数据平台。

元数据存储与同步

传统MPP架构的数据库,存储、计算紧耦合,数据存储在本地系统,存储能力的扩展通过增加集群节点实现,造成计算资源严重浪费;同时随着数据量的增长,每个集群的数据无法做到有效共享,导致“数据孤岛”现象。

HashData云数仓通过元数据、计算和存储三层解耦的架构设计,解决了传统MPP 数据库并发受限、扩缩容不灵活等难题。

HashData的元数据服务层管理各类元数据,面向所有计算集群,提供统一的元数据服务,保证多个计算集群面对统一的数据视图,进行一致性访问

HashData的元数据服务分成三个层次:调度层、无状态服务层、元数据持久层。其中,元数据服务通过全球可访问的分布式系统提供,负责数据持久化的对象存储使用FoundationDB,中间的计算层则实现了完全无状态化。

为避免出现“数据孤岛”和冗余,HashData采用共享存储架构,任何一个计算集群都可以去访问同一份数据,所有集群共享同一份元数据,彻底消除“数据孤岛”和冗余,确保数据的实时性和一致性。

通过统一共享的元数据集群,HashData可以确保用户在管理数据资产的时候,元数据集群可以实现按需搭建、横向扩展,帮助用户安全、平滑实现应用在集群间的迁移,实现数据资产的统一。同时,HashData通过统一的共享存储,可以兼容更多类型的异构数据。

HMS服务与异构数据一站式查询方案

Hive作为一款基于Hadoop的数仓工具,凭借出色的大数据处理能力和稳定的性能,被许多大中型企业应用于海量低价值密度数据分析领域,但其在处理异构文件和时效性方面存在不足,在实现湖仓一体化时,数据迁移往往耗时漫长,无法满足当前企业对数据分析实时性的要求。

为了保证数仓能够实时、快速地访问、分析数据湖内的Hive数据,HashData研发了对HMS(Hive Metastore)异构数据的一站式查询方案,使用Kafka连接器作为中间件,打通数仓与数据湖,实现了对主动同步、被动同步、异步同步与按需同步的完全支持。

图2:HMS服务与异构数据一站式查询方案架构图

Kafka连接器作为开源、可靠、可扩展的流式传输数据的工具,可以基于数据量和数据时间去做同步,使得大量数据集合移入和移出变得简单,也解决了企业对兼容性的顾虑。此外,通过Kafka来实现数据同步,可以确保Hive集群保持无损状态。

在实际落地时,HashData数仓部署成功后,Kafka可以直接拉取需求服务。对于客户来说,免去了Hive表数据导出、传输等繁琐的流程,让用户专注于业务数据分析。此外,Kafka还具备过滤机制,可以对某些异常的操作和场景进行限制,用户可以有选择性地对数据进行同步。

HashData在实现Hive数据同步的时候,所有的标准都基于MetaStore数据服务的开源路线,进一步降低了客户产品兼容、适配的工作量。

同时,在建立HiveMetaStore的init()办法中,HashData创立了三种监听形式:MetaStorePreEventListenerMetaStoreEventListenerMetaStoreEndFunctionListener,通过监听数据变更通知,按需发送到Kafka,确保元数据能够同步变更,保障系统的稳定性。

结语

HMS服务与异构数据一站式查询方案设计初衷,旨在通过轻量级、简单化的技术架构,降低企业湖仓建设过程中产品选型、数据管理的难度和成本,高效发挥湖仓一体低成本、高可用、易拓展的优势,帮助企业建立统一治理、湖仓一体的云原生数据分析平台。

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

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

相关文章

GBASE南大通用提问:如果程序检索到 NULL 值,该怎么办?

可在数据库中存储 NULL 值,但编程语言支持的数据类型不识别 NULL 状态。程序必须 采用某种方式来识别 NULL 项,以免将它作为数据来处理。 在 SQL API 中,指示符变量满足此需要。指示符变量是与可能收到 NULL 项的主变量相 关联的一个附加的变…

PHP面试小结(20240108)

PHP 部分 1. php的包管理工具是如何实现自动加载的 换句话问:composer 实现原理是什么?spl_autoload_register() 首先,Composer 是 PHP 的一个包管理和包依赖管理的工具 , 打开安装之后生成的 "vendor" 文件, 里面有个…

opencv_角点检测

文章内容 一个opencv检测角点的程序 运行效果 #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream>using namespace cv; using namespace std;void detectCorners(M…

uniapp中按钮点击跳转页面失效,纠正错误(亲测可用)

不知道伙伴你的错误和我是否一致&#xff1f; 我当时为了点击跳转按钮发现跳转不了&#xff0c;如下错误提示&#xff1a; worker.js?libNameWAAccelerateWorker.js:1 [Deprecation] SharedArrayBuffer will require cross-origin isolation as of M92, around July 2021. S…

Debian12 安装jenkins 公钥配置

jenkins公钥配置 参考&#xff1a;Debian Jenkins 软件包 这是 Jenkins 的 Debian 软件包存储库&#xff0c;用于自动安装和升级。 要使用此存储库&#xff0c;请先将密钥添加到您的系统&#xff08;对于每周发布行&#xff09;&#xff1a; sudo wget -O /usr/share/keyring…

36.有效的数独

36.有效的数独 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图…

企业微信开发:自建应用:access_token

access_token 过期后接口响应 access_token 已经过期&#xff08;2小时&#xff09;后&#xff0c;调用接口的响应&#xff1b;本文中以发送消息接口为例&#xff0c;说明接口响应的情况。 官方开发文档链接&#xff1a;获取access_token access_token 过期后调用接口 响应体 …

2024年腾讯云主机价格表,附报价明细

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

机器学习小记——KNN(K近邻)

为了让绝大多数人都可以看懂&#xff0c;所以我就用简单的话语来讲解机器学习每一个算法 第一次写ML的博文&#xff0c;所以可能会有些地方出错&#xff0c;欢迎各位大佬提出意见或错误 祝大家开心进步每一天&#xff5e; 博文代码全部为python 简单的说一下什么是机器学习…

adb wifi 远程调试 安卓手机 命令

使用adb wifi 模式调试需要满足以下前提条件&#xff1a; 手机 和 PC 需要在同一局域网下。手机需要开启开发者模式&#xff0c;然后打开 USB 调试模式。 具体操作步骤如下&#xff1a; 将安卓手机通过 USB 线连接到 PC。&#xff08;连接的时候&#xff0c;会弹出请求&#x…

Android 系统启动过程纪要(基于Android 10)

前言 看过源码的都知道&#xff0c;Launcher系统启动都会经过这三个进程 init ->zygote -> system_server。今天我们就来讲解一下这三个进程以及Launcher系统启动。 init进程 准备Android虚拟机环境&#xff1a;创建和挂载系统文件目录&#xff1b;初始化属性服务&…

AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

文章目录 一、Prompt Engineering&#xff08;怎么去提问大模型&#xff09;1&#xff09;环境准备2&#xff09;交互代码的参数备注3&#xff09;交互代码 二、LangChain&#xff08;一个框架去使用大模型&#xff09;1&#xff09;LangChain核心介绍&#xff1a;I/O模块、数据…

Java NIO (二)NIO Buffer类的重要方法

1 allocate()方法 在使用Buffer实例前&#xff0c;我们需要先获取Buffer子类的实例对象&#xff0c;并且分配内存空间。需要获取一个Buffer实例对象时&#xff0c;并不是使用子类的构造器来创建&#xff0c;而是调用子类的allocate()方法。 public class AllocateTest {static…

四、Sharding-JDBC系列04:分库分表后,如何不停机迁移数据?

目录 停机迁移方案 双写迁移方案 一般会有两种方案&#xff1a; 停机迁移方案 这种方案最简单也是最low的。 数据迁移前&#xff0c;在网站或者app挂个公告&#xff0c;说0点到早上6点系统进行维护&#xff0c;无法访问。 接着到0点停机&#xff0c;系统停掉&#xff0c;…

k8s---配置资源管理

目录 配置资源管理的方式 secret pod如何来引用secret&#xff1f;&#xff1f;&#xff1f; 陈述式创建&#xff1a; 声明式创建 Secret创建加密文件 使用token挂载 环境变量使用 docker-registry ConfigMap 陈述式 热更新 总结&#xff1a; 配置资源管理的方式 …

Go-gin-example 第二部分 jwt验证

文章目录 使用 JWT 进行身份校验jwt知识点补充认识JWTTOKEN是什么jwt的使用场景jwt的组成headerpayloadsignature 下载依赖包编写 jwt 工具包jwt中间件编写如何获取token 编写获取token的Apimodels逻辑编写路由逻辑编写修改路由逻辑 验证token将中间件接入Gin功能验证模块 续接…

【开源】基于JAVA语言的固始鹅块销售系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

FPGA之初探

FPGA的构成 基本逻辑单元CLB CLB是FPGA的基本逻辑单元&#xff0c; 一个 CLB 包括了 2 个 Slices&#xff0c;所以知道Slices的数量就可以知道FPGA的“大概”逻辑资源容量了。一个 Slice 等于 4 个6输入LUT8个触发器(flip-flop)算数运算逻辑&#xff0c;每个 Slice 的 4 个触发…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-17 串讲

Komodor:Kubernetes 监控工具全面指南

为了方便起见&#xff0c;Komodor 提供了一个简单的 Web 界面&#xff0c;以帮助您监控 Kubernetes 集群的状态。它拥有付费和免费增值计划&#xff0c;除了在出现问题时通知用户外&#xff0c;还拥有一系列方便的工具&#xff0c;用于跟踪和管理集群中部署的资源的状态。让我们…