Package com.linkedin.davinci.client
Class BlockingDaVinciRecordTransformer<K,V,O>
java.lang.Object
com.linkedin.davinci.client.DaVinciRecordTransformer<K,V,O>
com.linkedin.davinci.client.BlockingDaVinciRecordTransformer<K,V,O>
- Type Parameters:
K
- type of the input keyV
- type of the input valueO
- type of the output value
- All Implemented Interfaces:
Closeable
,AutoCloseable
@Experimental
public class BlockingDaVinciRecordTransformer<K,V,O>
extends DaVinciRecordTransformer<K,V,O>
This is an implementation of
DaVinciRecordTransformer
that implements blocking.
It ensures that no puts can proceed until onStartIngestionTask finishes.-
Constructor Summary
ConstructorDescriptionBlockingDaVinciRecordTransformer
(DaVinciRecordTransformer recordTransformer, org.apache.avro.Schema keySchema, org.apache.avro.Schema inputValueSchema, org.apache.avro.Schema outputValueSchema, boolean storeRecordsInDaVinci) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
void
onEndVersionIngestion
(int currentVersion) Lifecycle event triggered when record consumption is stopped forDaVinciRecordTransformer.storeVersion
.void
onStartVersionIngestion
(boolean isCurrentVersion) Lifecycle event triggered before consuming records forDaVinciRecordTransformer.storeVersion
.void
processDelete
(Lazy<K> key) Override this method to customize the behavior for record deletions.void
processPut
(Lazy<K> key, Lazy<O> value) Implement this method to manage custom state outside the Da Vinci Client.Implement this method to transform records before they are stored.Methods inherited from class com.linkedin.davinci.client.DaVinciRecordTransformer
getClassHash, getInputValueSchema, getKeySchema, getOutputValueSchema, getRecordTransformerUtility, getStoreRecordsInDaVinci, getStoreVersion, onRecovery, prependSchemaIdToHeader, prependSchemaIdToHeader, transformAndProcessPut, useUniformInputValueSchema
-
Constructor Details
-
BlockingDaVinciRecordTransformer
public BlockingDaVinciRecordTransformer(DaVinciRecordTransformer recordTransformer, org.apache.avro.Schema keySchema, org.apache.avro.Schema inputValueSchema, org.apache.avro.Schema outputValueSchema, boolean storeRecordsInDaVinci)
-
-
Method Details
-
transform
Description copied from class:DaVinciRecordTransformer
Implement this method to transform records before they are stored. This can be useful for tasks such as filtering out unused fields to save storage space.- Specified by:
transform
in classDaVinciRecordTransformer<K,
V, O> - Parameters:
key
- the key of the record to be transformedvalue
- the value of the record to be transformed- Returns:
DaVinciRecordTransformerResult
-
processPut
Description copied from class:DaVinciRecordTransformer
Implement this method to manage custom state outside the Da Vinci Client.- Specified by:
processPut
in classDaVinciRecordTransformer<K,
V, O> - Parameters:
key
- the key of the record to be putvalue
- the value of the record to be put, derived from the output ofDaVinciRecordTransformer.transform(Lazy key, Lazy value)
-
processDelete
Description copied from class:DaVinciRecordTransformer
Override this method to customize the behavior for record deletions. For example, you can use this method to delete records from a custom storage outside the Da Vinci Client. By default, it performs no operation.- Overrides:
processDelete
in classDaVinciRecordTransformer<K,
V, O> - Parameters:
key
- the key of the record to be deleted
-
onStartVersionIngestion
public void onStartVersionIngestion(boolean isCurrentVersion) Description copied from class:DaVinciRecordTransformer
Lifecycle event triggered before consuming records forDaVinciRecordTransformer.storeVersion
. Use this method to perform setup operations such as opening database connections or creating tables. By default, it performs no operation.- Overrides:
onStartVersionIngestion
in classDaVinciRecordTransformer<K,
V, O>
-
onEndVersionIngestion
public void onEndVersionIngestion(int currentVersion) Description copied from class:DaVinciRecordTransformer
Lifecycle event triggered when record consumption is stopped forDaVinciRecordTransformer.storeVersion
. Use this method to perform cleanup operations such as closing database connections or dropping tables. By default, it performs no operation.- Overrides:
onEndVersionIngestion
in classDaVinciRecordTransformer<K,
V, O>
-
close
- Throws:
IOException
-