either the key.converter or value.converter are set to Snowflake{Json,Avro}Converter
SMT is regex.router
BP: Kafka config that affect file size are buffer.flush.time, buffer.size.bytes. buffer.count.records
Snowpipe file size are generally quite small because size specified is JAVA's memory size. Buffer contents are compressed to files that are typically 5%-10% of the original size. E.g. Snowpipe is expensive for files < 10MB, which is about 400MB of buffer.
When using snowflake streaming, topic corresponds to a table, and each partition of a topic correspond to one channel in a table
Error-handling: sent to DLQ (Kafka Topic)
- Schematization: Unlike Snowpipe, which supports only two variant columns, support for table schema detection and evolution
schema.registry.url: required for schema evolution for Avro and Protobuf, optional if JSON
with version 2.1.2 when enable.streaming.client.optimization=true (default), only one client is created for all partitions. Disable for high throughput scenario
buffer.flush.time: 10 (seconds)
buffer.count.records: 10_000
buffer.size.bytes: 20_000_000 (20 MB)
MAX_CLIENT_LAG, Snowpipe streaming flush lag: default 1 second for Snowflake tables, 30 seconds for Iceberg tables
Pricing: 1 CR per compute-hour, cloud-services charged at 0.01 CR/hour/client instance (calculated per second when client is actively queueing)