The MySQL Datacontroller storage engine for the MySQL relational database management system is a storage engine which allows a user to create a table that is a local representation of a foreign (remote) table. The foreign table can be located into another storage engine like Oracle or Microsoft SQL Server (MSSQL).

MySQL Datacontroller Plugin Storage Engine
Original author(s)Francis Lavalliere
Initial release2010
Operating systemLinux, Mac OS X, Unix; Windows
Platformx86, x86-64
Available inC/C++
TypeDatabase engine
LicenseGNU General Public License
Websitehttp://www.acentera.com/mysql-datacontroller/

It utilizes the MySQL client library API, Free-TDS and OCILIB as a data transport, treating the remote data source the same way other storage engines treat local data sources. Each Federated table that is defined there is one .frm (data definition file containing information such as the URL of the data source). The actual data can exist on a local or remote Oracle, Microsoft SQL Server (MSSQL), or MySQL instance.

To create a Federated table, one has to specify a URL in the "CONNECTION" string:

create table foo (
 id int,
 bar varchar(255),
 dt  date)
ENGINE=DATACONTROLLER CONNECTION='oracle://username:password@hostname:1521/SID/foo'

The connection URL is in the format of:

 scheme://user:pass@host:port/schema/tablename

and for MSSQL where schema is dbo

 scheme://user:pass@host:port/DB/schema/tablename

Upon creation of a DataController table, the user must ensure that the remote data source does indeed exist or an error will be issued.

The DataController Storage engine was first based on the MySQL Federated Storage Engine was authored by Patrick Galbraith and Brian Aker and is currently being maintained by Patrick Galbraith and Antony Curtis. It was introduced in 2005 with MySQL 5.0.

The DataController Storage engine was introduced in 2010 by Francis Lavalliere working with MySQL 5.1, in order to facilitate the access to other database engines. This plugin can also help in case of data migration, or migrating data to another database engine.

edit