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).
Hieronder staan de namen per schema met een korte omschrijving. De volledige purpose, inputs en outputs per object staan op de detailpagina's:
- Stored procedures — alle 111 procedures
- Functions — alle 66 functions
- Logs & views — logtabellen + alle 51 views met output-kolommen
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:
| Schema | Rol |
|---|---|
[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. |
Security | CREATE SCHEMA-bestanden die de runtimeschema's en rollen aanmaken (geen procs/functions). |
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
spLoadDWHis het instappunt dat ADF aanroept nadat STAGE gevuld is; het is een pure pass-through naarspHIS_InsertAndUpdate(de oudespUpdateETL_EndDate-aanroep is uitgecommentarieerd — end-dating gebeurt nu binnenspHIS_InsertAndUpdatezelf).spMaintainLakeExternalgenereert 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 naarConfig.ProcessLog.spGenerateDbreader(geen parameters) bouwt de databaserolYres_dbreaderopnieuw op.fxGetDependenciesSQLis ondanks hetfx-voorvoegsel een stored procedure — de variant diespFindTablesBehindSQLaanroept.spRenameTargetmaakt een gewijzigde doelnaam of doelschema fysiek waar: HIS/STAGE (en bijDLde lake-boekhouding) en de surrogate keys verhuizen atomisch mee.
Schema [Change] — change management
| Procedure | Doel |
|---|---|
spAddScriptedObject | Voegt een scripted object (SP/FN/trigger/view/table) toe aan een change, met dependencies. |
spAddTable | Voegt een tabel + metadata (kolommen, keys, datatypes) toe aan een change. |
spCopyTableContent | Kopieert data tussen tabellen met kolom-mapping/casting. |
spImport | Importeert changes vanuit JSON in het change-systeem. |
spInstall | Installeert een change in de doelomgeving (uitvoeren / SQL printen / impactanalyse). |
spMaintain | ADD/UPDATE/DELETE van een change. |
spMaintainProject | ADD/UPDATE/DELETE van een project. |
spRelease | Released een change na dependency-validatie. |
Schema [Monitoring] — laadstatus
spWriteLoadStatus
spWriteLoadStatusis de centrale laadstatus-logger (16 parameters, incl.@LatestRecord). Hij schrijftLS_Pipeline(bij Start workflow/Start load) en altijdLS_Trans, en zetLoadLog.LoadStatusop 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;spAdaptiveIndexDefragdoet het index-onderhoud.spApplyRetentionPolicypast het retentiebeleid uitMonitoring.RetentionPolicygebatcht toe op de logtabellen (aangeroepen door de ADF-pipelineMaintenance Retention YRES).
Schema [Expose] — reporting & RBAC
spMaintainObjects · spMaintainRoles · spMaintainRoleAssignment · spMaintainRoleContent · spApplyRoleContent · spMaintainUsers · spRebuildObjects
spMaintainRoleContentkoppelt een rol aan een exposed object én zet de bijbehorendeGRANT/REVOKE SELECTin één transactie;spApplyRoleContentis de idempotente reconciler die de rechten op de[Exposed]-views na elke rebuild weer exact in lijn brengt metExpose.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 achtervwExtractor: per actieve brontabel bouwt hij het extract-commando, de doelschema's, hetDeltaScripten dePackageSize. Let op:PackageSizeis een outputkolom, geen parameter.fxDeltaOrWherebouwt het delta-WHERE-fragment voor dialecten zonderCASE/COALESCE(zoals SOQL).fxGetActualTargetNamelost de fysieke doeltabelnaam op viaUsedTables.ActualTableName(met de historischeCONCAT_WS-regel als fallback).fxLakeFeedColumnslost 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 (standaardODSvoor HIS,STAGEvoor STAGE).fxGetSetting(@SettingName)leestConfig.Settings.fxAddTransactionalTryCatchwikkelt dynamische SQL in één all-or-nothing-transactie (XACT_ABORT+ TRY/CATCH met rollback).fxCheckLicenseCorebevat de volledige licentievalidatie;fxCheckLicenseis 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) enfxWorkflowHeartbeat(laatste levensteken van een workflow-run).
[Change]
fxGetChangeIsOpen · fxGetLastestChangeIdFor · fxGetLatestOpenChange · fxGetReleasedJson · fxGetTableDefinition · fxGetTableTypeDefinition · fxMockDelete · fxPossibleChanges
De naam
fxGetLastestChangeIdForis 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_Historybij 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 drievw*Management/vwObjectAlterations-views komen uitConfig.EventLog.
[LoadManagement]
vwExtractor · vwDictionary · vwInitialDictionary · vwLatestLoad · vwUsedTables · vwUsedColumns · vwUsedODSTablesAndColumns · vwUnusedTables · vwViewPersistence · vwViewsAndColumns · gegenereerde <Target>_IncArchive-archiefviews
vwExtractoris 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
vwActiveScalingRequeststoont de openstaande service-tier-scalingverzoeken waarvan de aanvragende workflow nog een heartbeat geeft;vwLiveWorkloadstoont de workflow-runs die nog werk in uitvoering hebben. Beide voeden de arbitrage inConfig.spSetDatabaseServiceTier.
[Change]
vwLogs
vwLogsis de leesbare activiteitenfeed per change: de laatstespRelease-/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-viewvwYresChecksUNION't ze en berekent deSolutionID.
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/vwErrLst30Daystonen de defragmentatiefouten;vwLastRunLogde laatste defrag-run; envwRandomexposeertRAND()zodat functions er toch bij kunnen.
Logtabellen
De monitoringviews lezen uit deze ruwe logtabellen:
| Tabel | Inhoud |
|---|---|
[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). |
[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.