Class FlinkDatabaseSchemaHistory
- java.lang.Object
-
- org.apache.flink.cdc.debezium.internal.FlinkDatabaseSchemaHistory
-
- All Implemented Interfaces:
io.debezium.relational.history.DatabaseHistory
public class FlinkDatabaseSchemaHistory extends Object implements io.debezium.relational.history.DatabaseHistory
TheFlinkDatabaseSchemaHistoryonly stores the latest schema of the monitored tables. When recovering from the checkpoint, it should apply all the tables to theDatabaseSchema, which doesn't need to replay the history anymore.Considering the data structure maintained in the
FlinkDatabaseSchemaHistoryis much different from theFlinkDatabaseHistory, it's not compatible with theFlinkDatabaseHistory. Because it only maintains the latest schema of the table rather than all history DDLs, it's useful to prevent OOM when meet massive history DDLs.
-
-
Field Summary
Fields Modifier and Type Field Description static StringDATABASE_HISTORY_INSTANCE_NAME
-
Constructor Summary
Constructors Constructor Description FlinkDatabaseSchemaHistory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconfigure(io.debezium.config.Configuration config, io.debezium.relational.history.HistoryRecordComparator comparator, io.debezium.relational.history.DatabaseHistoryListener listener, boolean useCatalogBeforeSchema)booleanexists()voidinitializeStorage()static booleanisCompatible(Collection<SchemaRecord> records)Determine whether theFlinkDatabaseSchemaHistoryis compatible with the specified state.voidrecord(Map<String,?> source, Map<String,?> position, String databaseName, String ddl)voidrecord(Map<String,?> source, Map<String,?> position, String databaseName, String schemaName, String ddl, io.debezium.relational.history.TableChanges changes)voidrecover(Map<String,?> source, Map<String,?> position, io.debezium.relational.Tables schema, io.debezium.relational.ddl.DdlParser ddlParser)voidrecover(Map<Map<String,?>,Map<String,?>> offsets, io.debezium.relational.Tables schema, io.debezium.relational.ddl.DdlParser ddlParser)booleanskipUnparseableDdlStatements()voidstart()voidstop()booleanstorageExists()booleanstoreOnlyCapturedTables()
-
-
-
Field Detail
-
DATABASE_HISTORY_INSTANCE_NAME
public static final String DATABASE_HISTORY_INSTANCE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
configure
public void configure(io.debezium.config.Configuration config, io.debezium.relational.history.HistoryRecordComparator comparator, io.debezium.relational.history.DatabaseHistoryListener listener, boolean useCatalogBeforeSchema)- Specified by:
configurein interfaceio.debezium.relational.history.DatabaseHistory
-
start
public void start()
- Specified by:
startin interfaceio.debezium.relational.history.DatabaseHistory
-
record
public void record(Map<String,?> source, Map<String,?> position, String databaseName, String ddl) throws io.debezium.relational.history.DatabaseHistoryException
- Specified by:
recordin interfaceio.debezium.relational.history.DatabaseHistory- Throws:
io.debezium.relational.history.DatabaseHistoryException
-
record
public void record(Map<String,?> source, Map<String,?> position, String databaseName, String schemaName, String ddl, io.debezium.relational.history.TableChanges changes) throws io.debezium.relational.history.DatabaseHistoryException
- Specified by:
recordin interfaceio.debezium.relational.history.DatabaseHistory- Throws:
io.debezium.relational.history.DatabaseHistoryException
-
recover
public void recover(Map<String,?> source, Map<String,?> position, io.debezium.relational.Tables schema, io.debezium.relational.ddl.DdlParser ddlParser)
- Specified by:
recoverin interfaceio.debezium.relational.history.DatabaseHistory
-
recover
public void recover(Map<Map<String,?>,Map<String,?>> offsets, io.debezium.relational.Tables schema, io.debezium.relational.ddl.DdlParser ddlParser)
- Specified by:
recoverin interfaceio.debezium.relational.history.DatabaseHistory
-
stop
public void stop()
- Specified by:
stopin interfaceio.debezium.relational.history.DatabaseHistory
-
exists
public boolean exists()
- Specified by:
existsin interfaceio.debezium.relational.history.DatabaseHistory
-
storageExists
public boolean storageExists()
- Specified by:
storageExistsin interfaceio.debezium.relational.history.DatabaseHistory
-
initializeStorage
public void initializeStorage()
- Specified by:
initializeStoragein interfaceio.debezium.relational.history.DatabaseHistory
-
storeOnlyCapturedTables
public boolean storeOnlyCapturedTables()
- Specified by:
storeOnlyCapturedTablesin interfaceio.debezium.relational.history.DatabaseHistory
-
skipUnparseableDdlStatements
public boolean skipUnparseableDdlStatements()
- Specified by:
skipUnparseableDdlStatementsin interfaceio.debezium.relational.history.DatabaseHistory
-
isCompatible
public static boolean isCompatible(Collection<SchemaRecord> records)
Determine whether theFlinkDatabaseSchemaHistoryis compatible with the specified state.
-
-