Staging-tabeller er undervurdert fordi de ikke synes i frontend. Likevel kan de være forskjellen på en kontrollert import og en produksjonsfeil som først oppdages når brukerne ser ødelagt innhold.

Flyt fra importfil via staging-tabell til produksjonstabeller
Staging gir innhold en kontrollsone før det skrives til produksjonstabeller.

I publiseringssystemer kommer data fra mange steder: skjemaer, SQL-patcher, CSV-filer, migreringer, import fra eldre systemer og redaksjonelle verktøy. Hvis alt skrives direkte til produksjonstabeller, må hver import være perfekt. Det er sjelden realistisk.

Hva er en staging-tabell?

En staging-tabell er en midlertidig eller intern tabell der data lander før de flyttes videre. Den kan ha færre constraints enn produksjonstabellen, eller ekstra felt for importstatus, feilmelding, kilde og tidspunkt.

Poenget er ikke å duplisere systemet. Poenget er å ha et sted der data kan kontrolleres før de blir synlige eller kobles til viktige relasjoner.

Staging gjør feil synlige tidligere

En import kan inneholde tomme titler, ugyldige datoer, feil kategorier, manglende sluger eller tekst med feil tegnsett. Hvis dette går direkte inn i produksjon, kan frontend begynne å feile eller vise uferdig innhold. I staging kan slike feil merkes før de flyttes videre.

Validering kan skrives i SQL

Staging-tabeller gjør det mulig å kjøre egne kontrollspørringer. Man kan finne dubletter, manglende kategorier eller uvanlig korte artikler:

SELECT slug, COUNT(*) AS duplicates
FROM staging_articles
GROUP BY slug
HAVING COUNT(*) > 1;

Slike kontroller er enkle, men effektive. De gjør datakvalitet til en del av importprosessen, ikke noe man håper å oppdage manuelt.

Staging beskytter produksjonstabeller

Produksjonstabeller bør ha strengere regler. De bør beskytte relasjoner, unike nøkler og viktige felt. Staging kan være mer fleksibel, men overføringen fra staging til produksjon bør være kontrollert og dokumentert.

Når staging er verdt bryet

Staging er spesielt nyttig når importen er stor, når data kommer fra eksterne kilder, når felt må normaliseres, eller når man skal oppdatere mange rader samtidig. For små manuelle endringer er det ofte nok med en vanlig patch og backup.

WEBoracle-vurdering

For WEBoracle kan staging være nyttig ved import av artikler, tutorials, scriptbibliotek og taggkoblinger. Det kan også brukes når eldre innhold skal ryddes eller når mange nye fagartikler skal legges inn samtidig.

Konklusjon

Staging-tabeller gjør ikke systemet mer komplisert for brukeren. De gjør det tryggere for utvikleren. Når data får et kontrollpunkt før produksjon, blir det lettere å oppdage feil, validere kvalitet og dokumentere importen.

Kilder og videre lesning

  1. MySQL 8.4 Reference Manual: LOAD DATA Statement
  2. MySQL 8.4 Reference Manual: Data Manipulation Statements
  3. MySQL 8.4 Reference Manual: COMMIT, ROLLBACK, and AUTOCOMMIT