Kudu简介

Kudu介绍

需要实时分析应用场景下,便可能用到Kudu。

2.Kudu提供了更接近于RDBMS的功能和数据模型,提供类似于关系型数据库的存储结构来存储数据,允许用户以和关系型数据库相同的方式插入、更新、删除数据。

3.Kudu仅仅是一个存储层,然而它并不存储数据,而是依赖外部的Hadoop处理引擎(MapReduce,Spark,Impala)。Kudu把数据按照自己的列存储格式存储在底层Linux文件系统中。

实时数据流分析的历史方案

生产者 Spark Streaming 、数据源 Kafka  存储层可以是HDFS 

实时处理(也叫流式处理)

流失处理的思想是在数据流中处理数据,而不是将数据保存到存储系统,然后批量处理。

批量处理:每个批次有明确的开始和结束点。

流失处理:持续对流入的小批量数据处理。

举例:

欺诈检测,需要参考用户历史数据(24小时特征)

医疗设备场景 (Hadoop+HBase+HDFS)

 尽管Hadoop存储层可以处理快速插入数据,可以低延迟随机读、更新和扫描,但这个架构会变得复杂且难以维护。

 KUDU设计

Kudu的表被水平分割成很多块,称为Tablet

广义地说,有两种关系型数据库:OLTP和OLAP

OLTP适用于对响应速度和数据完整性高的在线服务应用。(行格式存储:适合全行检索和更新)

OLAP适用于数据的大规模扫描。(列格式存储:扫描所有列中的几列)

KUDU适合这两种关系型数据库。

KUDU角色

KUDU中的核心是基于表的存储引擎。

KUDU存储自己的元数据(有关表的)信息和用户的数据,保存在Tablet中。

元数据存、用户数据储在master服务器管理的Tablet中。

存储在master服务器管理的Tablet中。

master:管理KUDU集群。

Tablet:集群中的工作节点。执行所有与数据相关的操作(存储、访问、编码、压缩)

 KUDU以列格式存储所有数据。

 KUDU写入操作流程:

写入操作->传入tablet

kudu会将新数据存储到一个临时的写缓冲区。缓冲区满了后,就会放到磁盘中的一个位置中。

比如插入一条新的数据,最终会将那一行所有列分成不同的区间

避免热点:

避免读或写查询落到同一个服务器上。

KUDU可以使用两种分区。范围分区(range partitioning)

KUDU实践:

使用KUDU QuickStart VM 熟悉Kudu API和工具(并未预装Hadoop工具)

KUDU几乎是与Impala使用,

Impala依赖于Hive,Hive依赖于HDFS

 

posted @   猫七的blog  阅读(2849)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示