Doris2.0时代的一些机遇和挑战!

news2025/1/20 23:14:15

e5265c5bd583546e950b689184498aa7.png300万字!全网最全大数据学习面试社区等你来!

上个周五的时候,Doris官宣了2.0版本,除了在性能上的大幅提升,还有一些特性需要大家特别关注。

根据官网的描述,Doris在下面领域都有了长足进步:

  • 日志分析

  • 数据湖联邦分析场景

  • 数据更新效率和写入

  • 资源弹性和存算分离

  • 其他面向企业用户的易用性特性

在Doris出现这些能力之前,大家是没有机会免费用到这些能力的。数据库的这些能力集中在云平台上的一些付费数据库,不花钱根本体验不到。

这里面有一些特别重要的更新,大家在深度使用Doris的时候可能需要特别注意一下,这些内容也是很多面试官喜欢问的,我结合我的一些实践,挑一些重要的说。

点查并发能力的支持

在数据开发领域,「点查询」或者叫KV查询,在过去此类需求往往需要引入 Apache HBase等KV系统来应对点查询、或者Redis作为缓存层来分担高并发带来的系统压力。例如我们在订单属性查询的场景中,我们需要根据订单号关联订单的一些属性信息,很多OLAP在这个场景有很严重的性能问题,所以我们在之前提到各种OLAP库并不擅长像后端开发用Mysql数据库一样应付 Data Serving查询,但是在2.0版本后,如果我们的业务规模不大,我们可以不引入类似Hbase这样额外的组件,可以小范围的支持某些点查询需求,减少复杂技术栈带来的维护成本以及数据的冗余存储。

这里面原理涉及到:缓存优化、行式存储格式、点查询短路径优化、语句预处理、Row Cache等,需要大家自行了解。假如你在规模较大的生产环境用到了这样的能力,需要了解基本的原理,以及有哪些最佳生产实践。

日志分析类场景

Doris 2.0版本中引入了一些特性例如「倒排索引」「半结构数据类型」等,大家如果对ES不陌生的话,应该理解上面的这两些词语。

在此之前我们大规模使用ELK全家桶支持日志系统:FileBeat、Logstash、Kafka、Kibana,或者还需要了解ES DSL,如果我们的系统规模不大,要引入上述组件带来的使用和运维成本复杂度非常高昂,另外还需要解决ES的读写稳定性问题等等。

在Doris 2.0版本之后,我们可以基于Doris尝试在某些场景直接打造一个低成本、高易用的简版ELK系统,加之Doris对标准 SQL的支持和高度兼容 MySQL协议和语法,我们可以非常简单的进行日志分析。

冷热分离

2.0版本的一个重要功能是冷热分离。冷热分离是大数据领域的一个很重要的概念,其实在Doris之前,很多大数据领域的组件都支持冷热分离存储,例如大家熟知的Elasticsearch,利用ES的分片分配策略和给定节点路由,可以实现数据的冷热分离存储,使得热数据节点处理所有新输入的数据,并且存储速度也较快,以便确保快速地采集和检索数据。冷节点的存储密度则较大,可以在较长保留期限内保留数据,从而大大降低成本。

Doris同样也可以利用动态分区功能,对表分区进行生命周期管理,通过设置热数据转冷时间以及存储介质标识,后台任务将热数据从SSD自动冷却到 HDD,以帮助用户较大程度地降低存储成本。

这个在业务和数据规模较大的场景几乎是必做的操作,毕竟,谁会跟省钱过不去呢?

湖仓一体领域

Doris在很早的版本就已经支持了多种异构数据源的映射,例如Hive、ES等,在2.0版本这个范围扩展了湖表领域,增加了对Hudi、Iceberg、Paimon的支持。这将是一个巨大的改变,我们现在可以很轻松的将湖表映射到Doris来加速查询,在数据联邦查询分析场景得到了长足的进步。

c80cea68b7a6fd2fde4a2bcf22315621.png

未来,我们可以在特定业务场景中轻松实现湖仓一体化架构。届时,基于Flink、Doris、Hudi等的湖仓一体架构会频繁出现在大家眼前。当然这里面需要进行大量的最佳化实践,不过这一天很快会到来。

其他

此外,Doris还对某些功能进行了增强,例如多个数据模型下的列更新能力,高频写入Compaction内存优化等,在这些优化之前,我们都需要对任务进行很多优化,而现在不需要了,需要大家在使用过程中自行体会一下。

总之,2.0版本之后,Doris在开源OLAP领域的领先优势会逐步扩大,可以媲美很多云平台上的成熟的产品。

大家可以看到,数据开发领域过去的这几年发展有多快,是所有IT开发方向里几乎仅有的技术栈一直在快速迭代升级的方向,大家的技术栈也要跟上时代啊!不要等到被时代抛弃了才醒悟过来!

如果这个文章对你有帮助,不要忘记 「在看」 「点赞」 「收藏」 三连啊喂!

f303f4dd2a2eaa47177dd267e586af3b.png

6b4b9c4f1a6ba2e3e211bdf8fbeed720.jpeg

2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)

互联网最坏的时代可能真的来了

我在B站读大学,大数据专业

我们在学习Flink的时候,到底在学习什么?

193篇文章暴揍Flink,这个合集你需要关注一下

Flink生产环境TOP难题与优化,阿里巴巴藏经阁YYDS

Flink CDC我吃定了耶稣也留不住他!| Flink CDC线上问题小盘点

我们在学习Spark的时候,到底在学习什么?

在所有Spark模块中,我愿称SparkSQL为最强!

硬刚Hive | 4万字基础调优面试小总结

数据治理方法论和实践小百科全书

标签体系下的用户画像建设小指南

4万字长文 | ClickHouse基础&实践&调优全视角解析

【面试&个人成长】2021年过半,社招和校招的经验之谈

大数据方向另一个十年开启 |《硬刚系列》第一版完结

我写过的关于成长/面试/职场进阶的文章

当我们在学习Hive的时候在学习什么?「硬刚Hive续集」

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

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

相关文章

AI百度文心一言大语言模型接入使用(中国版ChatGPT)

百度文心一言接入使用(中国版ChatGPT) 一、百度文心一言API二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API 基于百度文心一言语言大模型…

【Java】多线程(初阶)

多线程初阶 认识线程线程的概念线程和进程的区别Java 的线程 和 操作系统线程 的关系创建线程方法1 继承Thread类方法2 实现Runnable接口其他变形匿名内部类创建Thread子类对象匿名内部类创建Runnable子类对象lambda表达式创建Runnable子类对象 Thread类及常见方法Thread的常见…

【C语言进阶(3)】高阶指针1

文章目录 字符指针指针数组指针数组的使用 数组指针数组指针的使用 数组传参和指针传参一维数组传参二维数组传参一级指针传参二级指针传参 函数指针 指针的概念 内存单元是有编号的,编号 地址 指针指针本质上是个用来存放地址的变量,地址是唯一的用来…

k-d Tree KD 树 交替建树

这个算法文字不太容易说明白,建议大家看视频,我只是抄下来做个笔记,方便回忆。 视频地址:141 k-d Tree KD 树 交替建树_哔哩哔哩_bilibili KD树的应用 kd树主要应用于多维空间关键数据的搜索: 最邻近搜索&#xff1…

动态规划:最大正方形

题目 在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积。 示例 1: 输入:matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”]…

Django实现音乐网站 ⑾

使用Python Django框架制作一个音乐网站, 本篇主要是前端开发前的一些必要配置和首页展示开发。 目录 配置应用路由 创建应用路由文件 应用路径加入项目路径 创建项目模板 创建项目及应用模板路径 设置模板路径 设置静态资源路径 创建静态资源路径 配置静态…

ubuntu16编译内核源码并替换

文章目录 1.找到和ubuntu内核版本相同的内核源码包2.下载下面三个文件3.相关步骤4.安装编译环境软件5.报错解决参考: 1.找到和ubuntu内核版本相同的内核源码包 4.15.0-112.113 : linux package : Ubuntu (launchpad.net) 2.下载下面三个文件 3.相关步骤 uname -r …

vue所有UI库通用)tree-select 下拉多选(设置 maxTagPlaceholder 隐藏 tag 时显示的内容,支持鼠标悬浮展示更多

如果可以实现记得点赞分享,谢谢老铁~ 1.需求描述 引用的下拉树形结构支持多选,限制选中tag的个数,且超过制定个数,鼠标悬浮展示更多已选中。 2.先看下效果图 3.实现思路 首先根据API文档,先设置maxTagC…

机器人的运动范围

声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 机器人的运动范围https://leetcode.c…

Air001外部中断/事件控制器功能

Air001外部中断/事件控制器 ✨对于外部中断,一般单片机基本标配的硬件功能,使用方法也没有什么特别的地方,对于事件控制器,用于停机模式下唤醒单片机功能,但是使用起来很简单,只需配置其引脚模式即可。 🔖目…

python+django+mysql项目实践五(信息搜索)

python项目实践 环境说明: Pycharm 开发环境 Django 前端 MySQL 数据库 Navicat 数据库管理 信息搜素 输入内容进行搜索,内容有文本类和时间类 文本类需要模糊搜索,包含即检索 时间类需要选取时间范围内的内容 views 利用Q完成对指定内容的检索 检索后按检索内容更新…

Linux简介--基础操作--文件传输(linux-Windows)

简介: 1、linux和windows都是操作系统,多任务,多用户,多线程… Linux免费使用,自由传播,开源 2、Linux 发行版(都是基于linux内核穿的外套) Ubuntu——嵌入式开发 fedora——早期嵌入…

编程小白的自学笔记十三(python办公自动化读写文件)

系列文章目录 编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二) 编程小白的自学笔记十一(python爬虫入门三Selenium的使用实例详解) 编程小白的自学笔记十(python爬虫入门二实例代码详解)…

【Linux】IO多路转接——poll接口

目录 poll初识 poll函数 poll服务器 poll的优点 poll的缺点 poll初识 poll也是系统提供的一个多路转接接口。 poll系统调用也可以让我们的程序同时监视多个文件描述符上的事件是否就绪,和select的定位是一样的,适用场景也是一样的。 poll函数 po…

首起针对国内金融企业的开源组件投毒攻击事件

简述 2023年8月9日,墨菲监控到用户名为 snugglejack_org (邮件地址:SnuggleBearrxxhotmail.com)的用户发布到 NPM 仓库中的 ws-paso-jssdk 组件包具有发向 https://ql.rustdesk[.]net 的可疑流量,经过确认该组件包携带远控脚本&a…

Qt 之 QPushButton,信号与槽机制

文章目录 前言一、QPushButton二、信号与槽机制总结 前言 一、QPushButton 当我们开发基于Qt框架的图形用户界面(GUI)应用程序时,经常需要在界面上添加按钮来实现用户交互。Qt提供了一个名为 QPushButton 的类作为按钮控件的实现。QPushButt…

BIO、NIO和AIO

一.引言 何为IO 涉及计算机核心(CPU和内存)与其他设备间数据迁移的过程,就是I/O。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。 I/O 描述了计算机系统…

Steam 灵感的游戏卡悬停效果

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Steam 灵感的游戏卡悬停效果</title><style>* {margin: …

云计算虚拟仿真实训平台

一、云计算虚拟仿真系统概述 云计算虚拟仿真系统是一种基于云计算技术和虚拟化技术的系统&#xff0c;用于实现各种仿真和模拟任务。它可以提供强大的计算能力和资源管理&#xff0c;为用户提供灵活、高效、可扩展的仿真环境。 该系统通常由一组服务器、网络和存储设备组成&am…

步入React正殿 - State进阶

目录 扩展学习资料 State进阶知识点 状态更新扩展 shouldComponentUpdate PureComponent 为何使用不变数据【保证数据引用不会出错】 单一数据源 /src/App.js /src/components/listItem.jsx 状态提升 /src/components/navbar.jsx /src/components/listPage.jsx src/A…