PG實用工具推薦和介紹

chenfeng發表於2021-02-25

圖形化使用者介面(GUI)

雖然Postgres並沒有自帶原生的GUI,但是您可以透過如下特定的、基於Web的GUI和工具,來輕鬆地管理Postgres資料庫。

1. DataGrip

作為一款可以協助簡化管理多個資料庫的工具,DataGrip能夠與包括PostgreSQL在內的多種資料庫系統相相容。透過由它提供的圖形化介面,您不但可以管理資料庫,還能夠執行查詢,以及完成各種例行的維護任務。

2. DBeaver

DBeaver的最新版本--7.1.4,帶有直觀化的資料編輯功能。同時,它能夠支援PostgreSQL,以及許多其他型別的資料庫系統。

3. Navicat for PostgreSQL

Navicat在資料庫領域已深耕多年。它的Postgres產品旨在為使用者提供管理複雜資料庫所需的各種工具。同時,它也提供了原生的資料視覺化工具。

4. PgAdmin

在簡化Postgres維護和管理方面,pgAdmin可謂老牌產品。如今,它不但能夠基於Web選項、支援外部配置檔案,並且還可以執行在雲端。雖然它可以被用作管理資料庫叢集,但是與完整的GUI相比,pgAdmin還是略顯簡陋了一些。

5. Valentina Studio for PostgreSQL

Valentina Studio支援各種表單,可以與CI/CD管道相整合,還能夠簡化資料庫之間的資料傳輸。它雖然具有不同的版本,但是即便是其免費的版本,也能夠管理多個Postgres資料庫。

6. phpPgAdmin

phpMyAdmin之於MySQL,正如phpPgAdmin之於PostgreSQL。兩者在功能上既有相似之處,又有不同的地方。

7. Metabase

作為一款具有高階UI的資料處理工具,Metabase不但可以完成複雜的查詢,還能夠使使用者透過視覺化的方式,從PostgreSQL資料庫中收集潛在的資料關係。

8. Slemma

Slemma遠不止為Postgres提供GUI那麼簡單。透過引入自動化,它能夠基於引數和資料之間的關係,自動生成視覺化的資料包告。

9. Windward Studios

作為一款特殊的GUI工具,Windward可以與Microsoft Office進行原生地整合。您既可以使用Office應用來設計報告模板,又可以使用儲存在Postgres中的資料,去視覺化報告。

實用工具

Postgres的實用工具通常被設計為,用來處理某項特定的需求。可以說,在將良好的實用工具整合到資料庫管理工作流中之後,資料庫工程師的工作會比以往輕鬆許多。下面是目前比較流行的實用工具。

1. pg_catcheck

眾所周知,系統目錄的損壞可能會讓您丟失資料條目,以及某些有價值的資訊。而pg_catheck可以監控系統目錄是否被損壞,是否會讓整個Postgres資料庫因故導致當機。

2. pgBouncer

顧名思義,pgBouncer能夠像保鏢一般,阻止任何未經授權的訪問。它經常作為負載平衡器,來管理各種連線。同時,您可以使用它來儲存密碼,加密SCRAM金鑰,進而保障Postgres的安全性。

3. HypoPG

HypoPG可以在不消耗任何雲端資源的情況下,建立虛擬索引,並且能夠處理假設的分割槽。

4. PostGIS

PostGIS能夠提供對空間資訊的原生支援。Postgres使用者可以使用PostGIS,在查詢中為應用提供準確的位置資訊。

5. Postgres_fdw

Postgres_fdw能夠讓外部資料包裝器(Foreign-data wrapper)輕鬆地訪問外部的Postgres資料庫。也就是說,您可以使用其他資料庫中的物件,而無需內、外部進行真實同步。在該實用工具安裝完成後,您可以建立一個外部伺服器物件,以及相應的使用者對映。

6. DB Doc for PostgreSQL

DB Doc for PostgreSQL能夠為您所開發的專案,建立對應的文件。

平臺即服務(PaaS)

如今,許多開發團隊都希望能夠以“零管理”的方式,支援其部署在雲端架構中的Postgres。對此,如下PaaS提供了功能齊全、卻略有不同的資料庫託管服務。

1. Amazon RDS for PostgreSQL

Amazon的RDS透過提供雲關係型資料庫作為託管服務。它可以讓使用者完全使用由Postgres所提供的各項功能,而無需考慮儲存、部署週期、可用性、以及備份等問題。

2. Aiven for PostgreSQL

Aiven for PostgreSQL提供了完全託管的SQL資料庫。它可以在AWS、GCP、Azure和其他雲生態系統上執行,以提高資料庫的可用性。您可以先免費試用該平臺,然後再切換到最適合自己需求的付費版本上。

3. Cloud SQL for PostgreSQL

Cloud SQL for PostgreSQL是Google雲端關係型資料庫的版本。它能夠與其他的GCP服務很好地整合在一起。同時,它透過全面的API,來支援那些在多雲環境中執行的應用。

4. Azure Database for PostgreSQL

Microsoft也提供了一個可擴充套件性的Azure Database for PostgreSQL。得益於支援機器學習,該PaaS提供了各種智慧化的功能與效能。

5. DigitalOcean Managed Databases

DigitalOcean Managed Databases具有一定的價格方面優勢,其起售價僅為每月15美元。它具有易於設定、無縫運維、日常備份、以及多冗餘等功能,旨在支援各種應用和微服務。

6. Heroku PostgreSQL

Heroku PostgreSQL在提供全面的Postgres功能的同時,不會讓整個平臺顯得過於臃腫和複雜。它在美國和歐洲都有銷售。

應用領域

目前,許多工具都是旨在簡化Postgres資料庫的設計、關係的建立、表的管理、以及整個PostgreSQL平臺的構建。下面,我們來討論兩個用於端到端資料庫設計和管理的Postgres應用。

1. agileBase

agileBase以其低程式碼量(甚至是無程式碼)而聞名。您不必成為資料庫專家,便可構建自己的平臺,進而支援應用的交付。由於agileBase將其PostgreSQL功能設計為“積木”式,因此您可以按需定製。

2. Dataedo

您可以透過Dataedo的簡單使用者介面,來管理最為複雜的Postgres資料庫。它不但可以直觀地顯示資料關係,還可以對其進行編輯。

高可用性

在實際應用中,我們往往需要在具有高可用性的環境中,實現PostgreSQL資料庫,以避免由於資料庫故障所導致的整個應用系統的崩潰。同時,我們可以透過如下工具,持續監控PostgreSQL的可用性。

1. PostgreSQL Dashboard

根據PostgreSQL Dashboard提供的各項關鍵性指標,我們可以輕鬆地獲悉資料庫的可用性,而無需手動瀏覽日誌。同時,憑藉著其直觀的洞見顯示,我們也可以透過完善雲端架構,來提高資料庫系統的可靠性。

2. Stolon

Stolon是一種原生的PostgreSQL管理工具。它旨在易於實現高可用性。透過提供諸如對Kubernetes的原生支援,以及自動化服務發現等功能,Stolon允許多個資料庫例項同時執行,併為之提供冗餘。

3. PostgreSQL Automatic Failover

PostgreSQL Automatic Failover(PAF)是基於高可用性的行業標準—Pacemaker而開發的。您只需一次性配置PAF,定義諸如recovery_target_timeline和standby_mode等引數,即可為PostgreSQL資料庫提供高可用性。

備份

雲生態系統雖然能夠提供較高的可用性,但是我們在日常運營中也少不了對於資料庫的例行備份。下面,我們來討論一些可以輕鬆實現Postgres自動化備份的工具。

1. Barman

作為PostgreSQL的完整災難恢復方案,Barman以無縫的方式提供了對於熱備份和冷備份的管理。它不但支援回滾,而且可以根據已配置的引數,自動對資料庫的狀態產生快照。更重要的是,Barman可以同時管理在多個雲端環境中執行的資料庫。

2. pg_probackup

作為Postgres的簡單備份工具,pg_probackup簡化了資料庫叢集中的備份過程。它既支援多個任務的並行化,又支援對資料庫的檔案進行資料去重等功能。

命令列介面(CLI)

儘管大部分PostgreSQL管理工具都提供了GUI,但是一些開發人員仍然喜歡使用命令列介面,來批次完成某些特定的操作。下面,我們來看看其中最為流行的、兩種可以在終端上執行Postgres命令的工具。

1. Pgcli

顧名思義,Pgcli是Postgres的命令列介面。它能夠為使用者提供非常詳細的資訊,以及愉悅的使用體驗。例如,當您輸入\d引數時,它將為您視覺化地顯示資料表,並以序號標註每一個程式碼行。

2. pgsh

除了提供與Pgcli類似的功能,pgsh也能夠管理資料庫遷移等任務。您可以選擇JavaScript和Python作為的首選語言。當然,前者在生產環境中被使用得更廣一些。

伺服器端

其實,資料庫系統的效能在很大程度上取決於叢集的可靠性。下面,我們來討論兩個用於建立和管理可擴充套件式PostgreSQL叢集的工具。

1. Postgres-XL

Postgres-XL能夠透過原生地使用負載平衡和多個節點,對OLTP的寫入密集型工作負載提供支援。無論您的關係型資料庫有多麼複雜,Postgres-XL都能夠建立和最佳化完美的資料庫叢集。

2. AgensGraph

透過與複雜的PostgreSQL資料庫進行無縫的互動,AgensGraph使用圖形化查詢語言,來提高資料庫叢集的整體效能。

監控

雖然大部分雲服務提供商,都為開發運營人員提供了諸如AWS CloudWatch之類的監控工具,但是它們往往無法真正提供PostgreSQL的詳細效能資訊。為此,我們可以選用如下監控管理工具。

1. Datasentinel

既可以被用於本地,又可以基於雲端的Datasentinel,能夠顯示諸如:SQL統計資訊、SQL活動的合併檢視、以及會話工作負載等關鍵性指標。同時,它也可以實時採集資料,並處理各種歷史資料。

2. PostgreSQL Dashboard

透過提供簡單的儀表板,PostgreSQL Dashboard可以快速分析PostgreSQL的各項指標。其使用者介面雖然缺少了自定義選項,但是方便了使用者的使用與設定。因此,與深度分析相比,該工具更適用於快速監控的目的。

3. Pgbadger

作為一款內建了視覺化工具的、快速可靠的日誌分析器,Pgbadger允許使用者設定為僅報告特定的錯誤和事件,從而有針對性地對資料庫進行取證和詳細監控。

4. Pgcluu

作為一種技術性極強的工具,Pgcluu可以透過視覺化PostgreSQL叢集節點的詳細資料,方便使用者持續監控資料庫、乃至系統的效能。

5. Postgrestats

Postgrestats整合了統計資訊的收集、顯示與分析功能。由於它是用PHP和HTML5開發的,因此在部署時不會佔用大量的雲端資源。與PostgreSQL Dashboard相似,該軟體包不但是輕量級的,而且能夠讓使用者快速獲悉資料庫的效能狀態。

6. PoWA

PostgreSQL Workload Analyzer(PoWA)不但可以分析資料庫叢集的工作負載與效能,還能夠支援那些被用於建立假設索引(hypothetical indexes)的擴充套件項。

7. Check_postgres

Check_postgres可以靈活地與Nagios和MRTG相整合,以實現對資料庫指定屬性的詳細監控,以及對配置進行深入檢查。

擴充套件

作為一個非常流行的資料庫系統,PostgreSQL可以根據不同的特定功能,整合許多自定義的擴充套件項。下面我們來討論一些比較流行的擴充套件功能。

1. OpenFTS

開源全文搜尋引擎(Open-Source Full-Text Search Engine,OpenFTS)能夠處理線上索引,並啟用搜尋引擎等功能。它不但能夠基於預定指標,對資料庫的搜尋結果進行排序,而且可以利用過濾器,來最佳化搜尋結果。

2. AppOS

AppOS不但能夠簡化Postgres使用者的儲存管理,還可以被用於建立高效的、可預測的資料庫框架。

3. PostPic

為了讓PostgreSQL資料庫中的影像處理功能,在應用程式中發揮作用,PostPic能夠與PostGIS協作,對空間資料和影像進行深度處理。

4. Swarm64

作為一種最佳化型別的擴充套件,Swarm64可以提高資料的載入速度,最佳化儲存空間的使用率,進而提升Postgres資料庫的查詢速度。

5. CyanAudit

顧名思義,由PL/SQL編寫的CyanAudit,主要負責在不影響資料庫效能的前提下,稽核DML請求,並進行深入的日誌記錄。

6. Timescale

透過在關係型資料庫系統中採集時序資料,Timescale可以在不犧牲PostgreSQL效能的情況下,堆疊(stack)包括關係查詢和時序查詢在內的各種複雜查詢。

7. Prefix

常被用於電話領域應用的Prefix,可以提供各種自定義的字首模式。例如:它既可以驗證資料庫的各個條目,又可以將它們與主鍵prefix_range進行比較。

8. PG-Storm

PG-Storm旨在加速資料庫的分析和批處理操作。如果您的叢集使用到了NVME-SSD和GPU,那麼該擴充套件便可以加快PostgreSQL分析例程的速度。

9. PG-Themis

PG-Themis是一種使用Themis庫進行加、解密的PostgreSQL擴充套件。您可以在SQL查詢中新增加、解密命令,以確保最大的安全性。

業務智慧

儲存在資料庫中的資料需要為業務發揮應有的價值。為了以業務智慧的方式處理和利用資料,我們通常會使用如下工具和高階演算法,將資料分析的見解顯示在儀表板上。

1. Chartio

作為一個儀表板,Chartio可與PostgreSQL資料庫緊密協作。由於Chartio十分易用,因此您不必成為資料專家,即可執行諸如:查詢和轉換SQL條目之類的操作。

2. SeekTable

SeekTable能夠允許您按需訪問各種業務智慧工具。SeekTable非常適合處理事件敏感型資料,並按需建立報告。通常,您無需匯入現有的PostgreSQL資料庫,即可處理各種資料條目。

3. Ubiq

Ubiq是一種將業務智慧與PostgreSQL相整合的專業工具。它可以工作在雲端或本地環境中,能夠提供包括重複查詢、以及自定義欄位使用情況等資訊的高階報告。

叢集

如前所述,我們可以透過雲端架構和增加節點的方式,提高資料庫叢集的可擴充套件性,以及高可用性。如下工具恰好能夠幫助您更好地控制資料庫叢集。

1. YugabyteDB

Yugabyte是一個高效能的開源分散式SQL資料庫,它支援全域性化的雲原生應用。此類應用往往既能夠提供與PostgreSQL相相容的API,又可以被分散式地部署在多個地理位置。該工具非常適合那些希望透過雲原生技術,管理資料庫架構的企業。據此,企業可以提供SQL資料建模的靈活性,以及各項事務處理功能。

2. GridSQL

GridSQL專為PostgreSQL而設計。由於Postgres資料庫可以分佈在多個伺服器上,因此GridSQL可以讓資料庫實現更快的查詢、更短的響應時間、更高的效能、以及獲取更多的伺服器資源。

3. Hyperscale

Hyperscale也稱為Citus,它是針對Azure使用者的原生擴充套件。使用者可以透過Hyperscale輕鬆地實現獨立於叢集的水平擴充套件,例如:將Postgres資料庫佈置到100多個節點上。

最佳化

對於PostgreSQL資料庫的最佳化,往往需要基於持續的監控,而非一蹴而就。如下最佳化工具可以方便您詳細瞭解PostgreSQL資料庫在支援應用的過程中,存在哪些效能上的瓶頸。

1. PGHero

PGHero集持續監控功能與資料庫執行狀況檢查功能於一身,能夠提供諸如:對於CPU(和雲資源)使用情況的預測,更好的擴充套件性,自動清理,以及各種內建的資料庫維護工具。

2. pgDash

作為一個專為PostgreSQL設計的全面監控方案,pgDash能夠顯示PostgreSQL資料庫所需的所有核心報告,視覺化各項功能和指標,建立詳細的時序圖,分析最新的資料,以及執行重要的診斷程式。

3. PGTune

PGTune能夠為您在部署Postgres資料庫時,計算出真正的伺服器需求,以便您為此支付合理的費用。

4. PGMustard

PGMustard可以幫助使用者發現那些需要長時間處理,以及更多伺服器資源的查詢,以便您在將PostgreSQL部署到生產環境之前,及時發現效能瓶頸,並最佳化查詢。

5. PGConfig

雖然與PGTune非常相似,但是PGConfig提供了其他配置項,可協助使用者模擬出不同的條件。例如,您可以根據伺服器配置、或系統要求,找到work_mem,以及與檢查點相關(checkpoint-related)的配置。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2759196/,如需轉載,請註明出處,否則將追究法律責任。

相關文章