Interface DatabaseHistory

    • Field Detail

      • NAME

        static final Field NAME
      • SKIP_UNPARSEABLE_DDL_STATEMENTS

        static final Field SKIP_UNPARSEABLE_DDL_STATEMENTS
      • STORE_ONLY_CAPTURED_TABLES_DDL

        static final Field STORE_ONLY_CAPTURED_TABLES_DDL
      • STORE_ONLY_MONITORED_TABLES_DDL

        @Deprecated
        static final Field STORE_ONLY_MONITORED_TABLES_DDL
        Deprecated.
      • DDL_FILTER

        static final Field DDL_FILTER
    • Method Detail

      • configure

        void configure​(Configuration config,
                       HistoryRecordComparator comparator,
                       DatabaseHistoryListener listener,
                       boolean useCatalogBeforeSchema)
        Configure this instance.
        Parameters:
        config - the configuration for this history store
        comparator - the function that should be used to compare history records during recovery; may be null if the default comparator is to be used
        listener - TODO
        useCatalogBeforeSchema - true if the parsed string for a table contains only 2 items and the first should be used as the catalog and the second as the table name, or false if the first should be used as the schema and the second as the table name
      • start

        void start()
        Start the history.
      • record

        void record​(Map<String,​?> source,
                    Map<String,​?> position,
                    String databaseName,
                    String ddl)
             throws DatabaseHistoryException
        Record a change to the schema of the named database, and store it in the schema storage.
        Parameters:
        source - the information about the source database; may not be null
        position - the point in history where these DDL changes were made, which may be used when recovering the schema to some point in history; may not be null
        databaseName - the name of the database whose schema is being changed; may be null
        ddl - the DDL statements that describe the changes to the database schema; may not be null
        Throws:
        DatabaseHistoryException - if the record could not be written
      • recover

        default void recover​(Offsets<?,​?> offsets,
                             Tables schema,
                             DdlParser ddlParser)
        Recover the database schema to a known point in its history. Note that it is possible to recover the database schema to a point in history that is earlier than what has been recorded. Likewise, when recovering to a point in history later than what was recorded, the database schema will reflect the latest state known to the history.
        Parameters:
        offsets - the map of information about the source database to corresponding point in history at which database schema should be recovered
        schema - the table definitions that should be changed to reflect the database schema at the desired point in history; may not be null
        ddlParser - the DDL parser that can be used to apply DDL statements to the given schema; may not be null
      • stop

        void stop()
        Stop recording history and release any resources acquired since #configure(Configuration, HistoryRecordComparator, DatabaseHistoryListener).
      • exists

        boolean exists()
        Determines if the database history entity exists; i.e. the storage must have been initialized and the history must have been populated.
      • storageExists

        boolean storageExists()
        Determines if the underlying storage exists (e.g. a Kafka topic, file or similar). Note: storage may exist while history entities not yet written, see exists()
      • initializeStorage

        void initializeStorage()
        Called to initialize permanent storage of the history.
      • storeOnlyCapturedTables

        boolean storeOnlyCapturedTables()
      • skipUnparseableDdlStatements

        boolean skipUnparseableDdlStatements()