使用PostgreSQL作為資料倉儲 - narrator
在人工智慧公司Narrator支援許多資料倉儲,包括Postgres。儘管它是為生產系統而設計的,但稍作調整後,Postgres可以非常好地用作資料倉儲。
總結:
- 不要使用與生產系統相同的伺服器
- 升級到pg 12+(或在查詢中避免使用通用表表示式)
- 去容易對指標-少即是多
- 考慮分割槽長表
- 確保您不受I / O約束
- 批次插入後進行真空分析
- 探索並行查詢
- 增加統計抽樣
- 在經常查詢的表上使用較少的列
- 大規模考慮專門的倉庫
資料倉儲和關聯式資料庫之間的差異
- 生產查詢OLTP
典型的生產資料庫查詢從潛在的大型資料集中選擇幾行。他們旨在快速回答許多這類問題。
想象一下一個Web應用程式–一次可能有成千上萬的使用者正在查詢:
select * from users where id = 1234 |
資料庫將被調整為快速(在毫秒內)處理大量此類請求。
為了支援這一點,大多數資料庫(包括Postgres)都按行儲存資料–這樣可以有效地從磁碟載入整個行。他們經常使用索引來快速找到相對較少的行。
- 分析查詢OLAP
分析查詢通常相反:
- 查詢將處理許多行(通常佔整個表的很大一部分)
- 查詢可能需要幾秒鐘到幾分鐘才能完成
- 查詢將從一個寬(多列)表中的少數列中進行選擇
因此,專用的資料倉儲(如Redshift,BigQuery和Snowflake)使用面向列的儲存,並且沒有索引。
這對Postgres意味著什麼
儘管Postgres是面向行的,但它也可以輕鬆地用於分析查詢。它只需要一些調整和一些測量。儘管Postgres是一個不錯的選擇,但請記住,從長遠來看,像Snowflake這樣的基於雲的倉庫將更易於管理和維護。
溫馨提示:請勿將生產中Postgres例項同時用於資料包告/指標。可以進行一些查詢,但是分析的工作負載與典型的生產工作負載相差甚遠,以至於它們會對生產系統產生相當大的效能影響。
詳細點選標題
相關文章
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 基於Greenplum,postgreSQL的大型資料倉儲實踐SQL
- 資料倉儲—資料倉儲—Sybase IQ 介紹
- 資料倉儲中如何使用索引索引
- ETL資料倉儲的使用方式
- 資料倉儲
- 雲資料建模:為資料倉儲設計資料庫資料庫
- 設計資料倉儲和資料倉儲的粒度
- 資料倉儲—資料倉儲—NCR Teradata Warehouse 介紹
- 資料倉儲中的分析SQL——資料倉儲手冊SQL
- 資料倉儲之路
- 企業為什麼要建資料倉儲?
- 使用資料倉儲BI的6種策略
- 資料庫和資料倉儲資料庫
- 資料倉儲—資料倉儲—IBM DB2 Datawarehouse 介紹IBMDB2
- 為什麼在資料倉儲中很少使用主外來鍵約束
- [數倉]資料倉儲設計方案
- 資料倉儲 - ER模型模型
- 認識資料倉儲
- NoSQL 和資料倉儲SQL
- ORACLE 資料倉儲概念Oracle
- 資料倉儲概論
- 資料倉儲指南 (轉)
- 構建資料倉儲
- 使用data.js作為統一的資料儲存中心JS
- 雲端計算成為資料倉儲的新重心
- 資料倉儲和後設資料
- 使用並行執行——資料倉儲手冊並行
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- 使用Hazelcast作為Spring資料儲存庫的開源案例ASTSpring
- 什麼是資料倉儲?
- 資料倉儲建模方法論
- 什麼是資料倉儲
- 資料倉儲經驗概念
- 資料倉儲 ODS簡介
- 資料倉儲的組成
- 資料倉儲設計(轉)
- 資料倉儲中的概念