Destination Connectors¶
Skippr supports loading data into warehouses, cloud storage, messaging systems, and more.
Warehouses¶
Snowflake¶
Loads data directly into Snowflake tables.
warehouse:
kind: snowflake
database: ANALYTICS
schema: RAW
warehouse: COMPUTE_WH
role: ACCOUNTADMIN
| Field | Default | Description |
|---|---|---|
database |
(required) | Snowflake database |
schema |
(required) | Target schema |
warehouse |
Compute warehouse | |
role |
Snowflake role |
Authentication via environment variables: SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PRIVATE_KEY_PATH.
See Connect: Snowflake for a step-by-step setup guide.
Google BigQuery¶
Loads data into BigQuery datasets.
warehouse:
kind: bigquery
project: my-gcp-project
dataset: raw_data
location: US
| Field | Default | Description |
|---|---|---|
project |
(required) | GCP project ID |
dataset |
(required) | BigQuery dataset |
location |
Dataset location |
See Connect: BigQuery for a step-by-step setup guide.
PostgreSQL¶
Loads data into PostgreSQL tables.
warehouse:
kind: postgres
database: analytics
schema: raw
| Field | Default | Description |
|---|---|---|
database |
(required) | PostgreSQL database name |
schema |
public |
Target schema |
Authentication via environment variables: POSTGRES_HOST, POSTGRES_USER, POSTGRES_PASSWORD.
See Connect: Postgres for a step-by-step setup guide.
Amazon Redshift¶
Loads data into Amazon Redshift using a staging location in S3 (COPY workflow).
warehouse:
kind: redshift
database: analytics
cluster_identifier: my-cluster
schema: public
region: us-east-1
staging_s3_bucket: my-load-bucket
staging_s3_prefix: "skippr/staging/"
iam_role_arn: "arn:aws:iam::123456789012:role/RedshiftS3Role"
| Field | Default | Description |
|---|---|---|
database |
(required) | Redshift database name |
schema |
public |
Target schema |
cluster_identifier |
Provisioned cluster identifier | |
workgroup_name |
Serverless workgroup (alternative to cluster) | |
db_user |
Database user for COPY | |
region |
AWS region | |
staging_s3_bucket |
S3 bucket for staging files before COPY | |
staging_s3_prefix |
Prefix inside the staging bucket | |
iam_role_arn |
IAM role Redshift uses to read from S3 |
Authentication uses AWS credentials in the environment or standard credential chain.
ClickHouse¶
Loads data into ClickHouse over HTTP.
warehouse:
kind: clickhouse
url: http://localhost:8123
database: default
user: default
password: ${CLICKHOUSE_PASSWORD}
| Field | Default | Description |
|---|---|---|
url |
http://localhost:8123 |
ClickHouse HTTP URL |
database |
Database name | |
user |
default |
Username |
password |
Password |
MotherDuck¶
Loads data into MotherDuck.
warehouse:
kind: motherduck
motherduck_token: ${MOTHERDUCK_TOKEN}
database: my_database
schema: main
| Field | Default | Description |
|---|---|---|
motherduck_token |
(required) | MotherDuck token (or set MOTHERDUCK_TOKEN) |
database |
Database name | |
schema |
Target schema |
AWS Athena (S3 + Glue)¶
Writes Parquet files to S3 with Glue catalog registration for Athena queries.
warehouse:
kind: athena
s3_bucket: my-data-lake
s3_prefix: "bronze/"
database: raw_data
region: us-east-1
| Field | Default | Description |
|---|---|---|
s3_bucket |
(required) | S3 bucket for Parquet files |
s3_prefix |
Key prefix | |
database |
(required) | Glue catalog database |
region |
AWS region |
Databricks¶
Uploads data to Databricks as Parquet files via the Files API, with optional COPY INTO.
warehouse:
kind: databricks
workspace_url: "https://my-workspace.cloud.databricks.com"
token: ${DATABRICKS_TOKEN}
warehouse_id: "abc123"
catalog: main
schema: default
| Field | Default | Description |
|---|---|---|
workspace_url |
(required) | Databricks workspace URL |
token |
(required) | Personal access token |
warehouse_id |
SQL warehouse ID (enables COPY INTO) | |
catalog |
main |
Unity Catalog name |
schema |
default |
Schema name |
Azure Synapse¶
Writes data to Azure Synapse Analytics via TDS protocol.
warehouse:
kind: synapse
connection_string: ${SYNAPSE_CONNECTION_STRING}
schema: dbo
| Field | Default | Description |
|---|---|---|
connection_string |
(required) | ADO-style connection string |
schema |
dbo |
Target schema |
Cloud Storage¶
Google Cloud Storage¶
Writes Parquet files to a GCS bucket.
warehouse:
kind: gcs
bucket: my-bucket
prefix: "data/"
service_account_key_path: "/path/to/key.json"
| Field | Default | Description |
|---|---|---|
bucket |
(required) | GCS bucket name |
prefix |
Key prefix for uploaded objects | |
service_account_key_path |
Path to service account JSON key |
Azure Blob Storage¶
Writes Parquet files to Azure Blob Storage.
warehouse:
kind: azure_blob
account_name: mystorageaccount
account_key: ${AZURE_STORAGE_KEY}
container: my-container
prefix: "data/"
| Field | Default | Description |
|---|---|---|
account_name |
(required) | Azure storage account name |
account_key |
Access key (one of key/sas required) | |
sas_token |
SAS token | |
container |
(required) | Blob container name |
prefix |
Key prefix for uploaded objects |
SFTP¶
Uploads Parquet files to a remote SFTP server.
warehouse:
kind: sftp
host: sftp.example.com
username: user
password: ${SFTP_PASSWORD}
remote_path: "/data/output"
| Field | Default | Description |
|---|---|---|
host |
(required) | SFTP server hostname |
port |
22 |
SSH port |
username |
(required) | SSH username |
password |
Password authentication | |
private_key_path |
Path to SSH private key | |
remote_path |
(required) | Remote directory for uploads |
Messaging¶
AMQP (RabbitMQ)¶
Publishes records as JSON messages to an AMQP exchange.
warehouse:
kind: amqp
connection_string: "amqp://guest:guest@localhost:5672"
exchange: events
routing_key: output
| Field | Default | Description |
|---|---|---|
connection_string |
(required) | AMQP connection URI |
exchange |
(required) | Exchange name |
routing_key |
"" |
Routing key |
exchange_type |
direct |
Exchange type (direct, fanout, topic, headers) |
Other¶
Local File¶
Writes data to a local file.
warehouse:
kind: file
path: "/data/output.parquet"
Stdout¶
Writes data to standard output.
warehouse:
kind: stdout