Writers overview
The following is a summary of writer capabilities. For additional information, see:
Type for discussion of user-defined types
SQL CDC replication examples and Replicating MongoDB data to Azure CosmosDB
How update and delete operations are handled in writers for discussion of "insert only"
Formatters for discussion of Avro, delimited text, JSON, and XML outputs
Writer capabilities
writer | input stream type(s) | supports replication[a] | supports Database Reader auto-quiesce | output(s) | DDL support | parallel threads | recovery[b] | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | no | Avro, delimited text, JSON, XML | optional rollover on schema evolution | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, ParquetEvent[c], user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | optional rollover on schema evolution | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, ParquetEvent[c], user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | - | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | - | no | AIP (default) or E1P[d] | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Azure Synapse table(s) | schema evolution | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | BigQuery table(s)[f] | schema evolution | yes | A1P or E1P depending on Streaming Configuration settings | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Cosmos DB Cassandra API tables | - | yes | ||||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent1 | no | no | Hive table(s)[f] | - | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, JSONNodeEvent, WAEvent[e] | yes | yes | CosmosDB documents | - | yes | A1P[h] | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | JDBC to table(s) in a supported DBMS[f] | schema evolution | yes | E1P[d] | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Delta Lake tables in Databricks | schema evolution | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, ParquetEvent[c], user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | optional rollover on schema evolution | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
Galera | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, ParquetEvent[c], user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | optional rollover on schema evolution | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | - | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | no | Hazelcast map(s)[f] | - | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | no | HBase table(s)** | - | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | no | Avro, delimited text, JSON, XML | optional rollover on schema evolution | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes (when using SQL MERGE) | yes | Hive table(s)[f] | - | yes | E1P (when using MERGE) or A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes (when using SQL MERGE) | no | Hive table(s)[f] | - | no | E1P (when using MERGE) or A1P | |||||||||||||||||||||||||||||||||||||||||||
HP NonStop SQL/MP & SQL/MX | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | no | delimited text, JSON, XML | - | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, JSONNodeEvent, WAEvent[e] | no, but see Using the Confluent or Hortonworks schema registry | yes | Avro, delimited text, JSON, XML | can track schema evolution using schema registry | yes | E1P[d] | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | - | no | E1P[d] | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Kudu table(s)[f] | - | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined | no | no | MapR DB table | - | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | no | Avro, delimited text, JSON, XML | no | A1P | ||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent, XMLNodeEvent | no | no | Avro, delimited text, JSON, XML | no | A1P | ||||||||||||||||||||||||||||||||||||||||||||
MariaDB | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
MemSQL | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent[e] | yes | yes | CosmosDB documents | no | A1P[h] | ||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, user-defined, WAEvent[e] | yes | yes | MongoDB documents | - | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined | no | no | Avro, delimited text, JSON, XML | no | A1P | ||||||||||||||||||||||||||||||||||||||||||||
MySQL | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
Oracle Database | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
PostgreSQL | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Redshift table(s)[f] | yes | A1P | ||||||||||||||||||||||||||||||||||||||||||||
JSONNodeEvent, ParquetEvent[c], user-defined, WAEvent, XMLNodeEvent | no | yes | Avro, delimited text, JSON, XML | optional rollover on schema evolution | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined (in APPENDONLY mode), WAEvent[e] | yes (in MERGE mode) | yes | Salesforce objects | no | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
SAP HANA | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Snowflake table(s)[f] | schema evolution | yes | A1P | |||||||||||||||||||||||||||||||||||||||||||
user-defined, WAEvent[e] | yes | yes | Spanner table(s)[f] | schema evolution | yes | E1P[d] | |||||||||||||||||||||||||||||||||||||||||||
SQL Server | see Database Writer, above | ||||||||||||||||||||||||||||||||||||||||||||||||
any except Avro | n/a | no | log file or terminal | all input is written | no | A1P | |||||||||||||||||||||||||||||||||||||||||||
[a] Supporting replication means that the target can replicate insert, update, and delete events from the source. [b] A1P ("at-least once processing") means that after recovery there may be some duplicate events written to the target. E1P ("exactly once processing") means there will be no duplicate events. [c] When the input stream is of type ParquetEvent, the writer must use Avro Formatter or Parquet Formatter. [d] If the source is WAEvent from Incremental Batch Reader, recovery is A1P. [e] WAEvent must be the output of a Database Reader, Incremental Batch Reader, or SQL CDC source. [f] With an input stream of a user-defined type, output is to a single table or map. Output to multiple tables or maps requires source database metadata included in WAEvent. [g] Primary key updates to source rows cannot be replicated. [h] Not supported when the writer's input stream is the output of Cosmos DB Reader or Mongo Cosmos DB Reader in incremental mode. |