Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📚 Docs Refresh: Oracle Source #6671

Merged
merged 4 commits into from
Oct 4, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 43 additions & 49 deletions docs/integrations/sources/oracle.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,6 @@
# Oracle DB

## Overview

The Oracle Database source supports both Full Refresh and Incremental syncs. You can choose if this connector will copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run.

### Resulting schema

The Oracle source does not alter the schema present in your database. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.

### Data type mapping

Oracle data types are mapped to the following data types when synchronizing data.
You can check the test values examples [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceComprehensiveTest.java).
If you can't find the data type you are looking for or have any problems feel free to add a new test!

| Oracle Type | Resulting Type | Notes |
| :--- | :--- | :--- |
| `binary_double` | number | |
| `binary_float` | number | |
| `blob` | string | |
| `char` | string | |
| `char(3 char)` | string | |
| `clob` | string | |
| `date` | string | |
| `decimal` | number | |
| `float` | number | |
| `float(5)` | number | |
| `integer` | number | |
| `interval year to month` | string | |
| `long raw` | string | |
| `number` | number | |
| `number(6, 2)` | number | |
| `nvarchar(3)` | string | |
| `raw` | string | |
| `timestamp` | string | |
| `timestamp with local time zone` | string | |
| `timestamp with time zone` | string | |
| `varchar2` | string | |
| `varchar2(256)` | string | |
| `xmltype` | string | |

If you do not see a type in this list, assume that it is coerced into a string. We are happy to take feedback on preferred mappings.

### Features
## Features

| Feature | Supported | Notes |
| :--- | :--- | :--- |
Expand All @@ -51,21 +9,24 @@ If you do not see a type in this list, assume that it is coerced into a string.
| Replicate Incremental Deletes | Coming soon | |
| Logical Replication \(WAL\) | Coming soon | |
| SSL Support | Coming soon | |
| SSH Tunnel Connection | Coming soon | |
| SSH Tunnel Connection | Yes | |
| LogMiner | Coming soon | |
| Flashback | Coming soon | |
| Namespaces | Yes | Enabled by default |

## Getting started
The Oracle source does not alter the schema present in your database. Depending on the destination connected to this source, however, the schema may be altered. See the destination's documentation for more details.

## Getting Started (Airbyte Cloud)
On Airbyte Cloud, only TLS connections to your Oracle instance are supported. Other than that, you can proceed with the open-source instructions below.

### Requirements
## Getting Started (Airbyte Open-Source)

#### Requirements

1. Oracle `11g` or above
2. Allow connections from Airbyte to your Oracle database \(if they exist in separate VPCs\)
3. Create a dedicated read-only Airbyte user with access to all tables needed for replication

### Setup guide

#### 1. Make sure your database is accessible from the machine running Airbyte

This is dependent on your networking setup. The easiest way to verify if Airbyte is able to connect to your Oracle instance is via the check connection tool in the UI.
Expand Down Expand Up @@ -100,7 +61,7 @@ Your database user should now be ready for use with Airbyte.

Case sensitive. Defaults to the upper-cased user if empty. If the user does not have access to the configured schemas, no tables will be discovered.

## Connection via an SSH Tunnel
## Connection via SSH Tunnel
avaidyanatha marked this conversation as resolved.
Show resolved Hide resolved

Airbyte has the ability to connect to a Oracle instance via an SSH Tunnel. The reason you might want to do this because it is not possible (or against security policy) to connect to the database directly (e.g. it does not have a public IP address).

Expand All @@ -117,6 +78,39 @@ Using this feature requires additional configuration, when creating the source.
6. If you are using `Password Authentication`, then `SSH Login Username` should be set to the password of the User from the previous step. If you are using `SSH Key Authentication` leave this blank. Again, this is not the Oracle password, but the password for the OS-user that Airbyte is using to perform commands on the bastion.
7. If you are using `SSH Key Authentication`, then `SSH Private Key` should be set to the RSA Private Key that you are using to create the SSH connection. This should be the full contents of the key file starting with `-----BEGIN RSA PRIVATE KEY-----` and ending with `-----END RSA PRIVATE KEY-----`.

## Data Type Mapping

Oracle data types are mapped to the following data types when synchronizing data.
You can check the test values examples [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-integrations/connectors/source-oracle/src/test-integration/java/io/airbyte/integrations/source/oracle/OracleSourceComprehensiveTest.java).
If you can't find the data type you are looking for or have any problems feel free to add a new test!

| Oracle Type | Resulting Type | Notes |
| :--- | :--- | :--- |
| `binary_double` | number | |
| `binary_float` | number | |
| `blob` | string | |
| `char` | string | |
| `char(3 char)` | string | |
| `clob` | string | |
| `date` | string | |
| `decimal` | number | |
| `float` | number | |
| `float(5)` | number | |
| `integer` | number | |
| `interval year to month` | string | |
| `long raw` | string | |
| `number` | number | |
| `number(6, 2)` | number | |
| `nvarchar(3)` | string | |
| `raw` | string | |
| `timestamp` | string | |
| `timestamp with local time zone` | string | |
| `timestamp with time zone` | string | |
| `varchar2` | string | |
| `varchar2(256)` | string | |
| `xmltype` | string | |

If you do not see a type in this list, assume that it is coerced into a string. We are happy to take feedback on preferred mappings.

## Changelog

Expand Down