Connectors / Databases
Oracle Database
sinkOracle Database sink; array DML, MERGE upsert/delete, overwrite, exactly-once, schema evolution; needs Oracle Instant Client
Install
cargo install faucet-cli --features sink-oracle faucet init --sink oracle
# Cargo.toml — use it as a library cargo add faucet-sink-oracle
Starter config
sink:
type: oracle
config:
# connect_string: "" # Easy Connect (`host:1521/FREEPDB1`), TNS alias, or connect descriptor.
# host: "" # Database host.
# port: 0 # Listener port.
# service_name: "" # Service name (e.g.
# sid: "" # Legacy SID.
# username: "" # Database user.
# password: "" # Password for `username`.
# external_auth: false # Authenticate with external credentials (OS authentication or a wallet holding the credentials) instead of `username` / `…
# tls: { ... } # TCPS settings applied to a `host`-form connection.
table: "" # REQUIRED — Target table, optionally owner-qualified (`APP.EVENTS`).
# column_mapping: { type: auto_columns } # one of: auto_columns, json_column
# --- Alternative variants — replace the block above with one of these ---
# type: json_column
# column: "" # REQUIRED
# identifier_case: null # How record keys, `table`, `key` and the JSON column name map onto Oracle identifiers, which are case-sensitive once quot…
# batch_size: 1000 # Rows per array-DML execution.
# max_connections: 5 # Maximum pooled sessions.
# statement_timeout_secs: 300 # Per-round-trip call timeout in seconds (`0` disables).
# create_table: true # Create the target table when it does not exist.
# write_mode: null # Write semantics for a sink.
# key: [] # Key columns.
# delete_marker: null # Optional.
# rollback: null # Runtime rollback settings (#706): the run id to journal under, the run-id column, and whether to journal before-images / keep a replaced table.
Capabilities
| Delivery | Exactly-once (atomic watermark) |
|---|---|
| Write modes | append, upsert, delete, overwrite |
| Exactly-once writes | Yes |
| Schema evolution | Yes |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
tablerequired | string | — | Target table, optionally owner-qualified (APP.EVENTS). |
connect_string | string | — | Easy Connect (host:1521/FREEPDB1), TNS alias, or connect descriptor. Mutually exclusive with host. |
host | string | — | Database host. Mutually exclusive with connect_string. |
port | integer | — | Listener port. Defaults to 1521 (2484 when tls.enabled). |
service_name | string | — | Service name (e.g. a PDB such as FREEPDB1). Mutually exclusive with sid. |
sid | string | — | Legacy SID. Mutually exclusive with service_name. |
username | string | "" | Database user. Required unless external_auth is set. |
password | string | "" | Password for username. |
external_auth | boolean | false | Authenticate with external credentials (OS authentication or a wallet holding the credentials) instead of username / password. |
tls | object | enabled: falseserver_dn_match: true | Transport encryption (TCPS) for the host form. |
column_mapping | object | type: auto_columnson_unknown_field: warn | How records map onto columns. Defaults to auto_columns. |
identifier_case | object | preserve | Identifier case rule. Defaults to preserve. |
batch_size | integer | 1000 | Rows per array-DML execution. 0 sends the whole page at once. Defaults to 1000. |
max_connections | integer | 5 | Maximum pooled sessions. Defaults to 5. |
statement_timeout_secs | integer | 300 | Per-round-trip call timeout in seconds (0 disables). Defaults to 300. |
create_table | boolean | true | Create the target table when it does not exist. Defaults to true. |
write_mode | object | append | Append (default), upsert, or delete. |
key | array | [] | Key columns. Required and non-empty for upsert/delete; ignored for append. |
delete_marker | object | — | Optional. Upsert only: rows whose field matches one of values are deletes; all others are upserts. The marker field is stripped from upsert rows before writing. |
rollback | object | — | Runtime rollback settings (#706): the run id to journal under, the run-id column, and whether to journal before-images / keep a replaced table. Injected per invocation by the CLI when a config has a top-level rollback: block — not meant to be written by hand. |
Get started
Your first pipeline runs in five minutes.
Install the CLI, scaffold a config, and move real data — nothing external to stand up.
curl -LsSf https://github.com/faucet-hq/faucet-stream/releases/latest/download/faucet-cli-installer.sh | sh brew install faucet-hq/faucet-stream/faucet-cli