API-referentie

De gegenereerde referentie hierboven (wanneer Scamander-MDIF is geïnstalleerd in de buildomgeving) is de gezaghebbende, altijd actuele bron van docstrings, methode-signatures en parameters, georganiseerd per package. De samenvattingen hieronder zijn een handmatig bijgehouden overzicht op hoog niveau van waar elk onderdeel voor dient — volg voor de exacte signatures de links hierboven.

Platform

scamander.processor.platform.Platform is het startpunt voor elke MDIF-pipeline: instantieer het en het detecteert automatisch de runtime en retourneert de juiste subclass (Databricks of Fabric). Het verpakt de platformspecifieke onderdelen van ingestie — configbestanden lezen, bestanden controleren en verplaatsen, Delta-tabellen aanmaken en beschrijven (inclusief upserts en SCD Type-2-historie), en gestructureerd loggen — achter één consistente interface.

Databricks en Fabric

Databricks en Fabric breiden beide Platform uit met de onderdelen die per runtime verschillen. Databricks voegt toegang toe tot het Databricks Utilities-object en volledige ondersteuning voor PRIMARY KEY/FOREIGN KEY-constraints bij het aanmaken van tabellen. Fabric voegt Lakehouse-detectie en compatibiliteitscontroles toe, en zet OneLake-paden om naar lokale mountpaden.

Bronconnectoren

Elke connector — CSV, JSON, Oracle, PostgreSQL, SQL Server, Lakehouse — deelt één methode: df = connector.connect(). Elke connector leest zijn bron waar mogelijk via Spark’s eigen readers, of via JDBC voor de databasebronnen. Zie Ondersteunde brontypes hieronder voor welke config.source.type-string welke connector selecteert.

Transformer

scamander.transformations.Transformer is een fluent, chainbare builder die het volledige bronze→silver→gold-pad dekt: type-casting, opschonen (trimmen, hernoemen, deduplicatie), joins, aggregaties, afgeleide kolommen en pivots. Elke methode retourneert self om te chainen, behalve validate(), die terminaal is. Het sluit ook aan op anonimisering (.anonymize(config)) en kwaliteitsvalidatie (.validate(config)). De onderliggende cleaning-/enrichment-/SCD-functies zijn ook beschikbaar als losstaande pure functies voor gebruik buiten de builder.

QualityChecker en QualityReporter

QualityChecker voert Great Expectations-suites uit tegen een Spark DataFrame met behulp van een tijdelijke in-memory context — geen GE-project of bestandssysteemopslag nodig — en kan een uitzondering opwerpen bij falen. QualityReporter bewaart de historie van een run, en eventuele afwijkende rijen, in Delta-tabellen voor latere inspectie. Zie de tabel met expectation-types in Gebruikshandleiding voor de configkant van kwaliteitssuites.

Anonymizer

scamander.anonymization.Anonymizer past een declaratieve set anonimiseringsregels toe — hash, mask, redact, generalize, encrypt, fake — op een DataFrame, aangestuurd door een AnonymizationConfig. Het sluit direct aan op de Transformer-chain via .anonymize(config).

Utils

scamander.utils bevat kleine, alleen-stdlib bestandssysteemhelpers: veilig archieven uitpakken, en recursief een map met JSON-bestanden inlezen als typed records.

Loggers

HumanLogger schrijft naar stdout voor interactief/console-gebruik; MachineLogger schrijft gestructureerde logregels naar een Delta-tabel voor latere query’s. Beide delen dezelfde levelmethoden (debug, info, warning, error, critical, exception) en zijn sessie- en aanroepfunctie-bewust.

OAuth2Session

scamander.api.oauth2_session.OAuth2Session breidt requests.Session uit met automatische OAuth 2.0 client-credentials tokenvernieuwing, zodat REST API-aanroepen hierdoor nooit handmatig tokens hoeven te beheren.

Secret providers

scamander.secrets abstraheert het ophalen van secrets achter één interface — geef een willekeurige provider door aan Platform(secret_provider=...). Er zijn backends beschikbaar voor HashiCorp Vault, Azure Key Vault en Databricks secret scopes.

Ondersteunde brontypes

config.source.type

Connector-class

Status

"csv"

CsvConnector

Stabiel

"json"

JsonConnector

Stabiel

"oracle"

OracleConnector

Stabiel

"postgresql"

PostgresConnector

Stabiel

"sql"

SqlServerConnector

In ontwikkeling

"LakeHouse"

LakeHouseConnector

In ontwikkeling

Datatype-mapping

Typestrings van bronsystemen in metadata-configs worden door Platform.map_datatype genormaliseerd naar Delta Lake-types. De mapping is bewust breed zodat configbestanden native typenamen van bronsystemen direct kunnen gebruiken, inclusief Oracle-, SQL Server- en PostgreSQL-types.

Geaccepteerde brontypes

Delta-/Spark SQL-type

VARCHAR, NVARCHAR, CHAR, NCHAR, TEXT, NTEXT, STRING, UNIQUEIDENTIFIER, UUID, JSON, XML

STRING

VARCHAR2, NVARCHAR2, CLOB, NCLOB, LONG (Oracle)

STRING

XMLTYPE, ROWID, UROWID, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND (Oracle)

STRING

BOOLEAN, BOOL, BIT

BOOLEAN

TINYINT, BYTE

TINYINT

SMALLINT

SMALLINT

INT, INTEGER

INT

BIGINT

BIGINT

REAL, FLOAT, BINARY_FLOAT (Oracle)

FLOAT

DOUBLE, FLOAT8, BINARY_DOUBLE (Oracle)

DOUBLE

NUMERIC, DECIMAL, MONEY, SMALLMONEY, NUMBER (Oracle)

DECIMAL(precision, scale)

DATE

DATE

DATETIME, DATETIME2, SMALLDATETIME, TIMESTAMP, TIME, DATETIMEOFFSET

TIMESTAMP

TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE (Oracle)

TIMESTAMP

BINARY, VARBINARY, IMAGE

BINARY

RAW, LONG RAW, BLOB, BFILE (Oracle)

BINARY

Alles wat niet wordt herkend

STRING

Voor DECIMAL-/NUMBER-kolommen worden precision en scale gelezen uit de kolom-metadatadict en standaard op (10, 0) gezet indien niet opgegeven.

SCD Type-2 historietracking

Door "track_history": true in te stellen in een metadata-config voegt create_empty_table_from_metadata automatisch vijf SCD Type-2 historiekolommen toe aan de gegenereerde DDL:

Kolom

Delta-type

Beschrijving

HashSleutel

STRING NOT NULL

SHA-256-hash van de natural-key-kolommen — identificeert een entiteitsversie uniek

HashWaarde

STRING NOT NULL

SHA-256-hash van alle gevolgde attribuutkolommen — verandert wanneer een attribuut verandert

GeldigVan

TIMESTAMP NOT NULL

Begin van de geldigheidsperiode voor deze recordversie

GeldigTot

TIMESTAMP

Einde van de geldigheidsperiode; NULL betekent dat het record momenteel actief is

IsActief

BOOLEAN NOT NULL

true voor de huidige, actieve versie van elke entiteit

Gebruik apply_scd2_merge (zie Gebruikshandleiding) om de merge automatisch te draaien. Voor een handmatige merge: bereken HashSleutel uit de key-kolommen en zoek de actieve rij op (IsActief = true); bereken HashWaarde uit de attribuutkolommen en vergelijk met de opgeslagen hash; stel bij een wijziging GeldigTot = now()/IsActief = false in op de oude rij en voeg een nieuwe rij toe met GeldigVan = now()/IsActief = true.