值得推薦的60種不同功能的PostgreSQL工具
譯文【51CTO.com快譯】PostgreSQL(簡稱Postgres)具有許多現成的功能,它在開發人員和數據庫工程師中備受歡迎。作為一款開源的產品,Postgres不但擁有強大的開發人員社區,而且帶有許多附加組件。為了方便您迅速向Postgres中添加各種新的工具和插件,也為了讓您能夠擴展現有的Postgres數據庫系統功能,本文為您總結了六十款工具、插件和附加組件,以協助您快速、有效地改善現有Postgres的運維方式和服務性能。
圖形化用戶界面(GUI)
雖然Postgres并沒有自帶原生的GUI,但是您可以通過如下特定的、基于Web的GUI和工具,來輕松地管理Postgres數據庫。
1. DataGrip
作為一款可以協助簡化管理多個數據庫的工具,DataGrip能夠與包括PostgreSQL在內的多種數據庫系統相兼容。通過由它提供的圖形化界面,您不但可以管理數據庫,還能夠運行查詢,以及完成各種例行的維護任務。
2. DBeaver
DBeaver的最新版本--7.1.4,帶有直觀化的數據編輯功能。同時,它能夠支持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那么簡單。通過引入自動化,它能夠基于參數和數據之間的關系,自動生成可視化的數據報告。
作為一款特殊的GUI工具,Windward可以與Microsoft Office進行原生地集成。您既可以使用Office應用來設計報告模板,又可以使用存儲在Postgres中的數據,去可視化報告。
實用工具
Postgres的實用工具通常被設計為,用來處理某項特定的需求??梢哉f,在將良好的實用工具集成到數據庫管理工作流中之后,數據庫工程師的工作會比以往輕松許多。下面是目前比較流行的實用工具。
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數據庫。也就是說,您可以使用其他數據庫中的對象,而無需內、外部進行真實同步。在該實用工具安裝完成后,您可以創建一個外部服務器對象,以及相應的用戶映射。
DB Doc for PostgreSQL能夠為您所開發的項目,創建對應的文檔。
平臺即服務(PaaS)
如今,許多開發團隊都希望能夠以“零管理”的方式,支持其部署在云端架構中的Postgres。對此,如下PaaS提供了功能齊全、卻略有不同的數據庫托管服務。
Amazon的RDS通過提供云關系型數據庫作為托管服務。它可以讓用戶完全使用由Postgres所提供的各項功能,而無需考慮存儲、部署周期、可用性、以及備份等問題。
Aiven for PostgreSQL提供了完全托管的SQL數據庫。它可以在AWS、GCP、Azure和其他云生態系統上運行,以提高數據庫的可用性。您可以先免費試用該平臺,然后再切換到最適合自己需求的付費版本上。
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美元。它具有易于設置、無縫運維、日常備份、以及多冗余等功能,旨在支持各種應用和微服務。
Heroku PostgreSQL在提供全面的Postgres功能的同時,不會讓整個平臺顯得過于臃腫和復雜。它在美國和歐洲都有銷售。
應用領域
目前,許多工具都是旨在簡化Postgres數據庫的設計、關系的創建、表的管理、以及整個PostgreSQL平臺的構建。下面,我們來討論兩個用于端到端數據庫設計和管理的Postgres應用。
1. agileBase
agileBase以其低代碼量(甚至是無代碼)而聞名。您不必成為數據庫專家,便可構建自己的平臺,進而支持應用的交付。由于agileBase將其PostgreSQL功能設計為“積木”式,因此您可以按需定制。
2. Dataedo
您可以通過Dataedo的簡單用戶界面,來管理最為復雜的Postgres數據庫。它不但可以直觀地顯示數據關系,還可以對其進行編輯。
高可用性
在實際應用中,我們往往需要在具有高可用性的環境中,實現PostgreSQL數據庫,以避免由于數據庫故障所導致的整個應用系統的崩潰。同時,我們可以通過如下工具,持續監控PostgreSQL的可用性。
根據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活動的合并視圖、以及會話工作負載等關鍵性指標。同時,它也可以實時采集數據,并處理各種歷史數據。
通過提供簡單的儀表板,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)的擴展項。
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)的配置。
原文標題:60+ Top PostgreSQL Tools,作者:Stefan Thorpe
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】