The JDBC Plugin allows Deepgreen DB to read/write tables of another database.
[[xdrive.mount]]
name = "myotherdb"
argv = ["/usr/bin/java",
"-classpath", "YOUR-JDBC-JAR:jars/vitessedata-db-plugin.jar",
"com.vitessedata.xdrive.jdbc.Main"]
env = ["CONNECTION_STRING=YOUR-JDBC-CONNECTION-STRING"]
For PostgreSQL database:
replace YOUR-JDBC-JAR
above with jars/postgresql-42.2.1.jar
replace YOUR-JDBC-CONNECTION-STRING
with a string like this:
jdbc:postgresql://dbhost:port/myotherdb?user=scott&password=tiger&ssl=true
.
For details on postgres connection string, please refer to this
document.
When constructing an external table DDL that refers to a JDBC Plugin,
specify the LOCATION
clause like this:
LOCATION('xdrive://XDRIVE-HOST-PORT/MOUNTPOINT/TABLENAME')
FORMAT 'SPQ'
For example, to read/write the nation
table on another database
through the JDBC Plugin, we may write the DDL like this:
DROP EXTERNAL TABLE IF EXISTS nation;
CREATE EXTERNAL TABLE nation (
n_nationkey int,
n_name text,
n_regionkey int,
n_comment text) LOCATION('xdrive://XDRIVE-HOST-PORT/myotherdb/nation')
FORMAT 'SPQ';
DROP EXTERNAL TABLE IF EXISTS w_nation;
CREATE WRITABLE EXTERNAL TABLE w_nation (
n_nationkey int,
n_name text,
n_regionkey int,
n_comment text) LOCATION('xdrive://XDRIVE-HOST-PORT/myotherdb/nation')
FORMAT 'SPQ';
Note that:
Our mountpoint name is myotherdb
.
Our table name on the source or destination database is nation
.
FORMAT 'SPQ'
must be specified as the JDBC Plugin expects this format.