時序數據庫TimescaleDB,實戰部署全攻略

📢📢📢📣📣📣
哈嘍!大家好,我是【IT邦德】,江湖人稱jeames007,10余年DBA及大數據工作經驗
一位上進心十足的【大數據領域博主】!😜😜😜
中國DBA聯盟(ACDU)成員,目前服務于工業互聯網
擅長主流Oracle、MySQL、PG、高斯及Greenplum運維開發,備份恢復,安裝遷移,性能優化、故障應急處理等。
? 如果有對【數據庫】感興趣的【小可愛】,歡迎關注【IT邦德】💞💞💞
??????感謝各位大可愛小可愛!??????

文章目錄

    • 📣 1.時序數據庫
    • 📣 2.TimescaleDB
    • 📣 3.安裝PG
      • ?3.1. rpm包下載
      • ?3.2 安裝依賴包
      • ?3.3 始化安裝
      • ?3.4 配置參數
      • ?3.5 重啟
    • 📣 4.TimescaleDB部署
      • ? 4.1 repository
      • ? 4.2 yum在線安裝
      • ? 4.3 插件配置
    • 📣 5.TimescaleDB使用
      • ? 5.1 登陸PG
      • ? 5.2 創建插件
      • ? 5.3 使用超表
    • 📣 6 總結


運用時間模型來構造的應用非常需要時序數據庫的加持,包括未來大數據的趨勢,時序數據庫必然會成為一個新潮流。

📣 1.時序數據庫

什么是時序數據庫?顧名思義,用于處理按照時間變化順序的數據的數據庫即為時序數據庫(time-series database),時序數據庫專門優化處理帶時間標簽的數據,為什么會衍生時序數據庫這一種新趨勢呢?我們知道像PostgreSQL和MySQL這種關系型數據庫對于短期需求不大的情況下下還是可以滿足的,但是一旦數據量增長,其性能不足以支持頻繁的添加和讀取需求。運用時間模型來構造的應用非常需要時序數據庫的加持,包括未來大數據的趨勢,時序數據庫必然會成為一個新潮流。

📣 2.TimescaleDB

對于TimescaleDB來說,在功能的豐富程度上戰勝了排名更靠前的幾位選手,但是對于性能上可能處于下風,因此TimescaleDB如何持續地發展下去、如何發展地更好,除了探尋在性能等綜合素質方面的提升外,在PostgreSQL的肩膀上怎么樣更好地適應現代化需求才是重中之重。

截止2024年2月,TimescaleDB在DB-Engines中排名的處于第4位,并一直處于上升的趨勢。

在這里插入圖片描述
在這里插入圖片描述

TimescaleDB是基于PostgreSQL數據庫打造的一款時序數據庫,插件化的形式,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。

在這里插入圖片描述

📣 3.安裝PG

?3.1. rpm包下載

https://ftp.postgresql.org/pub/repos/yum/14/redhat/rhel-8.1-x86_64/

下載lib
wget https://ftp.postgresql.org/pub/repos/yum/14/redhat/rhel-8.1-x86_64/postgresql14-libs-14.9-2PGDG.rhel8.x86_64.rpm
下載客戶端和庫
wget https://ftp.postgresql.org/pub/repos/yum/14/redhat/rhel-8.1-x86_64/postgresql14-14.9-2PGDG.rhel8.x86_64.rpm
下載service
wget https://ftp.postgresql.org/pub/repos/yum/14/redhat/rhel-8.1-x86_64/postgresql14-server-14.9-2PGDG.rhel8.x86_64.rpm

?3.2 安裝依賴包

yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel
yum install -y zlib-devel perl python36 tcl openssl ncurses-devel openldap pam
yum install -y zlib libicu

rpm -ivh postgresql14-libs-14.9-2PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql14-14.9-2PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql14-server-14.9-2PGDG.rhel8.x86_64.rpm

?3.3 始化安裝

/usr/pgsql-14/bin/postgresql-14-setup initdb

systemctl enable postgresql-14
systemctl start postgresql-14
systemctl status postgresql-14

?3.4 配置參數

cat >> /var/lib/pgsql/14/data/postgresql.conf <<"EOF"
listen_addresses = '*'
port=5432
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOF
cat << EOF > /var/lib/pgsql/14/data/pg_hba.conf
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0      md5
host   replication  all    0.0.0.0/0      md5
local  replication  all                    trust
EOF

?3.5 重啟

systemctl restart postgresql-14
ALTER USER postgres WITH PASSWORD ‘123456’;
psql -U postgres -h 192.168.3.10 -d postgres -p 5432

📣 4.TimescaleDB部署

? 4.1 repository

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL

? 4.2 yum在線安裝

1.Update your local repository list:
yum update --skip-broken --nobest2.Install TimescaleDB:
yum install timescaledb-2-postgresql-14在Red Hat Enterprise Linux 8上安裝時,需要使用:
sudo dnf module disable postgresql
命令禁用系統中內置的PostgreSQL模塊。

在這里插入圖片描述

? 4.3 插件配置

修改postgresql config文件,使timescaledb這個插件能正常工作,通過調優腳本來配置數據庫
[root@rhel8 ~]# find / -name pg_config
/usr/pgsql-14/bin/pg_config

sudo timescaledb-tune --pg-config=/usr/pgsql-14/bin/pg_config

在這里插入圖片描述

📣 5.TimescaleDB使用

? 5.1 登陸PG

[root@rhel8 ~]# su - postgres
[postgres@rhel8 ~]$ 
[postgres@rhel8 ~]$ psql
psql (14.10)
Type "help" for help.postgres=# create database jemdb;
CREATE DATABASE
postgres=# \c jemdb
You are now connected to database "jemdb" as user "postgres".

? 5.2 創建插件

1.創建插件
CREATE EXTENSION IF NOT EXISTS timescaledb;2.刪除插件
DROP EXTENSION IF EXISTS timescaledb;jemdb=# \dxList of installed extensionsName     | Version |   Schema   |                                     Description                                      
-------------+---------+------------+--------------------------------------------------------------------------------------plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural languagetimescaledb | 2.14.2  | public     | Enables scalable inserts and complex queries for time-series data (Apache 2 Edition)
(2 rows)

? 5.3 使用超表

1、創建普通測試表
CREATE TABLE conditions (
time        TIMESTAMPTZ       NOT NULL,
location    TEXT              NOT NULL,
temperature DOUBLE PRECISION  NULL,
humidity    DOUBLE PRECISION  NULL
);2、基于time分區將上一步創建的普通表轉換為超表
jemdb=# SELECT create_hypertable('conditions', 'time');create_hypertable    
-------------------------(1,public,conditions,t)
(1 row)3、插入數據并查詢
jemdb=# INSERT INTO conditions(time, location, temperature, humidity)
SELECT now(), to_char(i, 'FM0000'), random()*i, random()*i FROM generate_series(1,10000) i;4.針對過去3小時的數據,每15分鐘采集度量一次,按照時間和溫度降序排序
SELECT time_bucket('15 minutes', time) AS fifteen_min,
location, COUNT(*),
MAX(temperature) AS max_temp,
MAX(humidity) AS max_hum
FROM conditions
WHERE time > NOW() - interval '3 hours'
GROUP BY fifteen_min, location
ORDER BY fifteen_min DESC, max_temp DESC;5.更改現有超表上的塊間隔長度
SELECT set_chunk_time_interval('conditions', INTERVAL '24 hours');SELECT h.table_name, c.interval_lengthFROM _timescaledb_catalog.dimension cJOIN _timescaledb_catalog.hypertable hON h.id = c.hypertable_id;

在這里插入圖片描述

超表(hypertable)是具有特殊功能的PostgreSQL表,可以很容易地處理時間序列數據。與它們交互就像與普通PostgreSQL表交互一樣,但在幕后,超表會自動按時間將數據劃分為塊。在TimescaleDB中,超表與普通PostgreSQL表可以一起存在。超表用來存儲時序數據,這樣可以提高插入和查詢的性能,而且可以訪問一些有用的時間序列特性。普通PostgreSQL表用來存儲其它關系型數據。

📣 6 總結

隨著物聯網的發展,時序數據庫的需求越來越多,比如水文監控、工廠的設備監控、國家安全相關的數據監控、通訊監控、金融行業指標數據、傳感器數據等。
在互聯網行業中,也有著非常多的時序數據,例如用戶訪問網站的行為軌跡,應用程序產生的日志數據等等。

以下是時序數據庫的發展史推薦給大家,一起交流學習

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696590.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696590.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696590.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ Primer 筆記(總結,摘要,概括)——第5章 語句

目錄 5.1 簡單語句 5.2 語句作用域 5.3 條件語句 5.3.1 if語句 5.3.2 switch語句 5.4 迭代語句 5.4.1 while語句 5.4.2 傳統的for語句 5.4.3 范圍for語句 5.4.4 do while語句 5.5 跳轉語句 5.5.1 break語句 5.5.2 continue語句 5.5.3 goto語句 5.6 try語句塊和異常處理 5…

前端常見面試題

我們前端常見面試題涉及多個方面&#xff0c;這篇文章就先簡單把每個方面都舉幾個列子&#xff0c;分別寫一下常見的主題和可能的問題。 一&#xff1a;HTML/CSS 基礎 問題: 1.解釋一下什么是語義化標簽&#xff1f;它的好處是什么&#xff1f; 2.CSS 選擇器的優先級是如何工…

2024華北醫院信息網絡大會第二輪更新通知

大會背景 近年來&#xff0c;我國醫療行業信息化取得了飛躍式的發展&#xff0c;醫療信息化對醫療行業有著重要的支撐作用。2021年國家衛健委、中醫藥管理局聯合印發《公立醫院高質量發展促進行動&#xff08;2021-2025年&#xff09;》&#xff0c;提出重點建設“三位一體”智…

【青龍】快速搭建青龍面板,部署屬于你自己的應用!

青龍面板是一個支持 Python3、JavaScript、Shell、Typescript 的定時任務管理平臺。 廢話不多說&#xff0c;直接開始。 這里使用一臺 雨云 的云服務器作為演示。雨云注冊地址&#xff1a;https://www.rainyun.com/ 優惠碼&#xff1a;lz932 使用優惠碼注冊后綁定微信可獲得8折…

【Chrono Engine學習總結】4-vehicle-4.3-兩個vehicle碰撞測試

由于Chrono的官方教程在一些細節方面解釋的并不清楚&#xff0c;自己做了一些嘗試&#xff0c;做學習總結。 今天突發奇想&#xff0c;想試一下&#xff0c;是否可以實現兩個vehicle的碰撞&#xff1f; 1、兩輛vehicle的仿真 官方提供了demo_VEH_TwoCars這個demo&#xff0c…

C++入門04 函數的參數傳遞、引用類型與重載

圖源&#xff1a;文心一言 聽課筆記簡單整理&#xff0c;供小伙伴們參考&#xff0c;包含以下內容“&#x1f40b;3.11 引用類型、&#x1f40b;3.14 內聯函數、&#x1f40b;3.15 默認參數值、&#x1f40b;3.16 函數重載、&#x1f40b;3.17 C系統函數”~&#x1f95d;&…

LabVIEW多通道壓力傳感器實時動態檢測

LabVIEW多通道壓力傳感器實時動態檢測 介紹了一種基于LabVIEW的多通道壓力傳感器實時動態檢測系統&#xff0c;解決壓阻式壓力傳感器溫度補償過程的復雜度&#xff0c;提高測量的準確性。通過自動輪詢檢測方法&#xff0c;結合硬件檢測模型和多通道檢測系統設計&#xff0c;本…

集合框架之List集合

目錄 ?編輯 一、什么是UML 二、集合框架 三、List集合 1.特點 2.遍歷方式 3.刪除 4.優化 四、迭代器原理 五、泛型 六、裝拆箱 七、ArrayList、LinkedList和Vector的區別 ArrayList和Vector的區別 LinkedList和Vector的區別 一、什么是UML UML&#xff08;Unif…

基于ORB-SLAM2與YOLOv8剔除動態特征點(三種方法)

基于ORB-SLAM2與YOLOv8剔除動態特征點(三種方法) 寫上篇文章時測試過程比較亂&#xff0c;寫的時候有些地方有點失誤&#xff0c;所以重新寫了這篇 本文內容均在RGB-D環境下進行程序測試 本文涉及到的動態特征點剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

系統學習Python——裝飾器:類裝飾器-[單例類:編寫替代方案]

分類目錄&#xff1a;《系統學習Python》總目錄 有趣的是&#xff0c;這里如果能使用nonlocal語句&#xff08;僅在Python3.X中可用&#xff09;來改變外層作用域名稱&#xff0c;我們在這里可以編寫一個自包含程度更高的解決方案一一一下面的替代方案為每個類使用了一個外層作…

編寫程序,實現shell功能——項目訓練——day08

c c今天做了一個實戰項目訓練&#xff0c;編寫一個程序&#xff0c;實現shell功能&#xff0c;我們稱之為minishell。 主要是利用Linux中IO接口實現&#xff0c;實現的功能有&#xff1a; 1.ls ls -a ls -l cd cp mv pwd c…

軟件License授權原理

軟件License授權原理 你知道License是如何防止別人破解的嗎&#xff1f;本文將介紹License的生成原理&#xff0c;理解了License的授權原理你不但可以防止別人破解你的License&#xff0c;你甚至可以研究別人的License找到它們的漏洞。喜歡本文的朋友建議收藏關注&#xff0c;…

【Linux】進程狀態

進程狀態 進程狀態的簡要介紹運行狀態進程排隊 阻塞狀態掛起狀態Linux中的進程狀態 進程狀態的簡要介紹 進程狀態指的是一個操作系統中正在運行的進程當前所處的狀態。根據不同的操作系統&#xff0c;進程狀態可能會有一些細微的差別&#xff0c;但最主要的是以下三種狀態 運行…

Java——方法的使用

目錄 一.方法的概念及使用 1 什么是方法(method) 2.方法定義 3 方法調用的執行過程 4 實參和形參的關系(重要) 5.沒有返回值的方法 二.方法重載 1.為什么需要方法重載 2.方法重載概念 3.方法簽名 三.遞歸 1.遞歸的概念 2.遞歸執行過程分析 3. 遞歸練習 一.方法的…

貓頭虎分享已解決Bug || 容器編排問題:OrchestrationFailure, ContainerManagementError

博主貓頭虎的技術世界 &#x1f31f; 歡迎來到貓頭虎的博客 — 探索技術的無限可能&#xff01; 專欄鏈接&#xff1a; &#x1f517; 精選專欄&#xff1a; 《面試題大全》 — 面試準備的寶典&#xff01;《IDEA開發秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鴻蒙》 …

代碼隨想錄算法訓練營第四十二天|122. 買賣股票的最佳時機 II

674. 最長連續遞增序列 public static int findLengthOfLCIS(int[] nums) {int[] dp new int[nums.length];dp[0] 1;for (int i 1; i < nums.length; i) {dfs(nums, dp, i);}Arrays.sort(dp);return dp[dp.length - 1];}public static void dfs(int[] nums, int[] dp, i…

【Python】【VS Code】VS Code中python.json和setting.json文件配置說明

目錄 1. python.json配置 2. setting.json配置 3. 解決中文亂碼 4. 實現效果 1. python.json配置 python.json 獲取步驟&#xff1a;文件 -> 首選項 -> 配置用戶代碼片段 -> python 此為VS Code的頭文件設置&#xff0c;復制以下內容到 python.json {"HEADER…

個人做抖店如何能夠快速起店?掌握好技巧是關鍵!建議收藏!

大家好&#xff0c;我是電商小布。 相信我們每個朋友在店鋪開通后&#xff0c;最關心的事情就是小店成功起店了。 那么個人做抖店想要快速起店&#xff0c;該怎么來進行操作呢&#xff1f; 接下來&#xff0c;小布重點給大家說三點&#xff1a; 首先來說一下小店的主體類型…

git常用命令記錄

1、第一次初始化 git init git add . git commit -m ‘first commit’ git remote add origin gitgithub.com:帳號名/倉庫名.git git pull origin master git push origin master # -f 強推 git clone gitgithub.com:git帳號名/倉庫名.git 2、工作基本操作 git checkout master…

dell r740服務器黃燈閃爍維修現場解決

1&#xff1a;首先看一下這款DELL非常主力的PowerEdge R740服務器長啥樣&#xff0c;不得不說就外觀來說自從IBM拋棄System X系列服務器后&#xff0c;也就戴爾這個外觀看的比較順眼。 圖一&#xff1a;是DELL R740前視圖&#xff08;這款是8盤機型&#xff09; 圖二&#xff…