...
- Create a
MutatorClient
to manage a transaction for the targeted ACID tables. This set of tables should include any transactional destinations or sources. Don't forget to register aLockFailureListener
so that you can handle transaction failures. - Open a new
Transaction
with the client. - Get the
AcidTables
from the client. - Begin the transaction.
- Create at least one
MutatorCoordinator
for each table. TheAcidTableSerializer
can help you transport theAcidTables
when your workers are in a distributed environment. - Compute your mutation set (this is your ETL merge process).
- Optionally: collect the set of affected partitions.
- Append bucket ids to insertion records. A
BucketIdResolver
can help here. - Group and sort your data appropriately.
- Issue mutation events to your coordinators.
- Close your coordinators.
- Abort or commit the transaction.
- Close your mutation client.
- Optionally: create any affected partitions that do not exist in the meta store.
See ExampleUseCase
and TestMutations.testUpdatesAndDeletes()
for some very simple usages.