Connectors / Databases
Oracle Database
sourceOracle Database query source (ODPI-C); incremental replication, PK-range sharding, discovery; needs Oracle Instant Client
Install
cargo install faucet-cli --features source-oracle faucet init --source oracle
# Cargo.toml — use it as a library cargo add faucet-source-oracle
Starter config
source:
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.
query: "" # REQUIRED — SQL query.
# params: [] # Positional bind values for `:1`…`:n`.
# max_connections: 10 # Maximum pooled sessions.
# batch_size: 1000 # Records per emitted page, also used as the fetch array size.
# statement_timeout_secs: 300 # Per-round-trip call timeout in seconds (`0` disables).
# replication: { type: full } # one of: full, incremental
# --- Alternative variants — replace the block above with one of these ---
# type: incremental
# column: "" # REQUIRED
# initial_value: null # REQUIRED
# state_key: "" # Explicit state-store key for the bookmark.
# shard: null # Optional PK-range sharding for clustered execution.
# json_columns: [] # Output columns whose text holds JSON (a `JSON_SERIALIZE(...)` or an `IS JSON` `VARCHAR2`/`CLOB`); their values are emitt…
Capabilities
| Replay | Non-deterministic replay |
|---|---|
| Exactly-once replay | No |
| Incremental | Yes |
| Dataset discovery | Yes |
| Reports lag | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
queryrequired | string | — | SQL query. Bind params with :1, :2, …, and the incremental cursor with :bookmark. |
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. |
params | array | [] | Positional bind values for :1…:n. |
max_connections | integer | 10 | Maximum pooled sessions. Defaults to 10. |
batch_size | integer | 1000 | Records per emitted page, also used as the fetch array size. 0 emits the whole result set as one page. Defaults to DEFAULT_BATCH_SIZE. |
statement_timeout_secs | integer | 300 | Per-round-trip call timeout in seconds (0 disables). Defaults to 300. |
replication | object | type: full | Replication mode. Defaults to OracleReplication::Full. |
state_key | string | — | Explicit state-store key for the bookmark. Derived from the database and a query fingerprint when unset. |
shard | object | — | Optional PK-range sharding for clustered execution. Inert outside the cluster coordinator. |
json_columns | array | — | Output columns whose text holds JSON (a JSON_SERIALIZE(...) or an IS JSON VARCHAR2/CLOB); their values are emitted as parsed JSON. |
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