Connectors / Databases

Oracle Database

source

Oracle 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

FieldTypeDefaultDescription
query
required
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