天天看點

Greenplum之桃花源(1)Greenplum簡介

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中安裝插件

繼續閱讀