Skip to content

AMQP Output

Publishes records as JSON messages to an AMQP exchange (RabbitMQ compatible).

How it works

  1. Connects to the AMQP broker and declares the exchange.
  2. Each row from the record batch is serialized to JSON and published.

Configuration

yaml
data_sinks:
  sink:
    Amqp:
      connection_string: "amqp://guest:guest@localhost:5672"
      exchange: events
      routing_key: output
      exchange_type: direct

Configuration variables

VariableDefaultDescription
connection_string(required)AMQP connection URI
exchange(required)Exchange name
routing_key""Routing key
exchange_typedirectExchange type (direct, fanout, topic, headers)
formatjsonData format

Authentication

Authentication is provided through the AMQP connection URI. For security best practices, we strongly advise against storing the connection string in skippr.yml. Use environment variable interpolation instead: replace the connection_string value with your own ${ENV_VAR} reference.

The relevant part of skippr.yml looks like this:

yaml
data_sinks:
  warehouse:
    Amqp:
      connection_string: "${AMQP_CONNECTION_STRING}"

Set the env var before running skipprd:

macOS / Linux

bash
export AMQP_CONNECTION_STRING="amqp://guest:guest@localhost:5672"

Windows PowerShell

powershell
$env:AMQP_CONNECTION_STRING = "amqp://guest:guest@localhost:5672"

Windows Command Prompt

cmd
set AMQP_CONNECTION_STRING=amqp://guest:guest@localhost:5672

Troubleshooting

SymptomFix
authentication or connection failuresVerify the AMQP URI, broker hostname, port, and vhost permissions.
messages are not routedCheck the exchange name, exchange type, routing key, and downstream bindings.

This site is source-available under PolyForm Shield 1.0.0