JSON
The most common format for streaming data. Supports structured (schema-mapped) and unstructured (single text column) modes.
Options
Structured JSON
By default, JSON is parsed into columns according to the table schema. Each field in the JSON object maps to a field defined in the fields array:
Unstructured JSON
When unstructured: true, the entire JSON payload is stored as a single text column. Use SQL JSON functions to extract fields at query time:
Debezium CDC
When debezium: true, Ingest Engine expects the Debezium envelope format with before, after, and op fields. Use this with the CDC connector or any Debezium-compatible source:
Avro
Apache Avro binary format. Kafka and Confluent sources can read Avro events registered in Confluent Schema Registry or AWS Glue Schema Registry. See the Schema Registry guide to discover source columns automatically or enable multi-table routing.
Options
Serialization Modes
Avro supports two serialization modes:
- Raw datums (
raw_datums: true) - just the data, no schema. Readers must have the exact schema. This is the mode used with Schema Registry, which distributes schemas separately.
- Complete records (default) - schema is embedded in every record. Self-describing but larger on the wire.
Schema Registry Integration
For Kafka and Confluent registry sources, select the provider and its connection settings under config.schema_registry_provider and config.schema_registry. You do not need to set the Avro confluent_schema_registry option yourself.
With config.multi_schema: false, the latest schema supplies named source columns. Optionally set config.value_subject to override the schema name for AWS Glue or the subject name for Confluent. With config.multi_schema: true, omit schema and use the multi-table setup. See the Schema Registry guide for examples and schema compatibility behavior.
Parquet
Apache Parquet columnar format. Primarily used for sink tables writing to lakehouse destinations (Iceberg, Delta Lake, Filesystem).
Options
Compression Guide
Protobuf
Protocol Buffers binary format for high-throughput, strongly-typed data interchange.
Options
Raw String
Ingests or emits arbitrary UTF-8 text as a single field. Useful for log lines, CSV data, or custom text formats that you parse in SQL.
The table must have exactly one field of type Utf8 / String. Use SQL text functions or regex functions to parse the data in your pipeline query.
Raw Bytes
Ingests or emits arbitrary binary data as a single field. Use for binary protocols or custom serialization formats.
The table must have exactly one field of type Bytes.
Framing
Framing controls how incoming data is split into individual records. Only applies to source tables.
Bad Data Handling
Controls how malformed or unparseable records are handled. Only applies to source tables.
Use drop for sources where occasional malformed records are expected (e.g., user-generated webhook data). Use fail (the default) when data quality issues should halt the pipeline. Last modified on November 6, 2026