Class DuckDBDatabaseStatsExtractor

java.lang.Object
org.odpi.openmetadata.frameworks.auditlog.AuditLoggingBase
org.odpi.openmetadata.adapters.connectors.duckdb.survey.DuckDBDatabaseStatsExtractor

public class DuckDBDatabaseStatsExtractor extends AuditLoggingBase
DuckDBDatabaseStatsExtractor gathers statistics about the schemas, tables and columns of a DuckDB database using DuckDB's own catalog metadata table functions (duckdb_schemas(), duckdb_tables() and duckdb_columns()) and converts them into the same vendor-neutral measurement beans used by the other database connector suites (RelationalDataManagerMeasurement, RelationalSchemaMeasurement, RelationalTableMeasurement and RelationalColumnMeasurement), tagged with the reused SurveyDatabaseAnnotationType constants.
DuckDB, being embedded, does not expose the same workload statistics as a client/server database (there is no equivalent of Postgres's pg_stat_database/pg_table_size/pg_column_size). Where DuckDB does not provide an equivalent measurement, the corresponding field is simply left at its default value.

The connections passed to it are expected to be in auto-commit mode, so that every query is its own short transaction. Each schema is surveyed with its own set of queries, and a query that fails is logged and skipped, so one problem schema leaves a gap in the results rather than ending the survey.
  • Constructor Details

    • DuckDBDatabaseStatsExtractor

      public DuckDBDatabaseStatsExtractor(List<String> validDatabases, SurveyActionServiceConnector surveyActionServiceConnector)
      Constructor sets up the list of databases to process and the connection to the database. Every schema in those databases is surveyed.
      Parameters:
      validDatabases - list of database names
      surveyActionServiceConnector - calling connector
    • DuckDBDatabaseStatsExtractor

      public DuckDBDatabaseStatsExtractor(List<String> validDatabases, List<String> excludedSchemas, List<String> includedSchemas, SurveyActionServiceConnector surveyActionServiceConnector, AuditLog auditLog, String surveyActionServiceName)
      Constructor sets up the list of databases to process, the schemas within them to survey, and the connection to the database.
      Parameters:
      validDatabases - list of database names
      excludedSchemas - schemas to leave out (null means none are excluded)
      includedSchemas - the only schemas to survey (null means all that are not excluded); takes precedence over excludedSchemas
      surveyActionServiceConnector - calling connector
      auditLog - logging destination for queries that fail (may be null)
      surveyActionServiceName - name of the calling survey action service, for the audit log