schema types data warehouse modeling star snowflake schema
In deze zelfstudie worden verschillende soorten datawarehouse-schema's uitgelegd. Leer wat Star Schema & Snowflake Schema is en het verschil tussen Star Schema en Snowflake Schema:
In deze Date Warehouse-tutorials voor beginners , we hebben er diepgaand naar gekeken Dimensionaal gegevensmodel in datawarehouse in onze vorige tutorial.
In deze tutorial leren we alles over datawarehouse-schema's die worden gebruikt om datamarts (of) datawarehouse-tabellen te structureren.
software engineering interviewvragen en antwoorden pdf
Laten we beginnen!!
Doelgroep
- Datawarehouse / ETL-ontwikkelaars en testers.
- Databaseprofessionals met basiskennis van databaseconcepten.
- Databasebeheerders / big data-experts die datawarehouse / ETL-gebieden willen begrijpen.
- Afgestudeerden / Freshers die op zoek zijn naar Data Warehouse-banen.
Wat je leert:
Datawarehouse-schema
In een datawarehouse wordt een schema gebruikt om de manier te definiëren waarop het systeem met alle database-entiteiten (feitentabellen, dimensietabellen) en hun logische associatie moet worden georganiseerd.
Hier zijn de verschillende soorten schema's in DW:
- Star Schema
- Sneeuwvlok-schema
- Galaxy-diagram
- Star Cluster Schema
#1) Star Schema
Dit is het eenvoudigste en meest effectieve schema in een datawarehouse. Een feitentabel in het midden, omringd door tabellen met meerdere dimensies, lijkt op een ster in het Star Schema-model.
De feitentabel onderhoudt een-op-veel-relaties met alle dimensietabellen. Elke rij in een feitentabel is gekoppeld aan de bijbehorende dimensietabelrijen met een verwijzing naar een externe sleutel.
Vanwege de bovenstaande reden is navigatie tussen de tabellen in dit model gemakkelijk voor het opvragen van geaggregeerde gegevens. Een eindgebruiker kan deze structuur gemakkelijk begrijpen. Daarom ondersteunen alle Business Intelligence (BI) -tools het Star-schemamodel in hoge mate.
Bij het ontwerpen van sterschema's worden de dimensietabellen doelbewust gedenormaliseerd. Ze zijn breed met veel attributen om de contextuele gegevens op te slaan voor een betere analyse en rapportage.
Voordelen van Star Schema
- Query's gebruiken zeer eenvoudige joins tijdens het ophalen van de gegevens en daardoor worden de queryprestaties verbeterd.
- Het is eenvoudig om gegevens op te halen voor rapportage, op elk moment en voor elke periode.
Nadelen van Star Schema
- Als er veel wijzigingen zijn in de vereisten, wordt het niet aanbevolen om het bestaande sterschema op de lange termijn te wijzigen en opnieuw te gebruiken.
- Gegevensredundantie is meer omdat tabellen niet hiërarchisch zijn verdeeld.
Hieronder wordt een voorbeeld van een sterrenschema gegeven.
Een sterrenschema opvragen
Een eindgebruiker kan een rapport opvragen met behulp van Business Intelligence-tools. Al dergelijke verzoeken worden verwerkt door intern een reeks 'SELECT-queries' te maken. De prestaties van deze zoekopdrachten hebben invloed op de uitvoeringstijd van het rapport.
Als een zakelijke gebruiker aan de hand van het bovenstaande voorbeeld van een Star-schema wil weten hoeveel romans en dvd's er in januari 2018 in de staat Kerala zijn verkocht, kunt u de query als volgt toepassen op Star-schematabellen:
Resultaten:
Productnaam | Hoeveelheid verkocht | |
---|---|---|
7 | Iedereen kan het schema gemakkelijk begrijpen en ontwerpen. | Het schema is moeilijk te begrijpen en te ontwerpen. |
Romans | 12.702 | |
Dvd's | 32.919 |
Ik hoop dat je hebt begrepen hoe gemakkelijk het is om een Star Schema op te vragen.
# 2) Sneeuwvlokschema
Sterschema fungeert als invoer om een SnowFlake-schema te ontwerpen. Sneeuwschilfering is een proces dat alle dimensietabellen volledig normaliseert vanuit een sterschema.
De indeling van een feitentabel in het midden, omringd door meerdere hiërarchieën van dimensietabellen, ziet eruit als een Sneeuwvlok in het schemamodel Sneeuwvlok. Elke feitentabelrij is gekoppeld aan de bijbehorende dimensietabelrijen met een verwijzing naar een externe sleutel.
Bij het ontwerpen van SnowFlake-schema's worden de dimensietabellen doelbewust genormaliseerd. Vreemde sleutels worden aan elk niveau van de dimensietabellen toegevoegd om te linken naar het bovenliggende attribuut. De complexiteit van het SnowFlake-schema is recht evenredig met de hiërarchische niveaus van de dimensietabellen.
Voordelen van SnowFlake Schema:
- Gegevensredundantie wordt volledig verwijderd door nieuwe dimensietabellen te maken.
- In vergelijking met het sterschema wordt er minder opslagruimte gebruikt door de dimensietabellen van Snow Flaking.
- Het is gemakkelijk om de Snow Flaking-tabellen bij te werken (of te onderhouden).
Nadelen van SnowFlake-schema:
- Vanwege genormaliseerde dimensietabellen moet het ETL-systeem het aantal tabellen laden.
- Mogelijk hebt u vanwege het aantal toegevoegde tabellen complexe joins nodig om een query uit te voeren. Daarom zullen de prestaties van de query verslechteren.
Een voorbeeld van een Sneeuwvlokschema wordt hieronder gegeven.
De afmetingentabellen in het bovenstaande sneeuwvlokdiagram zijn genormaliseerd zoals hieronder wordt uitgelegd:
- De datumdimensie wordt genormaliseerd in driemaandelijkse, maandelijkse en wekelijkse tabellen door ID's van externe sleutels in de datumtabel te laten.
- De winkeldimensie is genormaliseerd en omvat de tabel voor Staat.
- De productdimensie wordt genormaliseerd in Merk.
- In de dimensie Klant worden de attributen die aan de stad zijn gekoppeld, verplaatst naar de nieuwe stadstabel door een externe sleutel-id achter te laten in de tabel Klant.
Op dezelfde manier kan een enkele dimensie meerdere hiërarchieniveaus onderhouden.
De verschillende niveaus van hiërarchieën uit het bovenstaande diagram kunnen als volgt worden aangeduid:
- Kwartaal-id, Maandelijkse id en Wekelijkse id's zijn de nieuwe vervangende sleutels die zijn gemaakt voor de dimensiehiërarchieën Datum en die zijn toegevoegd als externe sleutels in de dimensietabel Datum.
- Status-ID is de nieuwe surrogaatsleutel die is gemaakt voor de dimensiehiërarchie Store en deze is toegevoegd als de externe sleutel in de dimensietabel Store.
- Merk-ID is de nieuwe surrogaatsleutel die is gemaakt voor de productdimensiehiërarchie en is toegevoegd als de externe sleutel in de productdimensietabel.
- Plaats-ID is de nieuwe vervangende sleutel die is gemaakt voor de dimensiehiërarchie Klant en deze is toegevoegd als de externe sleutel in de dimensietabel Klant.
Een sneeuwvlokschema opvragen
We kunnen ook met SnowFlake-schema's hetzelfde soort rapporten voor eindgebruikers genereren als die van sterschemastructuren. Maar de vragen zijn hier een beetje ingewikkeld.
Uit het bovenstaande SnowFlake-schemavoorbeeld gaan we dezelfde query genereren die we hebben ontworpen tijdens het Star-schema-queryvoorbeeld.
Als een zakelijke gebruiker wil weten hoeveel romans en dvd's er in januari 2018 in de staat Kerala zijn verkocht, kunt u de query als volgt toepassen op SnowFlake-schematabellen.
Resultaten:
Productnaam | Hoeveelheid verkocht |
---|---|
Romans | 12.702 |
Dvd's | 32.919 |
Punten om te onthouden bij het opvragen van Star (of) SnowFlake-schematabellen
Elke vraag kan worden ontworpen met de onderstaande structuur:
SELECT-clausule:
- De attributen die zijn gespecificeerd in de select-clausule worden weergegeven in de queryresultaten.
- De Select-instructie gebruikt ook groepen om de geaggregeerde waarden te vinden en daarom moeten we de clausule group by gebruiken in de where-voorwaarde.
VAN Clausule:
- Alle essentiële feitentabellen en dimensietabellen moeten worden gekozen volgens de context.
WAAR clausule:
- Passende dimensieattributen worden vermeld in de where-clausule door ze samen te voegen met de feitentabelattributen. Surrogaatsleutels uit de dimensietabellen worden samengevoegd met de respectieve externe sleutels uit de feitentabellen om het gegevensbereik dat moet worden opgevraagd vast te stellen. Raadpleeg het hierboven geschreven voorbeeld van een Star Schema-query om dit te begrijpen. U kunt ook gegevens in de from-clausule zelf filteren als u daar innerlijke / buitenste joins gebruikt, zoals geschreven in het voorbeeld van het SnowFlake-schema.
- Dimensiekenmerken worden ook genoemd als beperkingen voor gegevens in de where-clausule.
- Door de gegevens te filteren met alle bovenstaande stappen, worden de juiste gegevens geretourneerd voor de rapporten.
Afhankelijk van de zakelijke behoeften kunt u de feiten, dimensies, attributen en beperkingen aan een star-schema (of) SnowFlake-schemaquery toevoegen (of) verwijderen door de bovenstaande structuur te volgen. U kunt ook subquery's toevoegen (of) verschillende queryresultaten samenvoegen om gegevens voor complexe rapporten te genereren.
# 3) Galaxy-diagram
Een schema van een melkwegstelsel wordt ook wel Fact Constellation Schema genoemd. In dit schema delen meerdere feitentabellen dezelfde dimensietabellen. De opstelling van feitentabellen en dimensietabellen ziet eruit als een verzameling sterren in het Galaxy-schemamodel.
De gedeelde afmetingen in dit model staan bekend als Conformed Dimensions.
Dit type schema wordt gebruikt voor geavanceerde vereisten en voor geaggregeerde feitentabellen die complexer zijn om te worden ondersteund door het Star-schema (of) SnowFlake-schema. Dit schema is moeilijk te onderhouden vanwege zijn complexiteit.
Een voorbeeld van Galaxy Schema wordt hieronder gegeven.
# 4) Star Cluster Schema
Een SnowFlake-schema met veel dimensietabellen heeft mogelijk meer complexe joins nodig tijdens het uitvoeren van query's. Een sterschema met minder dimensietabellen heeft mogelijk meer redundantie. Vandaar dat een sterrenclusterschema in beeld kwam door de kenmerken van de bovenstaande twee schema's te combineren.
Sterschema is de basis voor het ontwerpen van een sterclusterschema en enkele essentiële dimensietabellen uit het sterschema vallen in de sneeuw en dit vormt op zijn beurt een stabielere schemastructuur.
Een voorbeeld van een Star Cluster Schema wordt hieronder gegeven.
Wat is een beter sneeuwvlokschema of sterrenschema?
Het datawarehouse-platform en de BI-tools die in uw DW-systeem worden gebruikt, spelen een cruciale rol bij het bepalen van het geschikte schema dat moet worden ontworpen. Star en SnowFlake zijn de meest gebruikte schema's in DW.
Star-schema heeft de voorkeur als BI-tools zakelijke gebruikers in staat stellen gemakkelijk met de tabelstructuren te communiceren met eenvoudige query's. Het SnowFlake-schema heeft de voorkeur als BI-tools ingewikkelder zijn voor zakelijke gebruikers om rechtstreeks met de tabelstructuren te communiceren vanwege meer joins en complexe queries.
U kunt doorgaan met het SnowFlake-schema als u wat opslagruimte wilt besparen of als uw DW-systeem geoptimaliseerde tools heeft om dit schema te ontwerpen.
Star Schema Vs Snowflake Schema
Hieronder staan de belangrijkste verschillen tussen Star-schema en SnowFlake-schema.
S.No | Star Schema | Sneeuwvlokschema |
---|---|---|
1 | Gegevensredundantie is meer. | De gegevensredundantie is minder. |
twee | Opbergruimte voor maattabellen is meer. | Opbergruimte voor maattabellen is relatief minder. |
3 | Bevat gedenormaliseerde dimensietabellen. | Bevat genormaliseerde dimensietabellen. |
4 | Een enkele feitentabel is omgeven door tabellen met meerdere dimensies. | Een enkele feitentabel wordt omgeven door meerdere hiërarchieën van dimensietabellen. |
5 | Query's gebruiken directe joins tussen feit en dimensies om de gegevens op te halen. | Query's gebruiken complexe samenvoegingen tussen feit en dimensies om de gegevens op te halen. |
6 | De uitvoeringstijd van de query is korter. | De uitvoeringstijd van een query is meer. |
8 | Maakt gebruik van een top-down benadering. | Gebruikt een bottom-up benadering. |
Gevolgtrekking
We hopen dat u een goed begrip heeft van de verschillende soorten datawarehouse-schema's en de voor- en nadelen van deze zelfstudie.
We hebben ook geleerd hoe Star Schema en SnowFlake Schema kunnen worden opgevraagd, en welk schema moet worden gekozen tussen deze twee en hun verschillen.
Blijf op de hoogte van onze aankomende tutorial om meer te weten over Data Mart in ETL !!
Bekijk hier de eenvoudige datawarehousing-trainingsserie.
Aanbevolen literatuur
- Python-gegevenstypen
- C ++ gegevenstypen
- Zelfstudie over datawarehousetesten met voorbeelden | ETL-testgids
- Top 10 van populaire datawarehouse-tools en testtechnologieën
- Dimensionaal gegevensmodel in datawarehouse - zelfstudie met voorbeelden
- ETL-testen Tutorial datawarehouse-testen (een complete gids)
- Wat is ETL-proces (extraheren, transformeren, laden) in datawarehouse?
- Datamining: proces, technieken en grote problemen bij gegevensanalyse