Eind november vorig jaar heb ik naar de Fundamentals van Azure Data gekeken: link. Dat leek wel een item om het examen voor te gaan doen, niet al te ingewikkelde stof. In december had ik een kortingscode van Microsoft gekregen, omdat ik de 30 Days to Learn challenge afgerond had.
Dus op 15 maart 2024 ga ik kijken of ik een examen in kan plannen. En we krijgen een herhaling van iets waar ik eerder tegenaan gelopen ben.
Ten eerste zie je dat ik dit ongeveer 4 maanden doe nadat ik de stof doorgenomen heb. Dat komt omdat ik zoveel andere dingen te doen heb, dan blijft zoiets liggen. Maar als je dan het examen in wilt gaan plannen, dan ga je eerst naar de algemene pagina van DP-900 om dat te regelen. En wat is het eerste wat ik hier zie? Dat per 1 februari 2024 de regels weer aangepast zijn! Het lijkt op iets wat ik eerder ben tegengekomen, eerst alle stof doornemen op Microsoft Learn en op het moment dat je het examen wilt doen, blijkt dat alles omgegooid is, je nog meer modules moet maken.
Nou ja, ik plan het examen "gewoon" in, dan moet ik nu ook echt aan mijn eigen planning voldoen en dat is dat ik elke woensdag 1 uur aan Microsoft Learn besteed. Via Pearson VUE, maar weer een examen op locatie, wederom naar Startel BV aan de Lavendelheide 12 in Drachten. Kost 99 euro, maar met de kortingscode is het "nog maar" de helft.
Als ik op 27 maart 2024 de pagina bekijk staat die melding er niet meer op. Op de algemene pagina kun je doorklikken naar de Study Guide. Daar kun je terug vinden dat er weinig wijzigingen zijn en dat wat aangepast is "minor" is.
Op 27 maart heb ik de Practice Assessment uitgevoerd. Van tevoren geen modules doorgenomen, dus zonder extra oefening: hoeveel is er blijven hangen? De 50 vragen heb ik in 7 minuten beantwoord, een aantal vragen waarbij is absoluut het antwoord niet meer wist. De eindscore is 60%, het advies is om rond de 80% te zitten. Niet ontevreden, maar wel duidelijk dat ik alle modules nog een keer moet doornemen.
Op 10 april gestart om nog een keer de modules door te lopen. Volgens Microsoft Learn heb ik ze allemaal al afgerond, dus er zijn geen wijzigingen meer doorgevoerd na de laatste keer dat ik alle modules gedaan heb.
Toch nog maar een keer aantekeningen maken, want die 60% vind ik zelf ook te laag. Wat heb ik gemist?
De startpagina: link.
Module 1
Data wordt vaak weergegeven als "entities" die "attributen" hebben.
Structured data volgt een schema, dus elke entity heeft dezelfde attribuutvelden.
Dit is de standaard databasetabel, rijen en kolommen.
Semi-structured is waarbij data ook een structuur heeft, maar kan afwijken. Zo kan entity 1 één e-mailadres hebben en entity 2 er twee. Voorbeeld van een formaat welke dit gebruikt is JSON.
Unstructured data. Het geval van afbeeldingen, documenten, audio, video, binaire bestanden.
Datastores, de twee meest gebruikte categorieën zijn file stores en databases.
Bij file storage kun je onder andere denken aan delimited text files, bijvoorbeeld CSV, JSON of XML.
Dit zijn leesbare bestanden, je hebt ook BLOBS, Binary Large OBject. Dit zijn de eerder genoemde PDF's, zip-bestanden en alle andere "unstructured data".
Die leesbare bestanden zijn niet "optimaal" voor opslag of verwerking. Daardoor zijn er andere formaten bedacht die wel compressie, indexing en efficiënte opslag en verwerking ondersteunen;
Avro: een rij-gebaseerd formaat, bedacht door Apache. Elk record heeft een header die de structuur van de data in het record beschrijft. Die header is JSON. De data is binair. Op basis van de informatie in de header kan de binaire data verwerkt worden. Dit formaat is goed voor compressie van data waardoor de hoeveelheid opslag en bandbreedte van het netwerk minimaal is.
ORC: optimized row columnar format. Data wordt georganiseerd in kolommen in plaats van rijen. HortonWorks heeft dit bedacht om de lees- en schrijfactiesi n Apache Hive (een warehouse systeem) te optimaliseren. Dat systeem kan snel data samenvatten en ook snel zoeken over grote hoeveelheden data. Een bestand bestaat uit "stripes". Zo'n stripe bevat de data voor een kolom of een set van kolommen. De stripe bevat een index naar de rijen in de stripe, de data voor elke rij en een footer waarin statistische informatie opgeslagen is (count, sum, max, min, ...) voor elke kolom.
Parquet: ook een formaat gebaseerd op kolommen, bedacht door Cloudera en Twitter. Een bestand bevat rij-groepen. Data voor elke kolom is in dezelfde rijgroep vervangen. Elke rijgroep bevat 1 of meer "chunks" van data. Het bestand bevat ook metadata die de set van rijen in elke "chunk" beschrijft. Een applicatie kan die metadata gebruiken om snel de juiste "chunk" voor het opvragen van data te vinden. Het ondersteunt goede compressie en encodingschema's.
Bij databases beginnen we met relationele databases, waar we bijna altijd mee werken. Normalisatie, SQL.
Bij non-relationele databases zijn dit de 4 meest gebruikte types:
- key-value
- document databases, een soort key-value, maar de value is een JSON-document
- column family databases, combi van een aantal velden in een rij om die onder 1 naam op te vragen
- graph databases, nodes met entiteiten met links die de onderlinge relaties beschrijven
Het verwerken van data gebeurt vaak in transacties. Het werk wat uitgevoerd wordt wordt vaak beschreven als OLTP (Online Transactional Processing).
OLTP systemen zijn gebaseerd op de ACID eigenschappen:
- atomicity, elke transactie is 1 enkele unit, die volledig slaagt of volledig mislukt.
- consistency, transacties nemen data mee van de ene geldige staat naar de andere. Bij het overboeken van geld mag het niet "al bijgeboekt worden" en op dat moment het geld ook nog "bij de andere post staat".
- isolation: transacties mogen elkaar niet beïnvloeden.
- durability: als een transactie doorgevoerd is, is het vastgelegd. Het kan niet zo zijn dat je "terug kunt gaan" naar de vorige status door de server te rebooten.
OLTP worden vaak gebruikt bij live applicaties die businessdata verwerken, vaak line of business (LOB) applicaties genoemd.
Bij analytische dataverwerking maken we vaak gebruik van read-only (of read-mostly) systemen waarbij historische data opgeslagen is, bijvoorbeeld met snapshots.
Een mogelijke uitvoering hiervan is:
- operationele data wordt opgevraagd, omgezet en ingeladen in een datalake voor analyse ELT extract-load-transfer
- de data wordt in een schema van tabellen geladen
- data in het data warehouse wordt geaggregeerd en in een OLAP (online analytical processing) model geladen of in een cube
- deze data in het datalake kan gebruikt worden om te query-en en zo rapporten, dashboards en visualisaties te genereren.
Module 2
We kijken hier naar de rollen / taken die er zijn.
De databasebeheerder, de persoon die zorgt voor ontwerp, implementatie, onderhoud en operationele aspecten.
Data engineers, beheren infrastructuur en processen, verantwoordelijk voor de privacy.
Gegevensanalist, hebben als taak modellen te ontwerpen en bouwen, analysemogelijkheden mogelijk te maken met rapporten en visualisaties.
En zoals bij het intro van de module genoemd wordt, in sommige organisaties hebben sommige personen meerder van deze rollen.
Hierna komen verschillende Azure producten aan bod;
Azure SQL, voor relationele databases. Verschillende smaken, Azure SQL Database, hierbij is de database een PaaS (platform-as-a-service) database in Azure. Azure Managed Instance met automatisch onderhoud, flexibeler dan Azure SQL Database, maar meer verantwoordelijkheid voor de eigenaar. En je hebt nog een Azure SQL VM, waarbij je een VM met SQL Server hebt.
Azure Database voor open-source relationele databases.
Er zijn meer databases dan SQL Server en Microsoft ondersteunt dat. Voor MySQL, voor MariaDB, PostgreSQL. PostgreSQL is relationeel, maar ondersteunt ook non-relationele eigenschappen.
Azure Cosmos DB.
Een globale scale NoSQL database. Ondersteunt API's, beheer data als JSON documenten, key-value pairs, column-familie's en graphs (alle items genoemd in module 1).
Azure Storage.
Ook hier een aantal smaken, Blob containers, schaalbaar en beheersbaar qua kosten voor binaire bestanden. File shares voor netwerk fileshares. Tables voor key-value opslag van data welke applicaties snel moeten kunnen lezen en schrijven.
Azure Data Factory.
Niet zozeer de opslag, maar voor het bouwen van pijplijnen om data te kunnen verplaatsen en transformeren.
Azure Synapse Analytics.
Een PaaS oplossing voor data-analyse. Een enkele interface die meerdere dingen kan:
- pipelines (zelfde principe als data factory)
- SQL (schaalbare SQL motor die data warehouse workloads aankan)
- Apache Spark (open-source data verwerkingssysteem)
- Azure Synapse Data Explorer (high performance om realtime te kunnen query'en met KQL (Kusto Query Language)
Dit klinkt allemaal redelijk "Kibana-achtig"
Azure Databricks.
Azure versie van het Databricks platform, combinatie van het Apache Spark dataplatform in combinatie met SQL.
Azure HDInsights.
Deze dienst zorgt dat een Azure cluster populaire Apache open-source big-data technologieën gebruikt kunnen worden:
- Apache Spark (data verwerkingssysteem, met API's zoals Java, Scala, Python en SQL)
- Apache Hadoop (gedistribueerd systeem dat MapReduce gebruikt om grote volumes van data via meerdere clusternodes te verwerken. Taken kunnen in Java geschreven worden of via interfaces als Apache Hive - een SQL gebaseerde API die op Hadoop kan draaien
- Apache HBase (open-source systeem voor grote NoSQL data-opslag en query-en)
- Apache Kafka (message broker voor datastream verwerking)
Azure Stream Analytics.
Verwerkt real-time data die binnenkomt, filtert er zaken uit en zet die door naar een output waar het verder verwerkt kan worden.
Azure Data Explorer.
Een stand-alone dienst die zorgt dat je snel kunt query-en op log en telemetriedata.
Microsoft Purview.
Voor het beheren en ontdekken van je data. Hiermee maak je een kaart van je data waar je kunt zien waar de bronnen en systemen zijn, dit kan weer gebruikt worden om betrouwbare informatie te gebruiken voor analyse en rapportage.
Microsoft Fabrik.
Een SaaS (software-as-a-service) analytics platform wat het volgende ondersteunt:
- data opvragen en ETL (extra, transform, load)
- data lakehouse analytics
- data warehouse analytics
- data science en machinelearning
- realtime analytics
- data visualisatie
- data governance en beheer
Module 3
Deze module gaat over relationele data. Dat is eigenlijk het type data waar ik "altijd mee bezig ben".
Daarom alleen even de zaken die ik niet meteen paraat heb en mogelijk wel vragen over komen;
SQL Statements worden in 3 groepen verdeeld:
- DDL, data definition language
- DCL, data control language
- DML, data manipulcation language
DDL: CREATE, ALTER, DROP, RENAME
DCL: GRANT, DENY, REVOKE
DML: SELECT, INSERT, UPDATE, DELETE
Hierbij wordt nog verwezen naar "Get Started Querying with Transact-SQL".
Ook nog maar een keer doorlopen om punten te scoren. Op de studiedag 25 april? Jazeker, deze module heb ik nu ook afgerond.
Module 4
Deze module gaat over de relationele databaseservices in Azure.
In Azure heb je niet alleen MSSQL Server, maar ook bijvoorbeeld PostgreSQL, MariaDB en MySQL.
Met Azure SQL geef je aan dat er verschillende diensten zijn;
- SQL Server op een VM, handig als je jouw database 1-op-1 van je bedrijf over wilt zetten naar de cloud. IaaS (infrastructure as a service).
- Azure SQL Managed Instance, bijna 100% compatibiliteit, onderhoud e.d. wordt voor je geregeld. PaaS (platform-as-a-service). De voorkeur om dit te gebruiken boven SQL Database is als je gebruik maakt van linked servers, Service Broker, Database Mail. Meer info is hier na te lezen, nog maar even doen voor het examen.
- Azure SQL Database. Voornamelijk gericht op "de cloud". PaaS. 1 database of een pool met databases. Bij de single database wordt standaard de resources al ingericht en betaal je per uur. Je kunt ook iezen voor een serverless configuratie, waarbij de server gedeeld kan worden door meerdere klanten. Microsoft zorgt dat alles afgeschermd is. Bij de "pool" kun je de bronnen delen over je verschillende databases.
- Azure SQL Edge. Een SQL enginine voornamelijk voor IoT scenario's, dus met "streaming data".
Als je een migratie uit wilt voeren van je bedrijfsnetwerk naar Azure, dan raadt Microsoft je aan om de Migration Service te gebruiken.
Met MariaDB, PostgreSQL en MySQL kun je 35 dagen terug in de historie.
De oefening sla ik nu over, maar ga ik op een later moment nog doen: link.
Module 5
Deze module gaat over Azure opslag van niet-relationele data.
De algemene term is Azure Storage. We gaan de verschillende soorten behandelen.
Azure blob storage.
Bestanden worden in een container opgeslagen en je kunt daar rechten op instellen (wie mag er wel/niet bij).
Je hebt 3 soorten blobs die ondersteund worden:
- block blobs. Zo'n block blob wordt behandeld als een set van blocks. Elk blok kan verschillend qua grootte zijn, op tot 4.000 MiB. Ik had geen idee wat een MiB is, maar dat wordt een mebibyte genoemd, als je megabyte zou zeggen, dan zou je echt de 4.000 x 1024 weer moeten geven volgens mij. In ieder geval, een block blob kan maximaal 190.7 TiB groot worden (4.000 MiB x 50.000 blokken). Advies is om dit te gebruiken voor losse grote binaire objecten die bijna nooit wijzigen qua structuur.
- page blobs. Hiermee heb je een collectie van pagina's die vast 512 bytes groot zijn. Geoptimaliseerd om willekeurige lees- en schrijfacties te ondersteunen, je kunt data ophalen en opslaan voor een pagina wanneer je maar wilt. Een page blob kan in totaliteit maximaal 8 TB aan data opslaan. Azure gebruikt dit voor virtuele harddisks voor virtuele machines.
- append blobs. De naam zegt het al: voor het toevoegen van data. Je kunt alleen blocks aan het einde toevoegen, verwijderen of aanpassen is er niet bij. Elk blok kan wisselen qua grootte, tot 4 MB maximaal. Een append blob kan in totaliteit maximaal 195 GB groot worden.
En de welbekende verschillende soorten opslag, hot, cold en archive.
Met policies kun je instellen dat bepaalde data automatisch "cold" wordt en na verloop van tijd naar het archief.
Azure DataLake Storage Gen2.
Je had al een Gen1. Dit is vooral bedoeld om voor onderzoek data op te slaan in een groot "meer". Gen2 is de nieuwe versie, waarbij je zaken van andere diensten ook krijgt, dus je hebt de schaalbaarheid, de opslagtypes (hot/cold/archive) en de hierarchische folders/files.
Dit datalake kan gebruikt worden in andere onderdelen. Hadoop in Azure HDInsight, Azure Databricks, Azure Synapse Anlytics kunnen hiermee koppelen.
Om Gen2 te kunnen gebruiken moet je de Hierarchical Namespace optie van het Azure Storage Account aan zetten. Dit is eenmalig, je kunt dan niet meer "terug" naar de flat namespace.
Azure Files.
Veel bedrijven (en ook wel consumenten) gebruiken fileshares om bestanden te delen via verschillende computers.
Azure Files doet hetzelfde, maar dan via de cloud.
Je maakt Azure File storage in een storage account. In 1 account kun je maximaal 100 TB aan data opslaan.
Een enkel bestand kan maximaal 1 TB groot zijn, maar je kunt zelf ook quota's instellen om zelf een lagere maximumwaarde in te stellen.
Per gedeeld bestand kunnen er 2.000 gelijktijdige connecties zijn.
Upload kan via de portal, of via de AzCopy utility. Ook kun je met Azure File Sync lokale gecachte versies van gedeelde bestanden binnenhalen.
Je kunt kiezen uit 2 performance tiers. Standard: hard disk-based hardware, Premium is met SSD's. Sneller, maar ook duurder.
- SMB, Server Message Block (Windows, Linux, MacOS)
- NFS, network File system (Linux, MacOS)
Azure Tables
Een NoSQL oplossing. Het wordt benoemd als key/value data items, maar dat zijn dus per rij meerdere keys en meerdere values.
Waarbij rij 1 niet de keys/values hoeft te hebben die rij 2 heeft.
De storage key bestaat uit de partition-key en de row key.
Met een partition-key kun je zaken bij elkaar houden (handig voor (sneller) zoeken).
Om zelf nog te testen, een oefening om met Azure Storage te werken.
Module 6
In deze module gaan we kijken naar Azure Cosmos. Ook dit gaat weer over niet-relationele data.
We hadden eerder al de documenten, graphs, key-value tables en column family stores genoemd.
Cosmos ondersteunt deze allemaal, met een API.
Cosmos is een grote speler. Indexen, partitionering, kan grote hoeveelheden data aan. Kan multi-regio schrijfacties doen.
Voeg Azure regio's toe aan je Cosmos DB account waardoor gebruikers kunnen werken met data in hun lokale replica.
Cosmos maakt zelf ruimte vrij in je container voor de partities. Deze kunnen 10 GB per stuk worden.
Microsoft is zelf een grote gebruiker van dit product, Skype, Xbox, Microsoft 365, Azure en meer.
Advies om het te gebruiken bij:
- IoT en telematica. Dit type systeem heeft vaak grote hoeveelheden data in vaak voorkomende "uitbarstingen van data". De data kan dan weer via Azure Machine Learning, Azure HDInsight en PowerBI verwerkt worden. En met Azure Functions kun je ook data real-time verwerken.
- Retail en marketing. Microsoft gebruikt het voor de eigen online shops. Het wordt in de detailhandel gebruikt voor opslag van catalogusdata en "event sourcing" in verwerkingspijplijnen.
- Gaming. Statistieken, social media integratie, high-score leaderbord.
- Web en mobiele applicaties. Met de SDK's kun je coole iOS en Android applicaties bouwen met het Xamarin framework.
Als je een nieuwe Cosmos DB-instantie aanmaakt, selecteer je de database-engine die gebruikt moet worden.
NoSQL, MongoDB, PostgreSQL, Cosmos DB for Table. In dit geval vergelijkbaar met Azure Table Storage, maar beter schaalbaar en betere performance.
Apache Cassandra, Apache Gremlin.
Zelf aan de slag met een oefening.
Module 7
In deze module kijken we naar de fundamenten van "large scale analytics".
Bij dit type werk komen vaak de volgende elementen naar voren:
- Data-ingestie en verwerking. Je hebt data (databases, bestanden) die je in een warehouse of datalake neerzet. Het laden van die data houdt vaak in dat extract-transform-en-load of extra-load-en-transform uitgevoerd worden. Het resultaat is dat de structuur geoptimaliseerd is voor zoeken.
- Analytische data store. Data warehouses en/of data lakes om de data in op te slaan.
- Analytisch data-model. Vooraf data aggregeren om te zorgen dat rapporten, dashboards en interactieve visualisaties snel opgebouwd kunnen worden. Vaak worden deze datamodellen omschreven als "cubes" waarbij numerieke data geaggregeerd is over 1 of meer dimensies.
- Data visualisatie. Met een grafische weergave krijg je "echt" de data te zien.
Om data te verwerken gebruik je pijplijnen. En daar heb je verschillende tools voor.
Azure Data Factory, Azure Synapse Analytics of Microsoft Fabric.
De verschillende opslagmethodes.
We zagen ze al voorbij komen. Het warehouse, dat is een relationele database waarbij data via schema's opgeslagen is. Data wordt opgeslagen in fact tabellen, de geaggregeerde data e.d. wordt in dimension tabellen opgeslagen.
Data lake is een opslaglocatie van bestanden. Met Hadoop of Spark voer je query's uit.
Voor de opslag kun je 3 platform-as-a-service diensten in Azure gebruiken.
Azure Synapse Analytics, gebruik met een SQL Server warehouse of een datalake met Apache Spark.
Met Azure Synapse Studio kun je interactieve notebooks met Spark code en markdown combineren.
Azure Databricks is de Azure implementatie van het Databricks platform. Die kende ik niet, mocht je meer daar over willen weten, dan kun je de website bezoeken.
Gebouwd op Apache Spark. Volgens de uitleg vooral handig als je al met dit platform werkt, of je use-case met multicloud werkt.
Azure HDInsights is minder gebruiksvriendelijk, ondersteunt meerdere open-source clustertypes. Volgens de uitleg vooral handig als je afhankelijk bent van meerdere open-source frameworks of als je een eigen Hadoop gebaseerde oplossing naar de cloud over wilt zetten.
Als je zelf aan de slag wilt, een oefening met Azure Synapse Analytics.
Als je de business en de onderzoekers wilt laten samenwerken, kijk dan naar Fabric. In de uitleg wordt gesproken over de "OneDrive" voor data.
Als je zelf aan de slag wilt, een oefening met Fabric.
Dan de vragen. Zo komt er de vraag wat je moet definiëren om een pijplijn te implementeren die van Azure Blob Storage kan lezen.
Ik kan me niet herinneren dat ik dit met uitleg tegengekomen ben.
Qua antwoorden zou ik zeggen dat je een linked service naar je Azure Blob Storage account moet maken. En dat is correct.
Module 8
De fundamenten van real-time analytics.
Vroeger had je een database met klanten en producten en ging je daar gegevens bij elkaar zoeken. Dat was vroeger. Doordat nu smart devices aangesloten zijn aan het internet en iedereen/alles internettoegang heeft heb je een "overvloed van data" die verwerkt moet worden.
En je wilt nu real-time of "bijna" real-time die data zien vloeien. Zodat je inzichten krijgt, trends ziet en actie kunt ondernemen op gebeurtenissen die je ziet. En ja, natuurlijk kan Azure je daarbij helpen.
Het verwerken van data kan batch-gewijs (verzamelen, opslaan en dan verwerken) of op basis van stream-processing, je kijkt rechtstreeks naar de data die binnenkomt.
Met een batch kun je alle data in de set verwerken. Stream-processing heeft toegang tot de meest recente data of in een "rolling time window", waarbij je bijvoorbeeld alleen van de laatste 30 seconden de data hebt.
De grootte van data verschilt, batches zijn over het algemeen groot, stream-processing gaat voor de individuele records.
Performance, de "latency", kan bij batches uren of zelfs dagen zijn. Stream-processing is seconden of milliseconden.
Analyse: bij een batch kun je complexe berekeningen doen, stream-processing is alleen bedoeld voor snelle acties (sommaties, gemiddelden).
Je hebt systemen waarin beide gecombineerd worden.
Real-time analytics in Azure:
- Azure Stream Analytics, een PaaS, je maakt "streaming jobs" die data van een bron krijgen, een query uitvoeren en de resultaten naar een output sturen. Als je meer wilt weten, dan kun je hier de documentatie lezen. En hier kun je de oefening uitvoeren.
- Spark Structured Streaming, een open-source bibliotheek om complexe streaming oplossingen te bouwen op services die gebaseerd zijn op Apache Spark, zoals Azure Synapse Analytics, Azure Databricks en Azure HDInsight.
- Azure Data Explorer, een high performance database en analytische service die geoptimaliseerd is voor het ontvangen van data, het query-en van batch en streaming data. Dit kan gebruikt worden als een losse Azure service of als een Azure Synapse Data Explorer runtime in Azure Synapse Analytics workspace.
Bronnen voor stream-processing:
- Azure Event Hubs, een dataverwerkingsdienst, verzekerd dat elk event verwerkt wordt in de juiste volgorde, maximaal 1x.
- Azure IoT Hub, vergelijkbaar met Event Hubs, maar geoptimaliseerd voor IoT devices.
- Azure Data Lake Store Gen 2: hoog schaalbare service die vaak bij batch processing wordt gebruikt, maar ook gebruikt kan worden voor streaming data.
- Apache Kafka: open-source oplossing, vaak samen met Apache Spark gebruikt. Met HDInsight kun je een Kafka cluster maken.
Sinks voor stream-processing (ik denk "output"?):
- Azure Event Hubs: query de verwerkte data voor verdere verwerking.
- Azure Data Lake Store Gen 2 of Azure blob storage: sla de resultaten op als bestanden.
- Azure SQL Database of Azure Synapse Analytics of Azure Databricks: sla de resultaten op in databasetabellen.
- Microsoft Power BI: wordt gebruikt voor real time data visualisaties in rapportages en dashboards
Apache Spark is een framework wat binnen de volgende diensten gebruikt kan worden:
- Azure Synapse Analytics
- Azure Databricks
- Azure HDInsight
Je kunt zelf code maken voor Spark in Python, Scala of Java.
Als je meer over Spark Structured Streaming wilt weten, dan kun je hier de handleiding lezen. En hier kun je een oefening doen met Spark Streaming in Azure Synapse Analytics.
Delta Lake is een open-bron opslaglaag waarmee transactionele consistentie wordt ondersteund, schema's worden afgedwongen en andere features geïmplementeerd worden. Hiermee kun je relationele tabellen maken voor Spark voor batch en stream-processing. Zo'n tabel kan zowel als bron gebruikt worden, maar ook als "sink", dus voor de opslag. Als je meer informatie over Delta Lake wilt, dan kun je dat hier nalezen.
Microsoft Fabric wordt niet uitgebreid besproken. Maar omdat het een Azure-product is, is het prima te integreren in de andere diensten die beschikbaar zijn, zoals Power BI om mooie visualisaties te kunnen tonen. Dan toch maar even de oefening doen om er wat feeling bij te krijgen.
Module 9
De fundamenten van data visualisatie.
Waar zouden we zijn zonder grafieken en staafdiagrammen? Als we alles alleen maar als tekst zouden zien, dan raken we in ieder geval "het overzicht kwijt". Power BI is de tool van Microsoft hiervoor.
Een oplossing zoals die vaak start begint met Power BI Desktop, een Windows applicatie, waarin je data kunt importeren uit een grote range van databronnen. Je combineert en organiseert die data en maakt rapportages die interactieve visualisaties van de data opleveren.
Als je dat gemaakt hebt, kun je deze publiceren naar de Power BI service, een cloud service waarin rapportages gepubliceerd kunnen worden en interactie met andere gebruikers mogelijk is. Via de browser te bekijken, je hebt ook nog de Power BI phone app voor de mobieltjes.
In deze module staat niet heel veel (nieuws) voor mij, wel kun je even de oefening doen om er zelf even mee "te spelen".
Dan komen de vragen. En dan denk je altijd, heb ik niet goed gelezen of toch te snel.
De vraag waarmee je moet importeren is Power BI Desktop.
De vraag wat je moet definiëren in je model om drill-up/down analyse uit te voeren, daar zit ik even mee.
Je hebt namelijk de keuze uit "measure", "hierarchy" en "a relationship". Maar wat bedoelen ze nu precies?
Ik had gekozen voor relationship, maar toch maar gekozen voor a measure.
En ook die is fout, want het is een hierarchy. Hiermee definieer je meerdere levels van attributen.
En dan kun je inderdaad kiezen om op extra attributen te gaan filteren of juist niet.
En dan de vraag welke grafiek je moet gebruiken om slagingspercentages voor meerdere examens over tijd weer te geven. De pie chart lijkt me niet handig, scatter plot ook niet, dus het wordt de line chart.
Het is vaak zo dat het allemaal niet zo moeilijk lijkt. Maar als je dan de vragen leest denk je "oh... dit gaat toch dieper". Het is dus altijd maar de vraag hoe het op het echte examen gaat.
Op dinsdag 23 april heb ik een vrije dag. 's Morgens opstaan op de normale tijd als was het een werkdag, de hele ochtend de samenvattingen gelezen, de oefentoets gedaan en nog wat op linkjes doorgeklikt om extra informatie te lezen. Bij de oefentoets (Practice Assessment) had ik zoals je kon lezen eerst ongeoefend een score van 60%, nu haal ik een socre van 90%. Dat geeft vertrouwen! Na het middageten in de auto naar Drachten naar Startel. Het examen is gepland om 13.30 uur, ik ben er rond 13.10 uur en kan/mag meteen beginnen. Het examen bestaat uit 45 vragen, meeste multiple-choice, maar ook een aantal waarbij je uit een lijst met keuzes die in een vakje in het rechterdeel moet plaatsen. Veel vragen kan ik zo beantwoorden, bij een paar antwoorden twijfel ik of mijn antwoord juist is, maar weet ik ook niet zeker of het andere antwoord "zeker weten" goed is, dus laat ik het zo.
En zo ben ik binnen een half uur klaar en zou ik minimaal 700 punten moeten halen: met vlag-en-wimpel geslaagd, want ik heb een score van 857! Dit certificaat heb ik maar weer "in the pocket", op naar het volgende Fundamentals examen!