Starburst Oracle connector#

The Starburst Oracle connector is an extended version of the Oracle Connector, the initial configuration and usage is identical.

Note

The additional features of the connector require a valid Starburst Enterprise Presto license, unless otherwise noted.

The following improvements are included:

Performance#

The connector includes a number of performance improvements, detailed in the following sections.

Parallelism#

The connector is able to read data from Oracle using multiple parallel connections.

Oracle parallelism configuration properties#

Property name

Description

Default

oracle.parallelism-type

Determines the parallelism method. Possible values are:

  • NO_PARALLELISM, single JDBC connection

  • PARTITIONS, separate connection for each partition

NO_PARALLELISM

oracle.concurrent.max-splits-per-scan

Maximum number of parallel connections for a table scan

10

Table statistics#

This feature is available for free, and does not require a valid license.

The Oracle connector supports table and column statistics. The Oracle database collects the statistics and the connector retrieves them.

To collect statistics for a table, add the following statement to your Oracle database:

EXECUTE DBMS_STATS.GATHER_TABLE_STATS('USER_NAME', 'TABLE_NAME');

See Oracle’s documentation for additional options and instructions on invoking a procedure when you’re not using SQL*Plus.

For Cost based optimizations, view the table and column statistics in Presto using SHOW STATS.

Table statistics configuration properties#

Property name

Description

Default

statistics.enabled

Enables table and column statistics

true

statistics.cache-ttl

Duration for which table and column statistics are cached.

0s

statistics.cache-missing

Cache the fact that table statistics were not available.

false

Pushdown#

The connector supports pushdown for the following aggregate functions:

Additionally, for the aggregate functions below, pushdown is only supported for DOUBLE type columns:

Dynamic filtering#

Dynamic filtering is enabled by default. It causes the connector to wait for dynamic filtering to complete before starting a JDBC query.

You can disable dynamic filtering by setting the property dynamic-filtering.enabled in your catalog properties file to false.

Security#

The connector includes a number of security-related features, detailed in the following sections.

User impersonation#

Oracle connector supports user impersonation. In the Oracle connector, user impersonation creates proxy user accounts and authorizes users to connect through them in Oracle database.

Enable user impersonation in the catalog file:

oracle.impersonation.enabled=true

For more information, go to docs.oracle.com.

Kerberos authentication#

The Oracle connector supports Kerberos-based authentication with the following configuration:

oracle.authentication.type=KERBEROS
kerberos.client.principal=example@example.com
kerberos.client.keytab=etc/kerberos/example.keytab
kerberos.config=etc/kerberos/krb5.conf

In this configuration the user example@example.com, as defined in the principal property, connects to the database. The related Kerberos service ticket is located in the example.keytab file.

Kerberos credential passthrough#

You can configure the Starburst Oracle connector to pass through Kerberos credentials, received by Presto, to the Oracle database. To configure Kerberos and Presto, see Kerberos credential passthrough.

After you configure Kerberos and Presto, edit the properties file to enable the connector to pass the credentials from the server to the database.

Confirm the correct Kerberos client configuration properties in the catalog properties file. For example:

oracle.authentication.type=KERBEROS_PASS_THROUGH
http.authentication.krb5.config=/etc/krb5.conf
http-server.authentication.krb5.service-name=exampleServiceName
http-server.authentication.krb5.keytab=/path/to/Keytab/File

Now any database accessed using Presto is subject to the Kerberos definied data access restrictions and permissions.

Password credential passthrough#

The connector supports password credential passthrough. This means that the data Presto accesses is the same as the data available to a user who has direct access to the data source.

To enable it, edit the catalog properties file to include the authentication type:

oracle.authentication.type=PASSWORD_PASS_THROUGH

For more information about configurations and limitations, see Password credential passthrough.