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.pswp.cn/diannao/74374.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74374.shtml
英文地址,請注明出處:http://en.pswp.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…