Skip to content

Synapse ​

Use Synapse when the destination is a dedicated SQL pool you already run. Skipprd inserts into schema.table.

Before you begin ​

  • A connection string the Skipprd host can use (SQL auth or AAD, as your pool allows).
  • Store it in the environment.
bash
export SYNAPSE_CONNECTION_STRING="Server=tcp:....sql.azuresynapse.net,1433;..."

Configure ​

python
from skippr import Config, DataSinkSynapse, EnvRef, Pipeline

cfg = Config.discover()
syn = cfg.data_sink(
    "warehouse",
    DataSinkSynapse(
        connection_string=EnvRef("SYNAPSE_CONNECTION_STRING"),
        schema="dbo",
        table="events",
    ),
)
cfg.pipeline("events", Pipeline(data_source=cfg.get_data_source("sample"), data_sink=syn))
cfg.save()
bash
skipprd connect data-sink synapse \
  --pipeline events \
  --name warehouse \
  --connection-string '${SYNAPSE_CONNECTION_STRING}' \
  --schema dbo \
  --table events
yaml
data_sinks:
  warehouse:
    Synapse:
      connection_string: ${SYNAPSE_CONNECTION_STRING}
      schema: dbo
      table: events

Options ​

KeyTypeRequired/DefaultDescription
connection_stringsecretRequiredSynapse connection string as ${ENV}
schemastringRequiredSchema
tablestringRequiredTable

How data lands ​

Rows are inserted into schema.table. Retries are exactly once. Create the table first if the user cannot CREATE TABLE.

Troubleshooting ​

SymptomFix
Login failedRefresh the connection string and export it in this shell
FirewallAllow the Skipprd host IP on the Synapse firewall
Table missingCreate it or grant CREATE

Next steps ​