Apache Doris

Apache Doris介绍

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

特点: 列示存储、mmp(大规模并行处理)、支持实时数据分析、高度兼容mysql协议、高并发和高通图的Ad-hoc查询、支出聚合+明细数据查询、无外部系统依赖。

底层架构:

Doris =

Google mesa(满足一系列复杂且具有挑战性的用户和系统需求,本身不提供SQL查询引擎)

+

Apache Lmpala(MPP SQL查询引擎,做更多的查询优化,但缺少较完美的分布式存储引擎)

+

Apache ORCFile(只访问查询涉及的列,大量降低系统I/O,有利于查询的并发处理)

软硬件需求

Linux操作系统版本需求

CentOS

7.1及以上

Ubuntu

16.04及以上

软件需求

Java

1.8

GCC

4.8.2及以上

开发测试环境

模版

CPU

内存

磁盘

网络

实例数量

Frontend

8核+

8GB+

SSD或SATA,10GB+

千兆网卡

1

Backend

8核+

16GB+

SSD或SATA,50GB+

千兆网卡

1-3*

生产环境

模版

CPU

内存

磁盘

网络

实例数量

Frontend

16核+

64GB+

SSD或RAID卡,100GB+

万兆网卡

1-3*

Backend

16核+

64GB+

SSD或SATA,100GB+

万兆网卡

3*

适用场景

  • 报表分析

实时看板;面相企业内部分析师和管理者的报表;面向用户或者客户的高并发报表分析。

  • 即席查询

面向分析师的自助分析,查询模式不固定,要求较高的吞吐。

  • 统一数仓构建

一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。

  • 数据湖联邦查询

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

部署

用初始化脚本安装mysql数据库

curl-o online_index.sh https://sc-tools.uniscity.com/linux/script/online_index.sh

bash online_index.sh

安装包下载

#初始化目录
cd /opt 
mkdir doris1.2.4#查看系统CPU型号
uname -a#下载与系统cpu型号一致的包
wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.0-bin-x64.tar.gz#解压
xz -d apache-doris-2.0.0-bin-x64.tar.gz
tar -xvf apache-doris-2.0.0-bin-x64.tar.gz

时钟设置

#同步时间,需要使⽤ ntpdate 命令,如果没有可以使⽤yum安装
yum install ntpdate#使⽤ntpdate同步⽹络上的时间服务器的时间,例如 : time.windows.com、 ntp.aliyun.com
ntpdate -u ntp.aliyun.com#可以将时间同步做成⼀个定时任务,每隔⼀段时间就同步⼀下⽹络的时间
crontab -e
* * * * * /usr/sbin/ntpdate -u ntp.aliyun.com   #输入然后wq保存退出#查看crontab运行情况
crontab -l
tail -n 5 /var/log/cron

打开文件limits.conf

sudo vim /etc/security/limits.conf

在文件的末尾处添加或者修改

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

打开文件sysctl.conf

sudo vim /etc/sysctl.conf
# 添加
fs.file-max = 6553560
vm.max_map_count=2000000

FE配置

vim fe/conf/fe.conf#只需要修改priority_networks
priority_networks = 10.0.53.161/24

BE配置

vim be/conf/be.conf #需要修改JAVA_HOME和priority_networks即可
JAVA_HOME=/usr/local/java/jdk1.8.0_361/
priority_networks = 10.0.53.161/24

初始化

#启动fe
sh fe/bin/start_fe.sh --daemon#启动be
sh be/bin/start_be.sh --daemon#添加be到集群
alter system add backend "192.168.31.81:9050";#查看be状态
show PROC '/backends';
#查看fe状态
show frontends\G;

FE Web 登录页面

访问地址: http://localhost:8030/login
初始用户: root
密码:无

Doris的数据模型

Doris的数据模型主要分为3类:

  • Aggregate
  • Unique
  • Duplicate
Aggregate模型

适用于有固定模式的报表类查询场景。

表中的列按照是否设置AggregationType分为key(维度列)和Value(指标列)。没有设置AggregationType的称为Key,设置了AggregationType的称为Value。

导入数据时,Key列完全相同的行会聚合成一行,其Value列按照设置的AggregationType进行聚合。

AggregationType目前有以下方式:

  1. SUM:求和,多行的Value累加。
  2. REPLACE:替代,下一批数据的Value会替换之前导入的行中的Value。
  3. MAx:保留最大值。
  4. MIN:保留最小值。

在建表语句后添加以下语句声明Key列:

AGGREGATE KEY();
Unique模型

适用于需要保证主键唯一性的多维分析场景。

读时合并

Unique的读时合并可以用聚合模型中的REPLACE方式替代。

写时合并

Unique的写时合并不同于聚合模式的读时合并,其通过在写入时做额外的工作,实现了最优的查询性能。

在建表语句后添加以下语句声明唯一主键和写时合并:

UNIQUE KEY()
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"enable_unique_key_merge_on_write" = "true"
);
Duplicate模型

适用于任意维度的Ad-hoc查询,不受聚合模型的约束。

区别于上述2种模型,Duplicate模型的数据完全按照导入文件中的数据进行存储,不进行任何聚合。

在建表语句后添加以下语句声明排序依赖的键值:

DUPLICATE KEY();

当创建表的时候没有指定Unique、Aggregate或Duplicate时,会默认创建一个Duplicate模型的表,并自动指定排序列。

如果不需要排序时可以在表属性配置中添加如下语句:

PROPERTIES (
"enable_duplicate_without_keys_by_default" = "true"
);

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

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

相关文章

VLAN间通信

目录 第一步:配vlan 第二步:配置核心vlanif,MAC地址信息。 第三步:ospf协议 三层交换机(汇聚层): 对于交换机、路由器、防火墙等网络设备而言,接口类型一般存在两种:二层接口,三…

LeetCode热题100精讲——Top2:字母异位词分组【哈希】

你好,我是安然无虞。 文章目录 题目背景字母异位词分组C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题,用这3种数据类型足矣 字母异位词分组 题目链接&am…

基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤

该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景:大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址: http://book.gitapp.cn 后台地址:http://book.gitapp.cn/#/admin 后台管理帐号: 用户名&…

uni-app集成保利威直播、点播SDK经验FQ(二)|小程序直播/APP直播开发适用

通过uniapp集成保利威直播、点播SDK来开发小程序/APP的视频直播能力,在实际开发中可能会遇到的疑问和解决方案,下篇。更多疑问请咨询19924784795。 1.ios不能后台挂起uniapp插件 ios端使用后台音频播放和画中画功能,没有在 manifest.json 进…

数据库三级填空+应用题(1)

填空 35【答案】TOP 3 WITH TIES 【解析】希望选出商品数量最多的前3类商品,并获得相应的商品类别和数量。with ties一般是和Top 、 order by相结合使用,表示包括与最后一行order by后面的参数取值并列的结果。 36在SQL Server 2008中,每个数据页可存储8…

前端(vue)学习笔记(CLASS 5):自定义指令插槽路由

1、自定义指令 内置指令:内部提供的,每个指令都有自己各自独立的功能 自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能 全局注册-语法 例如,当页面加载时,让元素获得焦点 Vue.…

【redis】事务详解,相关命令multi、exec、discard 与 watch 的原理

文章目录 什么是事务原子性一致性持久性隔离性 优势与 MySQL 对比用处 事务相关命令开启事务——MULTI执行事务——EXEC放弃当前事务——DISCARD监控某个 key——WATCH作用场景使用方法实现原理 事务总结 什么是事务 MySQL 事务: 原子性:把多个操作&am…

【Java SE】单例设计模式

参考笔记:深入理解Java设计模式:单例模式及其饿汉式与懒汉式的对比,-CSDN博客 目录 1.什么是设计模式 2.经典设计模式 3.单例设计模式(static属性/方法经典使用场景 ) 3.1 饿汉式单例模式 3.2 懒汉式单例模式 4.补充 1.什么…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

蓝桥杯 劲舞团

问题描述 小蓝最近迷上了一款名为 “劲舞团” 的游戏。 在游戏中,只要按照给出的键位提示依次按出对应的键位,游戏人物便可以跟随节奏跳舞。 对于连续的 K 次正确敲击,如果任意连续两次敲击之间的时间间隔都小于等于 1 秒(即 1…

数据库数值函数详解

各类资料学习下载合集 ​​https://pan.quark.cn/s/8c91ccb5a474​​ 数值函数是数据库中用于处理数值数据的函数,可以用于执行各种数学运算、统计计算等。数值函数在数据分析及处理时非常重要,能够帮助我们进行数据的聚合、计算和转换。在本篇博客中,我们将详细介绍常用的…

关于金融开发领域的一些专业知识总结

目录 1. 交易生命周期 1.1 证券交易所 1.1.1 交易前 1) 订单生成(Order Generation) 2) 订单管理(Order Management) 1.1.2 交易执行 3) 交易匹配(Trade Matching) 1.1.3 交易后 4) 交易确认&…

Leetcode 3495. Minimum Operations to Make Array Elements Zero

Leetcode 3495. Minimum Operations to Make Array Elements Zero 1. 解题思路2. 代码实现 题目链接:3495. Minimum Operations to Make Array Elements Zero 1. 解题思路 这一题的话核心就是统计对任意自然数 n n n,从 1 1 1到 n n n当中所有的数字对…

Vue 3 + TypeScript 实现视频播放与字幕功能:集成西瓜播放器 XGPlayer

文章目录 1. 前言:视频播放器的重要性2. 准备工作2.1 安装 Vue 3 项目2.2 安装 XGPlayer 和相关依赖 3. 实现视频播放3.1 初始化 XGPlayer 4. 添加字幕功能4.1 配置字幕 4.2 字幕文件格式5. 增加交互性完整的代码,仅供参考6. 总结 在现代 Web 开发中&…

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样,文件直接保存在服务器,需要再下载到本地。 方法 在 官网下载Download for desktop,注意要下对版本,千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…

.NET 9 彻底改变了 API 文档:从 Swashbuckle(Swagger) 到 Scalar

示例代码下载:https://download.csdn.net/download/hefeng_aspnet/90404652 摘要 API 文档是现代软件开发的支柱。随着 .NET 9 从 Swashbuckle 转向 Microsoft.AspNetCore.OpenApi,开发人员需要新的策略来保持高效。本文探讨了这些变化,并介…

深入剖析Java虚拟机(JVM):从零开始掌握Java核心引擎

📌 引言:为什么每个Java开发者都要懂JVM? 想象你是一名赛车手,Java是你的赛车,而JVM就是赛车的引擎。 虽然你可以不关心引擎内部构造就能开车,但要想在比赛中获胜,必须了解引擎如何工作&#…

怎么连接linux服务器的桌面

一、使用 VNC(Virtual Network Computing) 1. 服务器端配置(Ubuntu 22.04 示例) # 安装 VNC 服务器(以 TigerVNC 为例) sudo apt update sudo apt install tigervnc-standalone-server tigervnc-xorg-ext…

elasticsearch 通用笔记

文章目录 一、前言二、内容说明1、目录简介2、本文例子前提内容 三、操作内容1、设置ES为服务2、查看健康度参数解析 3、索引相关查询3.1、查询指定索引内容3.1.1、匹配查询3.1.2、精确匹配(不尝试分词)3.1.3、范围查询3.1.4、id查询3.1.5、通配符及前缀…

windows安装配置FFmpeg教程

1.先访问官网:https://www.gyan.dev/ffmpeg/builds/ 2.选择安装包Windows builds from gyan.dev 3. 下滑找到release bulids部分,选择ffmpeg-7.0.2-essentials_build.zip 4. 然后解压将bin目录添加path系统变量:\ffmpeg-7.0.2-essentials_bui…