Sink Config
Last updated
Was this helpful?
Last updated
Was this helpful?
Was this helpful?
The Substreams SQL sink can be configured in multiple ways. While the sink configuration in the substreams.yaml
file is optional, it can be useful for setting default parameters and advanced configurations.
The sink configuration in your substreams.yaml
file is optional. You can run the sink without any configuration by specifying the module name directly in the CLI command:
substreams-sink-sql from-proto $DSN ./substreams.yaml map_my_data
If you choose to include sink configuration in your substreams.yaml
, you can use the following structure:
sink:
module: map_program_data
type: sf.substreams.sink.sql.v1.Service
config:
engine: postgres # or clickhouse
dbt_config:
files: ./dbt
run_interval_seconds: 300
enabled: false
module: The name of the Substreams module to consume
type: Must be sf.substreams.sink.sql.v1.Service
config.engine: Database engine (postgres
or clickhouse
)
config.dbt_config: Optional DBT configuration for materialized views
files: Path to DBT files directory
run_interval_seconds: Interval for running DBT transformations
enabled: Whether DBT transformations are enabled
When using the CLI, you can override or bypass the sink configuration entirely:
# Use sink config from substreams.yaml
substreams-sink-sql from-proto $DSN ./substreams.yaml
# Override module name (ignores sink config)
substreams-sink-sql from-proto $DSN ./substreams.yaml my_custom_module
# Use published package (no local config needed)
substreams-sink-sql from-proto $DSN https://github.com/example/package.spkg
The CLI approach provides more flexibility and is often preferred for development and testing scenarios.