Ga naar hoofdinhoud

SQL Interaction

Elke Yres-database (IRIS_DWH) is te beheren via een SQL-endpoint (SSMS, Azure Data Studio). Advies: gebruik voor de meeste taken de webapp. Sommige functies zijn alleen via SQL beschikbaar, en zonder frontend-abonnement houdt het SQL-endpoint bestaande bronnen beschikbaar. Nieuwe bronnen toevoegen kan niet via SQL — dat loopt altijd via de wizard in de webapp (die de bijbehorende ADF-pipelines genereert).

Deze pagina is de catalogus

Hieronder staan de namen per schema met een korte omschrijving. De volledige purpose, inputs en outputs per object staan op de detailpagina's:

Overzicht: schema's en aantallen

IRIS_DWH bevat 111 stored procedures, 66 functions en 51 views (stand augustus 2026 — de aantallen groeien per release), verdeeld over deze schema's:

SchemaRol
[LoadManagement]De laadengine: bronnen, tabellen, STAGE→HIS-merge (SCD2), materialisatie.
[Config]Instellingen (Settings), logging, metadata-onderhoud, database-tuning.
[Change]Change management voor DTAP (projecten, changes, release, install).
[Monitoring]Laadstatus-logging (LS_Pipeline, LS_Trans) en monitoringviews.
[Maintenance]Index-onderhoud, sp_Blitz-diagnostiek, gezondheidschecks.
[Expose]Reporting/RBAC: rollen, gebruikers en exposed objecten beheren.
[Metadata]Lineage en afhankelijkheden tussen objecten.
[oData]OData-helpers voor het exposeren van data.
[LAKE]Slanke administratie per tabel voor de lake feed — alleen hashes en datums, geen businessdata. De tabellen worden door de laadmotor zelf aangemaakt.
[Test]De meegeleverde regressietestsuite: framework, per-object-tests en runhistorie.
[dbo]Algemene utilities en onderhoudsroutines.
SecurityCREATE SCHEMA-bestanden die de runtimeschema's en rollen aanmaken (geen procs/functions).
Code zegt nog "IRIS"

Het product heet Yres, maar in de database staan veel identifiers nog op IRIS (IRIS_DWH, Iris_dbreader, het bronbestand vwIrisChecks.sql). Object- en kolomnamen hieronder zijn letterlijk zoals ze in de database voorkomen.

Stored procedures

Schema [LoadManagement] — laden

spLoadDWH · spHIS_InsertAndUpdate · spHIS_TruncateTable · spMaterializeViews · spMaterializeViewToTable · spMaintainPersistView · spCheckKeyAndRowHash · spRegenerateSurrogateKeys · spGetRowCount · spGetColumnMapping · spGenerateTypeMapping · spFindTablesBehindSQL · spFillDictionary_AFAS · spFillDictionary_oDATA · spFillTable_Json · spFillTable_Monday · spMaintainSource · spMaintainTable · spMaintainFiles · spMaintainFilesInDictionary · spMaintainRestService · spMaintainTrigger · spMaintainLakeExternal · spUpdateETL_EndDate

spLoadDWH is het instappunt dat ADF aanroept nadat STAGE gevuld is; het is een pure pass-through naar spHIS_InsertAndUpdate (de oude spUpdateETL_EndDate-aanroep is uitgecommentarieerd — end-dating gebeurt nu binnen spHIS_InsertAndUpdate zelf). spMaintainLakeExternal genereert en onderhoudt de leesobjecten (external tables + views in [DL]) over de Parquet change feed voor DL-only-targets.

Schema [Config] — configuratie, logging & metadata

spAddFrameWorkColumns · spCompareMetadata · spCreateTablesFromDictionary · spDeleteTablesFromDB · spEnableColumnstore · spEnableMemoryOptimization · spFillServices_SAC · spGetDependenciesSQL · fxGetDependenciesSQL · spGenerateDbreader · spRenameTarget · spSetDatabaseParameter · spSetDatabaseServiceTier · spUpdateRefreshToken · spUpdateTablesFromDictionary · spWriteCrash · spWriteDump · spWriteError · spWriteFullLog · spWriteLog · spWriteMessage · spWriteWarning

De vier "message-class" schrijvers (spWriteMessage / spWriteWarning / spWriteError / spWriteLog) schrijven naar Config.ProcessLog. spGenerateDbreader (geen parameters) bouwt de databaserol Yres_dbreader opnieuw op. fxGetDependenciesSQL is ondanks het fx-voorvoegsel een stored procedure — de variant die spFindTablesBehindSQL aanroept. spRenameTarget maakt een gewijzigde doelnaam of doelschema fysiek waar: HIS/STAGE (en bij DL de lake-boekhouding) en de surrogate keys verhuizen atomisch mee.

Schema [Change] — change management

ProcedureDoel
spAddScriptedObjectVoegt een scripted object (SP/FN/trigger/view/table) toe aan een change, met dependencies.
spAddTableVoegt een tabel + metadata (kolommen, keys, datatypes) toe aan een change.
spCopyTableContentKopieert data tussen tabellen met kolom-mapping/casting.
spImportImporteert changes vanuit JSON in het change-systeem.
spInstallInstalleert een change in de doelomgeving (uitvoeren / SQL printen / impactanalyse).
spMaintainADD/UPDATE/DELETE van een change.
spMaintainProjectADD/UPDATE/DELETE van een project.
spReleaseReleased een change na dependency-validatie.

Schema [Monitoring] — laadstatus

spWriteLoadStatus

spWriteLoadStatus is de centrale laadstatus-logger (16 parameters, incl. @LatestRecord). Hij schrijft LS_Pipeline (bij Start workflow/Start load) en altijd LS_Trans, en zet LoadLog.LoadStatus op RUNNING/SUCCEEDED/FAILED.

Schema [Maintenance] — onderhoud & diagnostiek

spAdaptiveIndexDefrag · spApplyRetentionPolicy · spImplementSolution · spInEachDb · spDatabaseRestore · spAllNightLog · spAllNightLog_Setup · spBlitz · spBlitzAnalysis · spBlitzBackups · spBlitzCache · spBlitzFirst · spBlitzIndex · spBlitzQueryStore · spBlitzWho

De spBlitz*-familie is de bekende open-source SQL Server-diagnostiekset; spAdaptiveIndexDefrag doet het index-onderhoud. spApplyRetentionPolicy past het retentiebeleid uit Monitoring.RetentionPolicy gebatcht toe op de logtabellen (aangeroepen door de ADF-pipeline Maintenance Retention YRES).

Schema [Expose] — reporting & RBAC

spMaintainObjects · spMaintainRoles · spMaintainRoleAssignment · spMaintainRoleContent · spApplyRoleContent · spMaintainUsers · spRebuildObjects

spMaintainRoleContent koppelt een rol aan een exposed object én zet de bijbehorende GRANT/REVOKE SELECT in één transactie; spApplyRoleContent is de idempotente reconciler die de rechten op de [Exposed]-views na elke rebuild weer exact in lijn brengt met Expose.RoleContent.

Schema [dbo] — algemeen & onderhoud

spAdaptiveIndexDefrag_CurrentExecStats · spAdaptiveIndexDefrag_Exceptions · spAdaptiveIndexDefrag_PurgeLogs · spCopyDB · spJsonToTable · spLongPrint · spMSForEachTable · spMSForEachWorker · spRunSQL

Functions

[LoadManagement]

fxExtractor · fxDeltaOrWhere · fxGetActualTablename · fxGetActualTargetName · fxGetDataType · fxGetKeyColumns · fxGetKeyHashColumns · fxGetRowColumns · fxGetRowHashColumns · fxGetOptimized · fxGetStoreType · fxGetSurrogate · fxLakeFeedColumns · fxPredictKeyColumns · fxPredictTableName

fxExtractor (@LoadFilter, @LoadType) is de hartfunctie achter vwExtractor: per actieve brontabel bouwt hij het extract-commando, de doelschema's, het DeltaScript en de PackageSize. Let op: PackageSize is een outputkolom, geen parameter. fxDeltaOrWhere bouwt het delta-WHERE-fragment voor dialecten zonder CASE/COALESCE (zoals SOQL). fxGetActualTargetName lost de fysieke doeltabelnaam op via UsedTables.ActualTableName (met de historische CONCAT_WS-regel als fallback). fxLakeFeedColumns lost de kolomset van de Parquet change feed op per generatie of over alle generaties.

[Config]

fxAddTryCatch · fxAddTransactionalTryCatch · fxCheckLicenseCore · fxGetSchemaName · fxGetSession · fxGetSetting · fxResolveServiceTier · fxServiceTierLadder · fxWorkflowHeartbeat

fxGetSchemaName(@Target, 'HIS'|'STAGE') lost het runtimeschema op (standaard ODS voor HIS, STAGE voor STAGE). fxGetSetting(@SettingName) leest Config.Settings. fxAddTransactionalTryCatch wikkelt dynamische SQL in één all-or-nothing-transactie (XACT_ABORT + TRY/CATCH met rollback). fxCheckLicenseCore bevat de volledige licentievalidatie; fxCheckLicense is er een dunne wrapper omheen. De drie scaling-functions horen bij de automatische tier-scaling: fxServiceTierLadder (de DTU-tierladder als data), fxResolveServiceTier (de scaling-beslissing als pure functie) en fxWorkflowHeartbeat (laatste levensteken van een workflow-run).

[Change]

fxGetChangeIsOpen · fxGetLastestChangeIdFor · fxGetLatestOpenChange · fxGetReleasedJson · fxGetTableDefinition · fxGetTableTypeDefinition · fxMockDelete · fxPossibleChanges

De naam fxGetLastestChangeIdFor is bewust letterlijk zo overgenomen — de code zelf bevat de typefout "Lastest".

[dbo]

fxGeneratePassword · fxGetJsonCollection · fxGetJsonCollections · fxRemoveNonAlphaCharacters · fxStripCharacters · fxToDecimal · fxToProper · fxToReadableSize · fxUNIXtoDateTime · fxUTC2CET · UNQUOTENAME

[Metadata] — lineage

fxColumnUsage · fxGetDependencies · fxGetObjectTree · fxGetReferencedObjects · fxGetViewSources · fxGetViewSourcesRecursive

[Expose]

fxGenerateDefinitions · fxGetExposedViews

fxGetExposedViews(@Schema, @Name, @DataType) is de enige bron van waarheid voor de naamgeving van de ontkoppelviews in het [Exposed]-schema (<Schema>__<Name>, plus _History bij DIM4).

[oData] / [Monitoring]

oData.fxBaseResponse · oData.fxMetadataResponse · Monitoring.fxGetTableLoads

Views

[Monitoring]

vwLoads · vwMonitor · vwWorkflow · vwUsedTables · vwHisTableSize · vwAccessManagement · vwUserManagement · vwObjectAlterations

vwLoads = de per-pipeline laadtijdlijn; vwMonitor = breder (incl. gematerialiseerde views en Power BI-refreshes). De drie vw*Management/vwObjectAlterations-views komen uit Config.EventLog.

[LoadManagement]

vwExtractor · vwDictionary · vwInitialDictionary · vwLatestLoad · vwUsedTables · vwUsedColumns · vwUsedODSTablesAndColumns · vwUnusedTables · vwViewPersistence · vwViewsAndColumns · gegenereerde <Target>_IncArchive-archiefviews

vwExtractor is het contract dat ADF leest om te bepalen wat geladen moet worden: SELECT * FROM [LoadManagement].[fxExtractor](NULL, NULL).

[Config]

vwSettings · vwUserlog · vwUserLogJSON · vwObjectHistory · vwDictionaryVsHis · vwDictionaryVsStage · vwActiveScalingRequests · vwLiveWorkloads

vwActiveScalingRequests toont de openstaande service-tier-scalingverzoeken waarvan de aanvragende workflow nog een heartbeat geeft; vwLiveWorkloads toont de workflow-runs die nog werk in uitvoering hebben. Beide voeden de arbitrage in Config.spSetDatabaseServiceTier.

[Change]

vwLogs

vwLogs is de leesbare activiteitenfeed per change: de laatste spRelease-/spInstall-logregels vertaald naar statussen als Release succeeded / Installation failed.

[Metadata]

vwObjectTree · vwParameters · vwScriptedObjects · vwUserObjects · vwCustomSchemas

[Maintenance]

vwYresChecks · de modulaire subviews vwYresChecks_*

Naast de verzamelview bestaat er per checkgroep een subview (vwYresChecks_Duplicates, _Orphaned, _Inactive, _MissingConfig, _SourceConfig, _License, _DbAutomation, _Expose, _Specials); de parent-view vwYresChecks UNION't ze en berekent de SolutionID.

Gezondheidschecks-view

De health-check-view is [Maintenance].[vwYresChecks]. Het bronbestand heet nog vwIrisChecks.sql, maar het aangemaakte object is vwYresChecks. Deze view bevat het verwachte roster van instellingen en checks dat de webapp uitleest.

[dbo] — hulpviews

Negen hulpviews bij het meegeleverde index-onderhoud en de utilities: de vijf vwAvg*-views (vwAvgFragLst30Days, vwAvgLargestLst30Days, vwAvgMostUsedLst30Days, vwAvgSamplingLst30Days, vwAvgTimeLst30Days) rapporteren over de AdaptiveIndexDefrag-historie van de laatste 30 dagen; vwErrLst24Hrs/vwErrLst30Days tonen de defragmentatiefouten; vwLastRunLog de laatste defrag-run; en vwRandom exposeert RAND() zodat functions er toch bij kunnen.

Logtabellen

De monitoringviews lezen uit deze ruwe logtabellen:

TabelInhoud
[Monitoring].[LS_Pipeline]Eén rij per pipeline-run (bevat o.a. LatestRecord, ETLDate).
[Monitoring].[LS_Trans]Eén rij per micro-stap — de hoogvolume-tijdlijn die de pivotviews voeden.
[LoadManagement].[LoadLog]Duurzame status per tabel-load (RUNNING/SUCCEEDED/FAILED); join-ruggengraat van vwMonitor.
[Config].[ProcessLog]App-/proc-log (berichten en fouten).
[Config].[EventLog]DDL-/permissie-audit (bron van de access-/user-/object-views).
Verouderde view-namen

[Monitoring].[vwLoadMonitor] bestaat niet als gedeployde view. Gebruik in plaats daarvan vwLoads (pipeline-tijdlijn) of vwMonitor (breder). Verwijs nieuwe documentatie en queries naar deze twee.