Transactional Streaming
Chango Streaming Tx is a spark streaming job to support exactly-once delivery in contrast to Chango Streaming which supports at-most once delivery.
Chango Streaming Tx
like Chango Streaming
is a streaming consumer and works with Chango Data API
which is a streaming producer. So,
the combination of Chango Streaming Tx
like Chango Streaming
and Chango Data API
is called Chango Ingestion
.
Chango provides the following tools as chango clients to ingest messages to Chango quickly and easily.
- Chango Client
- Chango CLI
- Chango Log
- Chango CDC
These chango clients can send messages which will be saved to iceberg tables transactionally in Chango.
Use Transactional Chango Client API
You need to use the following Chango Client API in java codes to send messages transactionally.
ChangoClient changoClient = new ChangoClient(
token,
dataApiServer,
schema,
table,
batchSize,
interval,
transactional
);
Configure Chango CLI
You need to add --tx
argument to Chango CLI to upload JSON files transactionally.
chango upload json local \
--data-api-server [endpoint-of-data-api] \
--schema iceberg_db \
--table test_iceberg \
--file /home/chango/multi-line-json.json \
--batch-size 150000 \
--tx \
;
Configure Chango Log
Configure conf/configuration.yml
with setting tx
to true
to send logs transactionally in Chango Log
.
chango:
token: any-chango-credential
dataApiUrl: http://any-data-api-endpoint
schema: logs_db
table: logs
batchSize: 10000
interval: 1000
tx: true
Configure Chango CDC
Configure conf/configuration.yml
with setting tx
to true
to send CDC data transactionally in Chango CDC
.