Connecting to Databases¶
VerdictDB can process the data stored in a SQL-supported database; therefore, no data migration is required outside your database. VerdictDB works with them by performing its operations in SQL.
Supported Databases¶
| Database | VerdictDB | PyVerdict | 
|---|---|---|
| MySQL | ≥ 5.5 | ≥ 5.5 | 
| PostgreSQL | ≥ 10 | ≥ 10 | 
| Amazon Redshift | Supported | Supported | 
| Impala | ≥ 2.5 (CDH ≥ 5.7) | ≥ 2.5 (CDH ≥ 5.7) | 
| Presto | Supported | Supported | 
| Spark | ≥ 2.0 | Not Supported | 
Making a Connection in Java¶
VerdictDB offers the standard JDBC interface. If the verdict keyword appears after jdbc:, Java uses VerdictDB
to connect to a backend database. In general, they have the following pattern:
Connection vc = DriverManager.getConnection("connection_string", "user", "password");
- MySQL:       
"jdbc:verdict:mysql://localhost:8080/test" - PostgreSQL:  
"jdbc:verdict:postgresql://localhost:5432/database" - Redshift:    
"jdbc:verdict:redshift://host:5439/dev" - Impala:      
"jdbc:verdict:impala://localhost:21050/default" - Presto:      
"jdbc:verdict:presto://localhost:8080/default" 
For more details on configuration options, see this page.
Making a Connection in PyVerdict¶
pyverdict offers simple APIs to make connections to backend databases. A pyverdict.VerdictContext object is returned after making a connection. Unique methods are offered for different types of databases.
- MySQL:       
pyverdict.mysql(host, user, password=None, port=3306) - PostgreSQL:  
pyverdict.postgres(host, port, dbname, user, password=None) - Redshift:    
pyverdict.redshift(host, port, dbname='', user=None, password=None) - Impala:      
pyverdict.impala(host, port, schema=None, user=None, password=None) - Presto:      
pyverdict.presto(host, catalog, user, password=None, port=8081)