5 ms·
The fact that PostgreSQL is pigeon-holed as a "database" blinds folks to the fact that it is also a full-fledged integration environment. It's a place where you
by pramsey 5y ago
The fact that PostgreSQL is pigeon-holed as a "database" blinds folks to the fact that it is also a full-fledged integration environment. It's a place where you can bind together multiple kinds of data and multiple kinds of application.
* Use FDW connections to pull in data from all kinds of sources! Multiple databases, file formats, HTTP buckets, you name it!
* Custom behaviours in multiple languages! PL/Python, PL/Perl, PL/R!
* Read and write to web services! (PL/Python, pgsql-http)
* And now string together arbitrary containers! (pgpodman)
The way the extension system and the type system play together, it really is a very generic place to build weird integrated systems.
- layer8 5y agoSounds like the Emacs of database systems.
- yetanother-1 5y agoI love Postgresql, but I don't want it to end up like oracle, where it is the center of thr focus. That being said, I like the idea of Postgres as a platform for more than data tables storage and database engine. It proved quite powerful and useful.
- CuriouslyC 5y agoThe killer reason for "Postgres as a platform" is that Postgres has a robust* security model (there are edge cases, but for a subset of statements, it works well)
- spacemanmatt 5y agoThat is true, and most DBAs are fully aware that the security model is only as good as the extensions they load and docker integration is very likely low on the list of necessities.
- kkirsche 5y agoTo help others who also don’t know all of the terms: 1. FDW: foreign data wrappers https://wiki.postgresql.org/wiki/Foreign_data_wrappers https://wiki.postgresql.org/wiki/Foreign_data_wrappers 2. PL/Python: language-specific procedural language https://www.postgresql.org/docs/10/plpython.html https://www.postgresql.org/docs/10/plpython.html Essentially, this (as I understand it) is highlighting the ways that Postgres can expose data from outside of its default table structure context via these types of functions.