Rather than a storage connector, that connects to a GCP or S3 bucket for example, an Oracle connector is referred to as a database connector. Currently, the Oracle connector is supported for the creation of platform, tabular assets and cannot be used as an export location.
Pre-requisites
To connect your Oracle database, you need:
-
Your database host's IP (e.g.,
1.1.1.2) or domain (e.g.,my.server.com) -
Your database's port (usually
1521for unencrypted connections and2484for encrypted connections using SSL/TLS) -
Your database's system identifier (SID)/service name
-
A user created for accessing the required data and username and password for that user
-
Minimum Role/Permission:
-
CREATE SESSION— allows the connector to authenticate and connect to the database -
SELECTonSYS.DBA_TABLES— required to list tables -
SELECTonSYS.DBA_VIEWS— required to list views -
SELECTonSYS.DBA_MVIEWS— required to list materialized views -
SELECTon the target tables/views themselves
-
If the connector logs in as the owning schema (i.e. the schema that owns the objects being connected to), no additional object-level grants are needed beyond the above.
Supported versions: 19c, 23c
Create the Connector
-
Click Manage on the Navigation bar.
-
Select Connectors to view the Manage Connectors screen
-
Click the Create Connector button at the top right
-
Enter a Name for your Connector and a Description (optional)
-
Choose Type > Oracle
-
Add any Integration Metadata needed for programmatic integration.
-
Click Create. Connection test will run and if successful, will show Connection Test Status as Successful.
-
Click Close.
Federated Oracle Connector
To enable Oracle federation in your Databricks environment, you will need to raise a request with your Databricks account team to apply a known-issue workaround on Serverless compute.
Below is proposed wording for that message to your Databricks account team:
Customer-to-Databricks request
Subject: Request to apply Oracle federation timezone workaround on Serverless compute
We are using Databricks Oracle federation and have encountered the documented known issue affecting Oracle instances 11.2.0.3.0 and later where the source database timezone is not set to Etc/UTC. Queries against the federated Oracle connection return:
ORA-01882: timezone region not found
The documented workaround is to set spark.databricks.connector.oracle.timezoneAsRegion. However, this property cannot be applied via the UI or SQL when creating the federated connection, since the connection creation options only accept host, port, user, and password. There is no mechanism to pass additional JDBC properties during connection setup.
Please could Databricks Engineering apply the Serverless-compute workaround on our account? We understand this workaround has been applied previously for other Databricks accounts hitting the same issue.
Reference: https://docs.databricks.com/aws/en/query-federation/oracle#limitations