說起使用數量最大的資料庫SQLite 它是全球最廣泛部署的資料庫引擎。它存在於你的手機中,存在於你的瀏覽器中,如果你搜索你的電腦,你也會在其中找到它的 .db 文件。SQLite 受到 Postgres 的啟發。其作者 Richard Hipp 稱 SQLite 是 Postgres 的“概念分支” ...
說起使用數量最大的資料庫SQLite 它是全球最廣泛部署的資料庫引擎。它存在於你的手機中,存在於你的瀏覽器中,如果你搜索你的電腦,你也會在其中找到它的 .db 文件。SQLite 受到 Postgres 的啟發。其作者 Richard Hipp 稱 SQLite 是 Postgres 的“概念分支”。兩者沒有共用代碼,但是 Postgres 是他讓 SQLite對準的北極星。他說,兩者在以下方面是互補的。
如今,這些區別已經開始模糊。例如,SQLite被認為是嵌入式資料庫。但是Postgres也正在成為嵌入式資料庫。例如,我們說Steampipe嵌入了Postgres。這在技術上並不是真的。你不能將Postgres鏈接到一個二進位應用程式中,但是你可以(就像Steampipe一樣)提供一個二進位文件,讓它安裝、運行並與Postgres合作。或者考慮Yugabyte,它將Postgres查詢層附加到分散式存儲層。也許沒有在技術上嵌入Postgres的意義,但在道義上等同於嵌入。
Steampipe和Yugabyte不僅相容Postgres,它們實際上是具有額外功能的Postgres(Steampipe用於API的外部數據封裝器,Yugabyte用於分散式存儲)。用戶可以使用Postgres的互動式終端psql連接到這些產品;他們可以編寫相同類型的查詢;他們可以使用捆綁的或第三方擴展。
雖然PG不會很快像SQLite一樣有上億的部署量,但一般的設備完全有能力運行Postgres,PG正在越來越多在設備上使用。今天的SQL資料庫比它們的先輩可以更好地為文件系統提供了更全面的數據存儲支持,得益於豐富的API介面,Postgres不僅將關係數據與JSON對象可以存儲在一起,還可以包括鍵值、全文、層次、地理空間、時間序列和列數據。
本地資料庫是文件存儲的一種補充形勢。為了普及化資料庫存儲,這樣的資料庫應該是一個開源產品。SQLite已經引領了這個領域。Postgres是一個好的選擇。
Postgres提供了豐富的數據複製機制來完成數據的傳輸,物理複製和邏輯複製都可以支持數據的傳輸和複製。Postgres強大的擴展生態系統增強了內置功能。第三方擴展pglogical實現了用於非Postgres發佈者和訂閱者(例如Kafka和RabbitMQ)的邏輯複製。在這個不斷擴大的類別中,您可以找到許多其他解決方案。
與此同時,捆綁的 postgres_fdw 擴展利用了Postgres的外部數據包裝器機制,以連接本地和遠程表進行讀寫操作。無論如何,在您的設備上運行的Postgres實例,或者在您的個人和團隊雲中運行的實例,都能夠與其他地方運行的實例同步。
數據科學文獻中有許多指南,展示如何在數據科學家中流行的編程語言,如Python和R中重新實現SQL的核心功能。一個典型的Python配方以將數據從SQL表導入Pandas dataframe開始,Pandas dataframe是Python風格數據科學的核心構造,然後展示如何將SQL習語翻譯成相應的Pandas習語。
除此以外POSTGRESQL支持豐富的語言來進行操作資料庫,如通過python或 R語言都可以操作POSTGRESQL 來進行數據的查詢利用這些語言可以讓你操作Postgresql 更方便,擴展性更高。
所以POSTGRESQL 不光可以運行在大型伺服器上,或雲上RDS 方式提供服務,同時POSTGRESQL可以工作在任何運行環境, PG 具備在各種設備上運行的能力。