diepvries.deserializers.snowflake_deserializer module¶
Deserializer for Snowflake.
- class diepvries.deserializers.snowflake_deserializer.DatabaseConfiguration(database, user, warehouse, account, password=None, authenticator='SNOWFLAKE')¶
Bases:
objectNeeded fields to create a Snowflake database connection.
- __post_init__()¶
Validate input for optional attributes.
-
account:
str¶
-
authenticator:
Optional[str] = 'SNOWFLAKE'¶
-
database:
str¶
-
password:
Optional[str] = None¶
-
user:
str¶
-
warehouse:
str¶
- class diepvries.deserializers.snowflake_deserializer.SnowflakeDeserializer(target_schema, target_tables, database_configuration, driving_keys=None, role_playing_hubs=None)¶
Bases:
objectDeserialize a Data Vault model, based on Snowflake system metadata tables.
The deserialization process will consist in converting the list of target table names to a list of Table instances.
Each Table will have a list of Field instances (representing database table columns).
- __init__(target_schema, target_tables, database_configuration, driving_keys=None, role_playing_hubs=None)¶
Instantiate a SnowflakeDeserializer.
Besides setting __init__ arguments as class attributes, it also creates a Snowflake database connection.
Both target_tables and fields have their own setters (check @target_tables.setter and @fields.setter for more detail).
- Parameters:
target_schema (
str) – Schema where the Data Vault model is stored.target_tables (
List[str]) – Names of the tables that should be deserialized.database_configuration (
DatabaseConfiguration) – Holds all properties needed to create a Snowflake database connection.driving_keys (
Optional[List[DrivingKeyField]]) – List of fields that should be used as driving keys in current model’s effectivity satellites (if applicable).role_playing_hubs (
Optional[Dict[str,str]]) – List of tables that should be created as RolePlayingHub objects. Each dictionary has the role playing hub as key and the parent table as value.
- __str__()¶
Representation of a SnowflakeDeserializer object as a string.
This helps the tracking of logging events per entity.
- Return type:
str- Returns:
Logger string format.
- property deserialized_target_tables: List[DataVaultTable]¶
Deserialize all target tables passed as argument during instance creation.
- Returns:
List of deserialized target tables.