VOOZH about

URL: https://www.cdata.com/kb/tech/postgresql-jdbc-dremio.rst

โ‡ฑ Connect to PostgreSQL Data as an External Source in Dremio


Connect to PostgreSQL Data as an External Source in Dremio

๐Ÿ‘ Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
Use the CData JDBC Driver to connect to PostgreSQL as an External Source in Dremio.

The CData JDBC Driver for PostgreSQL implements JDBC Standards and allows various applications, including Dremio, to work with live PostgreSQL data. Dremio is a data lakehouse platform designed to empower self-service, interactive analytics on the data lake. With the CData JDBC driver, you can include live PostgreSQL data as a part of your enterprise data lake. This article describes how to connect to PostgreSQL data from Dremio as an External Source.

The CData JDBC Driver enables high-speed access to live PostgreSQL data in Dremio. Once you install the driver, authenticate with PostgreSQL and gain immediate access to PostgreSQL data within your data lake. By surfacing PostgreSQL data using native data types and handling complex filters, aggregations, & other operations automatically, the CData JDBC Driver grants seamless access to PostgreSQL data.

Prerequisites

This article assumes you are utilizing Docker to run Dremio. You can create a Docker container with the Dremio service using a command similar to the follow:

docker run -d --name dremio -p 9047:9047 -p 31010:31010 dremio/dremio-oss

Where dremio is the name of the container, 9047 is the container's port for the Dremio web interface and 31010 is the port that maps to the Dremio query service. dremio/dremio-oss specifies the image to use.

Build the ARP Connector

To use the CData JDBC Driver in Dremio, you need to build an Advanced Relation Pushdown (ARP) Connector. You can view the source code for the Connector on GitHub or download the ZIP file (GitHub.com) directly. Once you copy or extract the files, run the following command from the root directory of the connector (the directory containing the pom.xml file) to build the connector.

mvn clean install

NOTE: The CData ARP Connectors are build to be compiled with Java 11. Be sure to install Java 11 and use the correct version. You can update your Java version using a command similar to the following:

sudo update-alternatives --config java

Once the JAR file for the connector is built (in the target directory), you are ready to copy the ARP connector and JDBC Driver to your Dremio instance.

Installing the Connector and JDBC Driver

Install the ARP Connector to %DREMIO_HOME%/jars/ and the JDBC Driver for PostgreSQL to %DREMIO_HOME%/jars/3rdparty. You can use commands similar to the following:

ARP Connector

docker cp PATH\TO\dremio-postgresql-plugin-{DREMIO_VERSION}.jar dremio_image_name:/opt/dremio/jars/

JDBC Driver for PostgreSQL

docker cp PATH\TO\cdata.jdbc.postgresql.jar dremio_image_name:/opt/dremio/jars/3rdparty/

Connecting to PostgreSQL

PostgreSQL will now appear as an External Source option in Dremio. The ARP Connector built uses a JDBC URL to connect to PostgreSQL data. The JDBC Driver has a built-in connection string designer that you can use (see below).

๐Ÿ‘ External Sources via CData JDBC Drivers (Amazon DynamoDB & Couchbase are shown)

Built-in Connection String Designer

For assistance in constructing the JDBC URL, use the connection string designer built into the PostgreSQL JDBC Driver. Double-click the JAR file or execute the jar file from the command line.

java -jar cdata.jdbc.postgresql.jar

Fill in the connection properties and copy the connection string to the clipboard.

To connect to PostgreSQL, set the Server, Port (the default port is 5432), and Database connection properties and set the User and Password you wish to use to authenticate to the server. If the Database property is not specified, the data provider connects to the user's default database.

SSH Connectivity for PostgreSQL

You can use SSH (Secure Shell) to authenticate with PostgreSQL, whether the instance is hosted on-premises or in supported cloud environments. SSH authentication ensures that access is encrypted (as compared to direct network connections).

SSH Connections to PostgreSQL in Password Auth Mode

To connect to PostgreSQL via SSH in Password Auth mode, set the following connection properties:

  • User: PostgreSQL User name
  • Password: PostgreSQL Password
  • Database: PostgreSQL database name
  • Server: PostgreSQL Server name
  • Port: PostgreSQL port number like 3306
  • UserSSH: "true"
  • SSHAuthMode: "Password"
  • SSHPort: SSH Port number
  • SSHServer: SSH Server name
  • SSHUser: SSH User name
  • SSHPassword: SSH Password

SSH Connections to PostgreSQL in Public Key Auth Mode

To connect to PostgreSQL via SSH in Password Auth mode, set the following connection properties:

  • User: PostgreSQL User name
  • Password: PostgreSQL Password
  • Database: PostgreSQL database name
  • Server: PostgreSQL Server name
  • Port: PostgreSQL port number like 3306
  • UserSSH: "true"
  • SSHAuthMode: "Public_Key"
  • SSHPort: SSH Port number
  • SSHServer: SSH Server name
  • SSHUser: SSH User name
  • SSHClientCret: the path for the public key certificate file
๐Ÿ‘ Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

NOTE: To use the JDBC Driver in Dremio, you will need a license (full or trial) and a Runtime Key (RTK). For more information on obtaining this license (or a trial), contact our sales team.

Add the Runtime Key (RTK) to the JDBC URL. You will end up with a JDBC URL similar to the following:

jdbc:postgresql:RTK=5246...;User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;

Access PostgreSQL as an External Source

To add PostgreSQL as an External Source, click to add a new source and select PostgreSQL. Copy the JDBC URL and paste it into the New PostgreSQL Source wizard.

๐Ÿ‘ Entering the JDBC URL (Amazon DynamoDB is shown)

Save the connection and you are ready to query live PostgreSQL data in Dremio, easily incorporating PostgreSQL data into your data lake.

๐Ÿ‘ Live data in Dremio (Amazon DynamoDB is shown)

More Information & Free Trial

Using the CData JDBC Driver for PostgreSQL in Dremio, you can incorporate live PostgreSQL data into your data lake. Check out our CData JDBC Driver for PostgreSQL page for more information about connecting to PostgreSQL. Download a free, 30 day trial of the CData JDBC Driver for PostgreSQL and get started today.

Ready to get started?

Download a free trial of the PostgreSQL Driver to get started:

 Download Now

Learn more:

๐Ÿ‘ PostgreSQL Icon
PostgreSQL JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with PostgreSQL-compatible database engines.