diepvries.table module

Data Vault table.

class diepvries.table.DataVaultTable(schema, name, fields, *_args, **_kwargs)

Bases: Table

A Data Vault table.

Abstract class DataVaultTable. It holds common properties between all subclasses: Hub, Link and Satellite.

__init__(schema, name, fields, *_args, **_kwargs)

Instantiate a Data Vault table.

Besides setting each __init__ argument as instance attributes, it also performs the following actions:

  • Calculate fields_by_name: dictionary with each Field as values and its name as key;

  • Calculate fields_by_role: dictionary with a list of Field as values and its role as key;

  • Check if table structure is valid: in this class, only generic checks (applicable to all Table subclasses). Each subclass will call super()._validate before starting each specific test (only applicable to instances of the subclass).

Parameters:
  • schema (str) – Data Vault schema name.

  • name (str) – Data Vault table name.

  • fields (List[Field]) – List of fields that this table holds.

  • _args – Unused here, useful for children classes.

  • _kwargs – Unused here, useful for children classes.

property fields: List[Field]

Get fields list for the current table.

Returns:

Fields for the current table.

property fields_by_name: Dict[str, Field]

Get a dictionary of fields, indexed by their names.

Returns:

Dictionary of fields, indexed by their names.

property fields_by_role: Dict[FieldRole, List[Field]]

Get a dictionary of fields, indexed by their roles.

See _fields_by_role_as_dict.

Returns:

Dictionary of fields, indexed by their roles.

property hashkey_sql: str

Get SQL expression to calculate hashkey fields.

The hashkey formula is the following: MD5(business_key_1 + |~~| + business_key_n + |~~| child_key_1).

Returns:

Hashkey SQL expression.

abstract property loading_order: int

Get loading order.

abstract property sql_load_statement: str

Get SQL script to load current table.

Returns:

SQL script to load current table.

property sql_placeholders: Dict[str, str]

Get common placeholders needed to generate SQL for this Table.

Returns:

Common placeholders to be used in all Table SQL scripts.

staging_table: StagingTable
class diepvries.table.StagingTable(schema, name, extract_start_timestamp)

Bases: Table

A table used for staging.

__init__(schema, name, extract_start_timestamp)

Instantiate a StagingTable.

Parameters:
  • schema (str) – Schema name.

  • name (str) – Table name.

  • extract_start_timestamp (datetime) – Extract start timestamp.

class diepvries.table.Table(schema, name, *_args, **_kwargs)

Bases: ABC

A generic table.

Abstract class Table. Holds common properties between all database tables.

__init__(schema, name, *_args, **_kwargs)

Instantiate a table.

Parameters:
  • schema (str) – Schema name.

  • name (str) – Table name.

  • _args – Unused, useful for child classes.

  • _kwargs – Unused, useful for child classes.

__str__()

Representation of a Table object as a string.

This helps the tracking of logging events per entity.

Return type:

str

Returns:

String representation of a Table.