Connectors / Files & object stores
Delta Lake
sinkApache Delta Lake sink (append-only; local FS or S3/Azure/GCS)
Install
cargo install faucet-cli --features sink-delta faucet init --sink delta
# Cargo.toml — use it as a library cargo add faucet-sink-delta
Starter config
sink:
type: delta
config:
table_uri: "" # REQUIRED — Delta table location URI: `file:///abs/path`, `s3://bucket/key`, `abfss://…`, `gs://bucket/key`.
# credentials: { type: default } # one of: default, aws, azure, gcp
# --- Alternative variants — replace the block above with one of these ---
# type: aws
# config:
# access_key_id: ""
# secret_access_key: ""
# session_token: ""
# region: ""
# endpoint_url: ""
# allow_http: false
#
# type: azure
# config:
# account_name: ""
# access_key: ""
# sas_token: ""
#
# type: gcp
# config:
# service_account_path: ""
# service_account_key: ""
# storage_options: {} # Extra `storage_options` passed verbatim to delta-rs (e.g.
# create_table: true # Create the table (and its schema, from the inferred record shape) on the first write when it does not already exist.
# partition_by: [] # Partition columns, applied only when the table is created.
# schema_sample_size: 100 # Records sampled to infer the Arrow/Delta schema when creating the table.
# batch_size: 1000 # Re-chunk size for `Sink::write_batch`.
# target_file_size: 0 # Optional target data-file size (bytes) hint for the writer's rollover.
Capabilities
| Delivery | At-least-once |
|---|---|
| Write modes | append |
| Exactly-once writes | No |
| Schema evolution | No |
| Scoped cleanup | No |
| Staged bulk load | No |
| Run rollback | No |
| Compression | No |
Config fields
| Field | Type | Default | Description |
|---|---|---|---|
table_urirequired | string | — | Delta table location URI: file:///abs/path, s3://bucket/key, abfss://…, gs://bucket/key. A bare local path is accepted and treated as file://. |
credentials | object | type: default | Object-store credentials. Defaults to the ambient provider chain. |
storage_options | object | {} | Extra storage_options passed verbatim to delta-rs (e.g. a MinIO endpoint override, or any object-store key the DeltaCredentials enum does not model). Keys set here **win** over credential-derived keys. Keys that name an endpoint (*endpoint*, *_url, *_uri, *_host, a proxy, an authority host) or a local file (*_file, *_path, a service-account or application-credentials file) are checked like the typed fields by a host that confines configs (faucet serve). |
create_table | boolean | true | Create the table (and its schema, from the inferred record shape) on the first write when it does not already exist. When false, an absent table fails the first write with a typed error. |
partition_by | array | [] | Partition columns, applied only when the table is created. Ignored when appending to an existing table (its stored partitioning is used). |
schema_sample_size | integer | 100 | Records sampled to infer the Arrow/Delta schema when creating the table. |
batch_size | integer | 1000 | Re-chunk size for Sink::write_batch. Incoming pages larger than this are sliced into batch_size-row Arrow batches before writing. 0 writes each page through as one batch. |
target_file_size | integer | — | Optional target data-file size (bytes) hint for the writer's rollover. Advisory — delta-rs rolls files at buffer boundaries near this size. |
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