Databases other than Postgres have features comparable to external data wrappers?

I am very concerned about some of the recently added Postgres features, such as external data wrappers. I don’t know about any other DBMS that have this feature, but before I try to contact my main client, so that they begin to prefer Postgres over their current cocktail from RDBMS and include in my case that no other database can do this to do, I would like to confirm this.

I was unable to find evidence of any other database supporting SQL / MED, and such things as this short note that Oracle does not support SQL / MED .

The main thing that makes me doubt is the statement at http://wiki.postgresql.org/wiki/SQL/MED :

SQL / MED is external data management, part of the SQL standard, which deals with how a database management system can integrate data stored outside the database.

If FDWs are based on SQL / MED and SQL / MED is an open standard, then most other RDBMSs have also implemented it.

TL; DR:

Does any database other than Postgres support SQL / MED?

+7
sql postgresql foreign-data-wrapper sql-med
source share
2 answers
  • IBM DB2 approves SQL / MED compliance (including full FDW API);
  • MySQL FEDERATED storage engine can connect to another MySQL database, but NOT for other RDBMSs ;
  • MariaDB The CONNECT mechanism provides access to various file formats (CSV, XML, Excel, etc.), provides access to "any" ODBC data sources (Oracle, DB2, SQLServer, etc.) and can access data on MyIsam and InnoDB storage devices.
  • Farrago has some of them,
  • PostgreSQL implements parts of it (in particular, it does not implement routine mappings and has a simplified FDW API). It can be used as re-displayed with PG 9.1 and recorded with 9.3, and before that there was DBI-Link .

There are many nice FDWs in the PostgreSQL communities, such as noSQL FDW (couchdb_fdw, mongo_fdw, redis_fdw), Multicorn (to use Python output instead of C for the shell itself), or PGStrom nuts (which uses the GPU for some operations!)

+8
source share

SQL Server has the concept of Linked Servers ( http://technet.microsoft.com/en-us/library/ms188279.aspx ), which allows you to connect to external data sources (Oracle, other SQL Instances, Active Directory, file system data through indexing services provider, etc.), and if you really need to, you can create your own Providers that can be used by a server connected to SQL Server.

Another option in SQL Server is the CLR , in which you can write code to retrieve data from web services or other data sources as needed.

While it may not technically be "SQL / MED", it seems to do the exact same thing.

Distributed query using a local table connected to a query to a linked server with 4 parts. I think that the remotetable filter may not be applied until the whole table is pulled out locally (the documentation is fuzzy, and I found an article with conflicting opinions):

 SELECT * FROM LocalDB.dbo.table t INNER JOIN LinkedServer1.RemoteDB.dbo.remotetable r on t.val = r.val WHERE r.val < 1000 ; 

Using OpenQuery, the remotetable filter remotetable applied on the remote server if the filter is passed to the OpenQuery 2nd parameter:

 SELECT * FROM LocalDB.dbo.table t INNER JOIN OPENQUERY(LinkedServer1, 'SELECT * FROM RemoteDB.dbo.remotetable r WHERE r.val < 1000') r on t.val = r.val 
+3
source share

All Articles