Greenplum簡介
MPP是Massively Parallel Processing,即大規模并行處理。
Greenplum是建立在MPP架構之上的大資料并行處理資料庫。
Greenplum是承載多個Postgresql執行個體的平台,對Psql進行多節點并發的改造,進而實作大資料并發的資料處理。
資料重分布、廣播–資料遷移
顧名思義,資料遷移就是資料的遷移。
并發資料庫架構MPP的重要特點就是,關聯資料在不同的節點之上,這種情況對于普通關系型資料庫來說是沒辦法的,可是MPP可以通過資料遷移實作。
分布鍵
哈希分布和随機分布
對于減小資料庫開銷和增加效率來說我們有幾種方法:
1、分區
主要是為了縮小query所需要掃描的資料
greenplum支援LIST和RANGE兩種分區類型
2、索引
避免全局掃描,快速定位到所關聯的資料
3、設計适當的模式和search_path
使得不同使用者在操作表時快速定位到模式和表
4、設計适當的分布鍵
(1)盡量選擇經常需要JOIN的列:當關聯鍵和分布鍵均一緻時,可以在 Segment 中完成 JOIN,不需要重分布或者廣播小表;當關聯鍵和分布鍵不一緻時,則需要重分布不一緻的表或者廣播小表,帶來額外的開銷。
(2)盡量選擇分布均勻的列或者多列:若選擇的分布列值分布不均勻,則可能導緻資料傾斜。某些 Segment 非常大(壓力大)某些 Segment 非常小。根據木桶原理,時間消耗會卡在資料多的節點上。
(3)盡量選擇高并發查詢的條件列(指該查詢條件産生的中間結果集小的,如果中間結果集很大,那就讓所有節點都來參與運算更好,是以不選)如果資料經常被高并發的鍵值或離散查詢,可以将查詢條件的列作為分布列,這樣不需要連接配接到所有的 Segment 去查,可以大大提高并發能力。
(4)不要輕易使用随機分布
基本用法:
\h擷取具體指令的文法,比如
\h create table
建庫:
CREATE DATABASE newname USING TEMPLATE tmplatedbname;
模組化式:
CREATE SCHEMA schema_name;
(在哪個使用者下建立的,就隻能哪個使用者通路除了gpadmin,也可以設定權限,以及搜尋路徑search_path)
建使用者:
CREATE ROLE role_name WITH PASSWORD ‘***’;
我們也可以把一個使用者賦予另一個使用者
CREATE ROLE role_name CREATEROLE CREATEDB;
GRANT role_name TO role_name1,role_name2;
那麼role_name1和2就可以使用和role_name一樣的權限
建表:
在Greenplum中建表時需要指定表的分布鍵。
如果表需要用某個字段分區,可以通過partition by将表建成分區表。
可以使用like操作建立與like的表一樣結構的表,功能類似
create table t1 as select*from t2 limit 0。
可以使用inherits實作表的繼承,具體的實作可以參考postgreSQL文檔。
CREATE TABLE test01(id int primary key,name varchar(128)) distrubuted(id);
資料類型
任意精度的數值
無限制長度文本
幾何圖元
IP位址與IPv6位址
無類域間路由位址塊,MAC位址
數組
查詢語句可以不指定from,比如在執行函數的時候
select greatest(1,2)
explain用于查詢一個表的執行計劃
insert可以批量操作,但是分布鍵不可以為空,否則分布鍵預設為null
update不能對分布鍵進行批量執行
delete整張表建議使用TRUNCATE
檢視檔案夾大小
在greenplum中安裝插件