大数据 - Doris系列《一》- Doris简介

news2024/12/26 14:34:59

目录

🐶1.1 Doris 概述

🐶1.2 OLAP和OLTP(面试)

1. 应用场景

🥙联机事务处理OLTP(On-Line Transaction Processing)

🥙联机分析处理OLAP(On-Line Analytical Processing)

2. OLAP和OLTP比较--“用户行为日志数据”

3. 常见的开源OLAP引擎

🐶1.3 使用场景

🐶1.4 优势

🐶1.5 架构

1.🥙FE(Frontend)

2. 🥙BE(Backend)

3. 🥙MySQL Client

4. Broker:

🐶1.6 默认端口


🐶1.1 Doris 概述

Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后, 更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台,单一 业务最大可达到上百 TB。

Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)

分析型(OLAP数据库产品。仅需亚秒级(一秒钟的十亿分之一)响应时间即可获得查询结果,有效地支持实时数据分析。

大规模并行处理:存储的数据量大、计算的数据量也很大。并发其实不是很高

面试题

如果我把doris作为一个业务系统的数据库,合适吗?doris的并发跟不上,有办法解决吗?

解决方案:

doris作为一个olap场景下的数据库,你却非要把它作为oltp场景下的数据库,本身这样的出发点就是不对的。当然了,既然已经这样做了,问题既然产生了,那么必须要解决。可以通过增加FE和BE的机器来改善这一点,增加FE可以提高并行度,而增加BE可以降低查询的延迟。

Apache Doris 的分布式架构非常简洁,易于运维,并且可以支持 10PB 以上的超大数据集。

Apache Doris 可以满足多种数据分析需求,例如固定历史报表,实时数据分析,交互式数据分析和探索式数据分析等。

🐶1.2 OLAP和OLTP(面试)

1. 应用场景

OLAP(联机分析处理)OLTP联机事务处理是两种不同类型的数据库处理系统,它们存在的意义主要在于满足不同的业务需求和数据处理目标。

🥙联机事务处理OLTP(On-Line Transaction Processing)

公司业务系统使用数据库的场景,针对业务系统数据库有大量随机的增删改查

  •  高并发

  • 速度要快

  • 支持事务

在淘宝的网站上,OLTP系统用于处理用户的交易,包括浏览商品、下单、付款等。每个用户的交互都会影响数据库中的实时数据,例如库存数量、订单状态等。这确保了淘宝平台能够在高并发环境下迅速处理大量的交易请求。

🥙联机分析处理OLAP(On-Line Analytical Processing)
  • 公司的数据分析使用数据库的场景,对已经生成好的数据进行统计分析

  • 一次操作都是针对的整个数据集

  • 只有查这个动作,不会去增删改

  • 查询的响应速度相对慢点也能接受

  • 并发量要求不是太高

 淘宝也需要使用OLAP系统来进行分析,以了解用户购物习惯、热门商品趋势、销售季节性等信息。通过OLAP,淘宝可以生成各种报告和可视化图表,帮助业务决策者更好地了解市场动态,并采取适当的策略,例如优化推荐算法、调整营销策略等。 OLAP还可以用于监测业务的整体健康状况,发现潜在的问题并及时采取行动。

2. OLAPOLTP比较--“用户行为日志数据”

OLTP

OLAP

数据源

仅包含当前运行日常业务数据

整合来自多个来源的数据,包括OLTP和外部来源

目的

面向应用,面向业务,支撑事务

面向主题,面向分析,支持分析决策

焦点

当下

主要面向过去,面向历史(实时数仓除外)

任务

增删改查

主要是用于读,select查询,写操作很少

响应时间

毫秒

秒,分钟,小时,天,这些取决于数据量和查询的复杂程度

数据量

小数据,MB,GB

大数据,TP,PB

3. 常见的开源OLAP引擎

开源OLAP引擎

优点

缺点

技术融合成本

易用性

使用场景

运维成本

引擎类型

ClickHouse

列式存储

单极性彪悍

保留明细数据

分布式集群在线扩展支持不佳

运维成本极高

非标协议接口

全面

纯列存OLAP

Druid

实时数据摄入

列式存储和位图索引

多租户和高并发

OLAP性能分场景表现差异大

使用门槛高

仅支持聚合查询

非标协议接口

局限

MOLAP

TiDB

HTAP混合数据库

同时支持明细和聚合查询

高度兼容mysql

非列式存储

OLAP能力不足

SQL标准

全面

纯列存OLAP

Kylin

与计算引擎,可以对数据一次聚合多次查询

支持数据规模超大

易用性强,支持标准sql

性能强,查询数据快

需要依赖hadoop生态

仅支持聚合查·询

不支持adhoc查询

不支持join和对数据的更新

SQL标准

局限

MOLAP

Doris

GooleMesa+Apache Impa+ORCFile/Parquet

主键更新

支持Rollup Table

高并发和高通图的Ad-hoc查询

支持聚合+明细数据查询

无外部系统依赖

成熟度不够

兼容mysql访问协议

全面

HOLAP

🐶1.3 使用场景

  • 报表分析

    • 实时看板 (Dashboards)

    • 面向企业内部分析师和管理者的报表

    • 面向用户或者客户的高并发报表分析(Customer Facing Analytics)。比如面向网站主的站点分析、面向广告主的广告报表,并发通常要求成千上万的 QPS ,查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris ,每天写入 100 亿行数据,查询并发 QPS 上万,99 分位的查询延时 150ms。

  • 即席查询(Ad-hoc Query):面向分析师的自助分析,查询模式不固定,要求较高的吞吐。小米公司基于 Doris 构建了增长分析平台(Growing Analytics,GA),利用用户行为数据对业务进行增长分析,平均查询延时 10s,95 分位的查询延时 30s 以内,每天的 SQL 查询量为数万条。

  • 统一数仓构建 :一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓,替换了原来由 Spark、Hive、Hbase、Phoenix 组成的旧架构,架构大大简化。

  • 数据湖联邦查询:通过外表的方式联邦分析位于 Hive、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升

🐶1.4 优势

🐶1.5 架构

Doris 的架构很简洁,只设 FE(Frontend)前端进程、BE(Backend)后端进程两种角色、两个后台的服务进程,不依赖于外部组件,方便部署和运维,FE、BE 都可在线性扩展。

1.🥙FE(Frontend)

  存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:

  • Leader 和 Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。

    注意点:follower的存活数量要超过半数才能正常执行。

    • Leader: ①生成sql的执行计划 ②修改,写入元数据 ③备份元数据

    • follower: ①生成sql的执行计划 ② 备份元数据 ③leader挂了以后,竞选leader

  • Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点。observer 不参与任何的写入,只参与读取。

    • observer: ①生成sql的执行计划 ②备份元数据

2. 🥙BE(Backend)

负责物理数据的存储和计算依据 FE 生成的物理计划,分布式地执行查询。数据的可靠性由 BE 保证,BE 会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。

3. 🥙MySQL Client

Doris 借助 MySQL 协议,用户使用任意 MySQL 的 ODBC/JDBC 以及 MySQL 的客户端,都可以直接访问 Doris。

mysql -uroot -p -P9030 -hhadoop01

Mysql 本地主机名:localhost 端口号:3306

Mysql linux本地主机名或IP地址:hadoop01 hadoop02 hadoop03 192.168.252.101/192.168.252.102/192.168.252.103

4. Broker:

一个独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统中文件的能力,包括 HDFS,S3,BOS 等。

🐶1.6 默认端口

实例名称

端口名称

默认端口

通讯方向

说明

BE

be_port

9060

FE-->BE

BE 上 thrift server 的端口,用于接收来自 FE 的请求

BE

webserver_port

8040

BE<-->FE

BE 上的 http server 端口

BE

heartbeat_service_port

9050

FE-->BE

BE 上心跳服务端口,用于接收来自 FE 的心跳

BE

brpc_prot*

8060

FE<-->BE,BE<-->BE

BE 上的 brpc 端口,用于 BE 之间通信

FE

http_port

8030

FE<-->FE ,用户<--> FE

FE 上的 http_server 端口

FE

rpc_port

9020

BE-->FE ,FE<-->FE

FE 上 thirft server 端口

FE

query_port

9030

用户<--> FE

FE 上的 mysql server 端口

FE

edit_log_port

9010

FE<-->FE

FE 上 bdbje 之间通信用的端口

Broker

broker_ipc_port

8000

FE-->BROKER,BE-->BROKER

Broker 上的 thrift server,用于接收请求

常用端口号

端口号

作用

8030

FE的Web UI端口

8040

BE的Web UI端口

9030

MYSQL客户端连接Doris的端口

9050

BE上心跳服务端口,用于接收来自FE的心跳

9010

FE之间的通信的端口

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

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

相关文章

WEB 3D技术 three.js 元素居中与获取元素中心点

本文 我们来说让物体居中 以及获取它的中心点 我们上文留下的这个代码 import ./style.css import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; import { RGBELoader } from "three/e…

跑腿配送系统技术探析

概述 跑腿配送系统是一种基于现代科技的服务平台&#xff0c;通过智能化的技术手段&#xff0c;实现用户需求的快速响应和高效配送。本文将探讨该系统的核心技术原理&#xff0c;以及在实际开发中的一些代码示例。 技术原理 1. 用户请求与任务分配 跑腿配送系统的第一步是…

5 个最适合SEI 网络空投交易等操作的钱包(Bitget Wallet,Coin98等)

​大家好&#xff01;Sei 网络比 SOL 快 5 倍&#xff0c;手续费低&#xff0c;还能防止前台交易。好了&#xff0c;我不会占用大家太多时间&#xff0c;让我们直奔主题吧。 Sei 官方&#xff1a;推特&#xff08;twitter.com/SeiNetwork&#xff09; 如上图所示&#xff0c;目…

【Java集合篇】HashMap 是如何扩容的

HashMap 是如何扩容的 ✔️ 为什么需要扩容?✔️ 桶元素重新映射✔️链表重新链接✔️ 取消树化✔️拓展知识仓✔️除了rehash之外&#xff0c;哪些操作也会将树会退化成链表? ✔️ 为什么需要扩容? HashMap在Java等编程语言中被广泛使用&#xff0c;用于存储键值对数据。Ha…

MySQL5.7 InnoDB 内存结构

官网地址&#xff1a;MySQL :: MySQL 5.7 Reference Manual :: 14.5 InnoDB In-Memory Structures 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. MySQL 5.7 参考手册 / ... / 缓冲池 14.5.1 缓冲池 缓冲池是…

从零开始搭建企业级前端项目模板(vue3+vite+ts)

文章目录 主要内容一、vite脚手架工具初始化项目二、项目代码加入eslint校验和自动格式化2.1安装对应依赖插件2.2 配置script脚本&#xff0c;项目安装eslint配置2.3 安装完成后&#xff0c;后面启动项目还缺少一些依赖&#xff0c;提前按需安装好 三&#xff0c;修改eslintrc.…

Vue3+Pinia实现持久化动态主题切换

PC端主题切换大家都用过&#xff0c;下面用Vue3Pinia实现一下这个过程; 【源码地址】 1、准备工作 npm install pinia npm install pinia-plugin-persist2、基础配置 // main.js import { createApp } from vue import App from ./App.vue import bootstrap from "../bo…

关于无人机上层控制的PID算法的思考

一、前言 背景介绍&#xff1a;PID虽然出现了很多年&#xff0c;但是目前工业界还是把PID作为主流的控制算法&#xff08;尽管学术界有很多非常时尚的控制算法&#xff0c;包括鲁邦控制&#xff0c;神经网络控制等等&#xff09;&#xff0c;PID的算法在于其不需要对系统进行复…

跟着小德学C++之安全模块

嗨&#xff0c;大家好&#xff0c;我是出生在达纳苏斯的一名德鲁伊&#xff0c;我是要立志成为海贼王&#xff0c;啊不&#xff0c;是立志成为科学家的德鲁伊。最近&#xff0c;我发现我们所处的世界是一个虚拟的世界&#xff0c;并由此开始&#xff0c;我展开了对我们这个世界…

Spring Security 6.x 系列(15)—— 会话管理之源码分析

一、前言 在上篇 Spring Security 6.x 系列(13)—— 会话管理之会话概念及常用配置 Spring Security 6.x 系列(14)—— 会话管理之会话固定攻击防护及Session共享 中了清晰了协议和会话的概念、对 Spring Security 中的常用会话配置进行了说明,并了解会话固定攻击防护…

WorkPlus完备的企业级功能堆栈,打造高效的企业移动平台

在如今的数字化时代&#xff0c;企业需要一个完备的功能堆栈来满足复杂的业务需求。WorkPlus作为一个完整的企业级移动平台&#xff0c;拥有完备的企业级功能&#xff0c;如IM、通讯录、内部群、模板群、工作台、权限管控、应用中心、日程管理、邮箱、同事圈、服务号、智能表单…

【Docker-Dev】Mac M2 搭建docker的redis环境

Redis的dev环境docker搭建 1、前言2、官方文档重点信息提取2.1、创建redis实例2.2、使用自己的redis.conf文件。 3、单机版redis搭建4、redis集群版4.1、一些验证4.2、一些问题 结语 1、前言 本文主要针对M2下&#xff0c;相应进行开发环境搭建&#xff0c;然后做一个文档记录…

FreeRTOS学习第6篇–任务状态挂起恢复删除等操作

目录 FreeRTOS学习第6篇--任务状态挂起恢复删除等操作任务的状态设计实验IRReceiver_Task任务相关代码片段实验现象本文中使用的测试工程 FreeRTOS学习第6篇–任务状态挂起恢复删除等操作 本文目标&#xff1a;学习与使用FreeRTOS中的几项操作&#xff0c;有挂起恢复删除等操作…

自动驾驶apollo9.0 Dreamview Debug方法

Apollo 9.0 安装&编译方法 # 拉取源码 git clone gitgithub.com:ApolloAuto/apollo.git git checkout v9.0.0# 启动docker bash docker/scripts/dev_start.sh bash docker/scripts/dev_into.sh# 编译project ./apollo.sh build默认启动方式 default mode wget https:…

MybatisPlus—自定义SQL

目录 1. 自定义SQL介绍 2. 自定义SQL使用步骤 3. 自定义SQL实例 4.总结 1. 自定义SQL介绍 介绍&#xff1a;自定义SQL并不是由我们来编写全部SQL语句&#xff0c;而是通过利用MyBatisPlus的Wrapper来构建复杂的Where条件&#xff0c;然后自己定义SQL语句中剩下的部分。 使…

详细全面的postman接口测试实战教程

基本介绍 postman是一款流程的接口调试工具&#xff0c;其特点就是使用简单&#xff0c;功能强大。使用角色也非常广泛&#xff0c;后端开发&#xff0c;前端人员&#xff0c;测试人员都可以使用它进行接口调试或测试。 基本框架 如果把postman去其内容只保留框架的话&#…

WorkPlus安全专属的即时通讯解决方案,助力企业高效沟通协作

在当今快节奏的商业环境中&#xff0c;高效的即时通讯是企业成功的关键。而WorkPlus作为一种领先的即时通讯工具&#xff0c;以其卓越的性能和创新的功能&#xff0c;助力企业高效沟通和协作。 WorkPlus作为即时通讯的新选择&#xff0c;为何备受企业的青睐&#xff1f;首先&am…

【JaveWeb教程】(7)Web前端基础:Vue组件库Element介绍与快速入门程序编写并运行 示例

目录 Element介绍快速入门示例 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主…

使用ChatGPT生成i项目需求文档模板

前言 我们在工作中需要编写的技术文档有多种形式&#xff0c;包括Word、Excel、PDF及一些在线形式。我们可以借助ChatGPT生成文本&#xff0c;然而&#xff0c;它不能直接生成Word、Excel、PDF等格式的文档。因此&#xff0c;我们需要利用其他工具来帮助我们生成一些模板&…

linux反汇编工具: ida pro、rizinorg/cutter; ubuntu 22 flameshot延迟截图 以应对下拉菜单

rizinorg/cutter rizinorg/cutter 是 命令行反汇编工具 rizinorg/rizin 的图形化界面, 这比 ida pro跑在kvm虚拟机中方便多了, ubuntu22.04下直接下载Cutter-v2.3.2-Linux-x86_64.AppImage后即可运行,如下图: 注意 有个同名的报废品: radare2/Cutter 即 radare2的图形化界…