日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求

發布時間:2024/4/14 ChatGpt 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

隨著IT行業在更多的傳統行業滲透,我們正逐步的在進入DT時代,讓數據發揮價值是企業的真正需求,否則就是一堆廢的并且還持續消耗企業人力,財力的數據。

傳統企業可能并不像互聯網企業一樣,有大量的開發人員、有大量的技術儲備,通常還是以購買IT軟件,或者以外包的形式在存在。

數據的核心 - 數據庫,很多傳統的行業還在使用傳統的數據庫。

但是隨著IT向更多行業的滲透,數據類型越來越豐富(諸如人像、X光片、聲波、指紋、DNA、化學分子、圖譜數據、GIS、三維、多維 等等…… ),數據越來越多,怎么處理好這些數據,怎么讓數據發揮價值,已經變成了對IT行業,對數據庫的挑戰。

對于互聯網行業來說,可能對傳統行業的業務并不熟悉,或者說互聯網那一套技術雖然在互聯網中能很好的運轉,但是到了傳統行業可不一定,比如說用于科研、軍工的GIS,和互聯網常見的需求就完全不一樣。

除了對數據庫功能方面的挑戰,還有一方面的挑戰來自性能方面,隨著數據的爆炸,分析型的需求越來越難以滿足,主要體現在數據的處理速度方面,而常見的hadoop生態中的處理方式需要消耗大量的開發人員,同時并不能很好的支持品種繁多的數據類型,即使GIS可能也無法很好的支持,更別說諸如人像、X光片、聲波、指紋、DNA、化學分子、圖譜數據、GIS、三維、多維 等等。

那么我們有什么好的方法來應對這些用戶的痛處呢?

且看ApsaraDB產品線的PostgreSQL與HybridDB如何來一招左右互搏,左手在線事務處理,右手數據分析挖掘,解決企業痛處。

傳統的業務場景分析

以Oracle數據庫為例,系統具備以下特點

1. 可靠性

通過REDO日志提供可靠保障。

支持同步和異步模式,同步模式可以做到已提交的事務不丟失。

異步模式不保證已提交的事務不丟失,不保證一致性。

2. 高可用

通過主備模式以及集群套件提供高可用支持

通過共享存儲,RAC集群套件提供高可用支持, 注意應用連接設計時,不同的INSTANCE連接的應用應該訪問不同的數據塊,否則可能會因為GC鎖帶來性能嚴重下降。

通過共享存儲,主機集群套件提供高可用支持

3. 容災

通過存儲層遠程增量鏡像提供異地容災

通過主備模式以及增量復制提供異地容災

4. 備份恢復

通過歸檔和基礎備份提供在線備份以及時間點恢復功能

5. 性能診斷

AWR報告,通常包括

TOP SQL、wait event stats、io time、db time

6. 功能

PL/SQL編程,C嵌入式SQL,SQL:2013標準

數據庫編程

支持PL/SQL開發語言

支持C嵌入式開發

SQL兼容性

SQL: 2013

GIS

多種索引支持

數據類型豐富

語法例子

with, connect by, with, grouping set, rollup, cube

many building functions, OP, aggs

SQL HINT、物化視圖、RLS(行安全策略)

7. 擴展性

通過RAC和共享存儲,擴展主機的方式擴展,支持CPU并行計算

注意應用連接設計時,不同的INSTANCE連接的應用應該訪問不同的數據塊,否則可能會因為GC鎖帶來性能嚴重下降。

8. 多租戶隔離

比如Oracle 12C提出的PDB

9. 價格

通常按核收費,按特性收費,LICENSE 昂貴

用戶痛點分析

隨著用戶數據量的增長,數據庫的處理能力逐漸成為瓶頸。

1. 數據庫的計算能力

以ORACLE為例,傳統的非MPP架構數據庫,在執行大數據量運算時,受制于硬件限制,對于OLAP場景顯得很吃力。

2. 數據挖掘分析能力

以ORACLE為例,傳統的數據庫沒有機器學習套件,即使有,也受制于它的架構,無法發揮應對數據挖掘分析需求。

3. 擴展能力

RAC的擴展能力受到共享存儲的限制,存儲容易成為瓶頸

RAC的模式下面,必須確保APP不會跨實例訪問相同的數據塊,否則GC鎖沖突嚴重,性能比單節點下面明顯。

4. 可編程能力

支持的服務端編程語言僅PL/SQL,C。

不支持高級的類型擴展,函數擴展,OP擴展,索引擴展。

不適合企業快速發展的IT需求。

價格

昂貴

DT時代企業對數據的處理需求

除了對數據庫基本的增刪改查需求,備份恢復容災需求外。企業對數據處理的要求越來越高。

比如很多時候,用戶可能要實時的對數據進行清洗、分析、或者根據數據觸發事件。

隨著更多的業務接入IT系統,用戶需要存儲越來越多的非結構化的數據、貼近實際需求的數據(比如人像、化學分子式、X光片、基因串、等等現實世界的數據屬性),很多數據庫在這種情況下顯得力不從心,只能靠應用程序來處理,由于數據離計算單元越來越遠,效率變得低下。

阿里云ApsaraDB OLTP+OLAP需求 解決方案剖析

1. 通過以下PostgreSQL特性,可以支持OLTP+ 本地的10TB量級OLAP需求。

1. LLVM、CPU并行計算

2. 聚合算子復用

3. BRIN索引接口

2. 通過插件支持更多的業務數據類型需求

比如JSONB、圖片、人像、化學分子式、基因串、GIS、路由等。

3. 流式數據處理方法

使用pipelineDB可以與kafka, jstrom, PostgreSQL無縫結合,以及標準的SQL接口,兼容PostgreSQL.

4. PB級的分析、挖掘需求

HybridDB基于開源的MPP數據庫GPDB打造,有許多特點

支持彈性的增加節點,擴容時按表分區粒度進行,因此不堵塞其他表分區的讀寫

支持SQL標準以及諸多OLAP特性,

支持行列混合存儲、多級分區、塊級壓縮、多節點并行計算、多節點數據并行導入、

支持豐富的數據類型,包括JSON、GIS、全文檢索、語感、以及常見的文本、數值類型。

支持MADLib機器學習庫,有上百種常見的挖掘算法,通過SQL調用UDF訓練數據集即可,結合MPP實現了多節點并行的挖掘需求

支持數據節點間透明的數據重分布,廣播,在進行多表JOIN時,支持任意列的JOIN,

支持隨機分布,或按列分布,支持多列哈希分布,

支持哈希分區表、范圍分區表、多級分區

支持用戶使用python \ java編寫數據庫端的UDF

支持使用r客戶端通過pivotalR包連接數據庫,并將R的分析請求自動轉換為MADlib庫或SQL請求,實現R的隱式并行分析,同時數據和計算在一起,大幅提升了性能

支持HLL等估算數據類型,

支持透明的訪問阿里云高性能對象存儲OSS,通過OSS EXT插件,可以透明的并行訪問OSS的數據,

支持PostgreSQL生態,吸納更多已有的PostgreSQL生態中的特性

5. 透明的冷熱分離技術

一份數據,共享分析需求

在企業中,通常會有專門的分析師崗位,分析師在做建模前,需要經歷很多次的試錯,才能找到比較好的,可以固定的分析模型。

試錯期間,根據分析師的想法,結合業務表現,分析師可能需要對數據反復的訓練,這就對數據庫有兩種要求

1. 實時響應

2. 不干擾正常業務

實時響應對于MPP來說并不能,通常一個QUERY下去,毫秒級就可以響應,不需要等待任務調度。

而不干擾正常業務,這一點,可能就需要好好商榷了,因為一個QUERY可能把資源用光,當然,我們可以通過HybridDB的資源組來進行控制,比如給分析師的QUERY資源優先級降到最低,盡量減少對業務的干擾。

另外我們還有一種更加徹底的方法,數據共享,你可以把需要試錯的數據集放到OSS中,然后啟用一個空的PostgreSQL實例或者HybridDB實例,這些實例與生產實例完全無關,但是它可以去訪問OSS的數據,建立外部表即可,分析師可以使用這些實例,對數據集進行分析,不會影響生產。

6. 多個數據庫的銜接

通過rds_dbsync, dts, 或者云上BI、ETL廠商提供的ETL接口,幾乎可以將任意數據源的數據實時的同步到HybridDB進行分析。

通過 OSS 高速并行導入導出

高速 OSS 并行導入導出

dbsync 項目

HybridDB最佳實踐——實現OLAP和OLTP一體化打造

7. PostgreSQL,HybridDB 數據庫可靠性分析

原理與Oracle類似,同時支持用戶自由選擇同步或異步模式,異步模式犧牲了數據可靠性,提升性能,同時不影響一致性。

8. 多副本

用戶可以根據事務對可靠性的要求,選擇副本數。

比如涉及用戶賬戶的事務,至少要求2個副本。

而對于與用戶無關的日志事務,1個副本,甚至異步都可以。

給用戶設計應用時,提供了最大的靈活度。

9. 高可用方案

PostgreSQL高可用

PostgreSQL的高可用的方案與Oracle類似,支持共享存儲的方案,同時還支持流式復制的多副本方案,可以做到數據的0丟失。

HybridDB高可用

HybridDB的高可用方案,為mirror的方式,同步復制,數據0丟失。

master的fts負責數據節點的failover和failback。

master節點的ha則交由上層的集群應用來解決。

10. 容災

對于多機房容災,PostgreSQL和HybridDB在數據庫層面支持流式的復制解決方案。

同時還支持傳統的存儲或文件系統層面的鏡像容災。

11. PostgreSQL備份與恢復

對于存儲在OSS對象存儲中的數據,備份的只是DDL,即外部表的建表語句。

而對于存儲在數據庫中的數據,使用的備份方法與Oracle類似,支持REDO的增量備份,也支持數據塊級別的增量備份(具體見我寫過的塊級增量備份文檔)。

12. HybridDB備份與恢復

每個節點并行的進行。

13. 性能診斷和資源控制

與Oracle類似,支持常見的指標TOP SQL、wait event stats、io time、db time

同時支持對long query進行監控,包括long query的執行計劃翻轉,執行樹中每個節點耗費的時間,對BUFFER產生的操作,物理讀等

對于HybridDB,使用resource queue控制不同用戶對資源的使用

14. 數據庫功能(PostgreSQL)

數據庫功能方面,PostgreSQL超越了傳統數據庫所能COVER的數據類型、檢索、和數據的運算。

1. 數據庫編程

服務端支持PLpgSQL、python、java、R、javascript、perl、tcl 等開發語言

支持C嵌入式開發

plpgsql與Oracle PL/SQL功能不相上下

2. SQL兼容性

SQL: 2013

3. 語法例子

with, connect by(用WITH支持), with, grouping set, rollup, cube

many building functions, OP, aggs

PostGIS、JSONB

SQL PLAN HINT、物化視圖、RLS(行安全策略)

多種索引支持(btree, hash, brin, gin, gist, sp-gist, rum, bloom)

支持全文檢索、模糊查詢、正則匹配(走索引)

數據類型豐富(常用類型、數組、范圍、估值類型、分詞、幾何、序列、地球、GIS、網絡、大對象、比特串、字節流、UUID、XML、JSONB、復合、枚舉…… )

4. 支持ORACLE兼容包插件

5. 支持插件、支持FDW(透明訪問外部數據)、支持LANGUAGE擴展

6. 支持多個聚合函數共用SFUNC,提升性能

7. 擴展能力

支持用戶自定義數據類型、操作符、索引、UDF、窗口、聚合

15. 數據庫功能(HybridDB)

1. 數據庫編程

服務端支持PLpgSQL、pljava等開發語言

plpgsql與Oracle PL/SQL功能不相上下

2. SQL兼容性

with, connect by(用WITH支持), with, grouping set, rollup, cube

內置豐富的函數、操作符、聚合、窗口查詢

多種索引支持(btree),支持函數索引,支持partial index

支持全文檢索、字符串模糊查詢(fuzzystrmatch)

數據類型豐富(數字、字符串、比特串、貨幣、字節流、時間、布爾、幾何、網絡地址、數組、GIS、XML、JSON、復合、枚舉、。。。。。。)

支持ORACLE兼容包插件orafunc

3. 支持列存、行存、混合存儲

4. 支持隱式并行計算

5. 支持機器學習庫

6. 支持支持OSS_EXT(透明訪問OSS對象數據)

7. 支持HLL數據評估插件

8. 擴展能力

支持用戶自定義數據類型、操作符、索引、UDF、窗口、聚合

16. 數據庫擴展能力(PostgreSQL)

17. 數據庫擴展能力(HybridDB)

18. 多租戶功能

如何解決傳統用戶對OLTP+OLAP需求的痛處

1. 計算能力

由于傳統數據庫,比如ORACLE并非MPP架構,在執行大數據量運算時,受制于硬件限制,對于10TB以上的OLAP場景很吃力。

1.1 解決辦法

PostgreSQL 多CPU并行計算,解決TB級本地實時分析需求

PostgreSQL 數據通過REDO日志實時流式同步到HybridDB,解決PB級別OLAP場景需求。

2. 數據挖掘分析能力

由于傳統數據庫,比如ORACLE沒有機器學習套件,即使有,也受制于它的架構,無法發揮應對數據挖掘分析需求。

2.1 解決辦法

PostgreSQL和HybridDB都內置了MADLib機器學習庫,支持幾百種挖掘算法。

通過R,Python服務端編程,支持更多的挖掘需求。

3. 擴展能力

RAC的擴展能力受到共享存儲的限制,存儲容易成為瓶頸

RAC的模式下面,必須確保APP不會跨實例訪問相同的數據塊,否則GC鎖沖突嚴重,性能比單節點下面明顯。

3.1 解決辦法

PostgreSQL fdw based sharding + multimaster,支持單元化和水平擴展需求

HybridDB MPP天然支持水平擴展

4. 可編程能力

支持的服務端編程語言僅PL/SQL,C。

不支持高級的類型擴展,函數擴展,OP擴展,索引擴展。

不適合企業快速發展的IT需求。

4.1 解決辦法

PostgreSQL, HybridDB 支持plpgsql, C, python, java等多種語言的服務端編程。

支持數據類型、索引、函數、操作符、聚合、窗口函數等擴展。

一些不完全benchmark數據


一些不完全用戶

方案小結

在DT時代,讓數據發揮價值是企業的真正需求,否則就是一堆廢的并且還持續消耗企業人力,財力的數據。

使用本方案,可以讓企業更加輕松的駕馭暴增的數據,不管是什么數據類型,什么數據來源,是流式的還是在線或離線的數據分析需求,統統都能找到合理的方法來處置。

1. 高度兼容傳統數據庫,如Oracle

包括數據類型,過程語言,語法,內置函數,自定義函數,自定義數據類型

2. 解決了傳統數據庫如Oracle方案的痛點

3. 計算能力

PostgreSQL 多CPU并行計算,解決TB級本地實時分析需求

PostgreSQL 數據通過REDO日志實時流式同步到HybridDB,解決PB級別OLAP場景需求。

4. 數據挖掘分析能力

PostgreSQL和HybridDB都內置了MADLib機器學習庫,支持幾百種挖掘算法。

通過R,Python服務端編程,支持更多的挖掘需求。

5. 擴展能力

PostgreSQL fdw based sharding + multimaster,支持單元化和水平擴展需求

HybridDB MPP 天然支持水平擴展

6. 可編程能力

PostgreSQL, HybridDB 支持plpgsql, C, python, java等多種語言的服務端編程。

支持數據類型、索引、函數、操作符、聚合、窗口函數等擴展。

7. 支持估值類型

快速的輸出PV,UV,COUNT(DISTINCT)等估值。

8. 共享一份數據,構建多個分析實例

通常在企業中有分析師的角色,分析師要對數據頻繁的根據不同的分析框架進行分析,如果都發往主庫,可能導致主庫的計算壓力變大。

用戶可以將歷史數據,或者維度數據存放到共用的存儲(如OSS),通過FDW共享訪問,一份數據可以給多個實例加載分析。可以為分析師配備獨立的計算實例,數據則使用FDW從共享存儲(如OSS)加載,與主庫分離。

9. HybridDB優勢

支持AO列存,塊級壓縮,機器學習,混合存儲,MPP水平擴展,隱式并行,R,JAVA服務端編程語言支持,PB級別數據挖掘需求。

總結

以上是生活随笔為你收集整理的PgSQL · 案例分享 · PostgreSQL+HybridDB解决企业TP+AP混合需求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。