DataOps voor het moderne datawarehouse

Azure Data Factory
Azure Databricks
Azure DevOps
Azure Key Vault
Azure Synapse Analytics

In dit artikel wordt beschreven hoe een fictief kantoor voor stadsplanning deze oplossing kan gebruiken. De oplossing biedt een end-to-end gegevenspijplijn die het architectuurpatroon MDW volgt, samen met de bijbehorende DevOps- en DataOps-processen, om parkeren te beoordelen en meer geïnformeerde zakelijke beslissingen te nemen.

Architectuur

In het volgende diagram ziet u de algehele architectuur van de oplossing.

Architectuurdiagram waarin DataOps wordt gedemonstreerd voor het moderne datawarehouse.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

Azure Data Factory (ADF) organiseert en Azure Data Lake Storage (ADLS) Gen2 slaat de gegevens op:

  1. De webservice-API van Contoso city parking is beschikbaar om gegevens over te dragen van de parkeerplaatsen.

  2. Er is een ADF-kopieertaak waarmee de gegevens worden overgedragen naar het landingsschema.

  3. Vervolgens worden de gegevens door Azure Databricks opgeschoond en gestandaardiseerde. Hierbij worden de onbewerkte gegevens en voorwaarden gebruikt, zodat gegevenswetenschappers deze kunnen gebruiken.

  4. Als tijdens de validatie ongeldige gegevens worden weergegeven, worden deze gedumpt in het ongeldige schema.

    Belangrijk

    Mensen hebt gevraagd waarom de gegevens niet worden gevalideerd voordat ze worden opgeslagen in ADLS. De reden hiervoor is dat de validatie een fout kan veroorzaken die de gegevensset kan beschadigen. Als u tijdens deze stap een bug introduceert, kunt u de fout oplossen en uw pijplijn opnieuw afspelen. Als u de slechte gegevens hebt gedumpt voordat u deze aan ADLS hebt toegevoegd, zijn de beschadigde gegevens nutteloos omdat u uw pijplijn niet opnieuw kunt afspelen.

  5. Er is een tweede azure Databricks-transformatiestap waarmee de gegevens worden geconverteerd naar een indeling die u in het datawarehouse kunt opslaan.

  6. Ten slotte dient de pijplijn de gegevens op twee verschillende manieren:

    1. Databricks maakt de gegevens beschikbaar voor de data scientist, zodat ze modellen kunnen trainen.

    2. Polybase verplaatst de gegevens van de data lake naar Azure Synapse Analytics en Power BI opent de gegevens en presenteert deze aan de zakelijke gebruiker.

Onderdelen

De oplossing maakt gebruik van deze onderdelen:

Scenariodetails

Met een modern datawarehouse (MDW) kunt u eenvoudig al uw gegevens samenbrengen op elke schaal. Het maakt niet uit of het gestructureerde, ongestructureerde of semi-gestructureerde gegevens zijn. U kunt inzicht krijgen in een MDW via analytische dashboards, operationele rapporten of geavanceerde analyses voor al uw gebruikers.

Het instellen van een MDW-omgeving voor zowel ontwikkel- als productieomgevingen (prod) is complex. Het automatiseren van het proces is belangrijk. Het helpt de productiviteit te verhogen terwijl het risico op fouten wordt geminimaliseerd.

In dit artikel wordt beschreven hoe een fictief kantoor voor stadsplanning deze oplossing kan gebruiken. De oplossing biedt een end-to-end gegevenspijplijn die het architectuurpatroon MDW volgt, samen met de bijbehorende DevOps- en DataOps-processen, om parkeren te beoordelen en meer geïnformeerde zakelijke beslissingen te nemen.

Oplossingsvereisten

  • Mogelijkheid om gegevens uit verschillende bronnen of systemen te verzamelen.

  • Infrastructuur als code: implementeer nieuwe ontwikkel- en faseringsomgevingen (stg) op een geautomatiseerde manier.

  • Toepassingswijzigingen implementeren in verschillende omgevingen op een geautomatiseerde manier:

    • Ci/CD-pijplijnen (Continuous Integration/Continuous Delivery) implementeren.

    • Gebruik implementatiepoorten voor handmatige goedkeuringen.

  • Pijplijn als code: zorg ervoor dat de CI/CD-pijplijndefinities zich in broncodebeheer bevinden.

  • Voer integratietests uit op wijzigingen met behulp van een voorbeeldgegevensset.

  • Pijplijnen op geplande basis uitvoeren.

  • Ondersteuning voor toekomstige flexibele ontwikkeling, waaronder het toevoegen van data science-workloads.

  • Ondersteuning voor beveiliging op rij- en objectniveau:

    • De beveiligingsfunctie is beschikbaar in SQL Database.

    • U vindt deze ook in Azure Synapse Analytics, Azure Analysis Services (AAS) en Power BI.

  • Ondersteuning voor 10 gelijktijdige dashboardgebruikers en 20 gelijktijdige energiegebruikers.

  • De gegevenspijplijn moet gegevensvalidatie uitvoeren en onjuiste records filteren op een opgegeven archief.

  • Ondersteuning voor bewaking.

  • Gecentraliseerde configuratie in een beveiligde opslag, zoals Azure Key Vault.

Potentiële gebruikscases

In dit artikel wordt gebruikgemaakt van de fictieve stad Contoso om het use-casescenario te beschrijven. In het verhaal beheert Contoso parkeersensoren voor de stad en beheert deze. Het is ook eigenaar van de API's die verbinding maken met en gegevens ophalen van de sensoren. Ze hebben een platform nodig dat gegevens uit veel verschillende bronnen verzamelt. De gegevens moeten vervolgens worden gevalideerd, opgeschoond en getransformeerd naar een bekend schema. Contoso-stadsplanners kunnen vervolgens rapportgegevens over parkeren verkennen en beoordelen met hulpprogramma's voor gegevensvisualisatie, zoals Power BI, om te bepalen of ze meer parkeer- of gerelateerde resources nodig hebben.

Beschikbaarheid van straatparking

Overwegingen

De volgende lijst bevat een overzicht van belangrijke leer- en best practices die door deze oplossing worden gedemonstreerd:

Notitie

Elk item in de onderstaande lijst bevat koppelingen naar de gerelateerde sectie Key Learnings in de documenten voor het voorbeeld van de parkeersensoroplossing op GitHub.

Dit scenario implementeren

De volgende lijst bevat de stappen op hoog niveau die nodig zijn om de oplossing Parkeersensoren in te stellen met bijbehorende Build- en Release Pipelines. U vindt gedetailleerde installatiestappen en vereisten in deze opslagplaats met Azure Samples.

Installatie en implementatie

  1. Eerste installatie: Installeer eventuele vereisten, importeer de GitHub-opslagplaats van Azure Samples in uw eigen opslagplaats en stel vereiste omgevingsvariabelen in.

  2. Azure-resources implementeren: de oplossing wordt geleverd met een geautomatiseerd implementatiescript. Het implementeert alle benodigde Azure-resources en Microsoft Entra-service-principals per omgeving. Het script implementeert ook Azure Pipelines, variabele groepen en serviceverbindingen.

  3. Git-integratie instellen in dev Data Factory: Git-integratie configureren voor gebruik met de geïmporteerde GitHub-opslagplaats.

  4. Voer een eerste build en release uit: Maak een voorbeeldwijziging in Data Factory, zoals het inschakelen van een schematrigger en bekijk vervolgens hoe de wijziging automatisch wordt geïmplementeerd in omgevingen.

Geïmplementeerde resources

Als de implementatie is geslaagd, moeten er drie resourcegroepen in Azure zijn die drie omgevingen vertegenwoordigen: dev, stg en prod. Er moeten ook end-to-end build- en release-pijplijnen in Azure DevOps zijn die automatisch wijzigingen in deze drie omgevingen kunnen implementeren.

Zie de sectie Geïmplementeerde resources van de README van DataOps - Parking Sensor Demo voor een gedetailleerde lijst met alle resources.

Continue integratie en levering

In het onderstaande diagram ziet u het CI/CD-proces en de volgorde voor de build- en release-pijplijnen.

Diagram met het proces en de volgorde voor build en release.

Een Visio-bestand van deze architectuur downloaden.

  1. Ontwikkelaars ontwikkelen zich in hun eigen sandbox-omgevingen binnen de ontwikkelresourcegroep en voeren wijzigingen door in hun eigen kortdurende Git-vertakkingen. Bijvoorbeeld: <developer_name>/<branch_name>.

  2. Wanneer de wijzigingen zijn voltooid, verzenden ontwikkelaars een pull-aanvraag (PR) naar de hoofdbranch voor controle. Als u dit doet, wordt de PULL-validatiepijplijn automatisch gestart, waarmee de eenheidstests, linting en DACPAC-builds (Data Tier Application Package) worden uitgevoerd.

  3. Na voltooiing van de pull-aanvraagvalidatie activeert de doorvoer naar de hoofdmap een build-pijplijn die alle benodigde buildartefacten publiceert.

  4. De voltooiing van een geslaagde build-pijplijn activeert de eerste fase van de release-pijplijn. Als u dit doet, worden de buildartefacten in de ontwikkelomgeving geïmplementeerd, met uitzondering van ADF.

    Ontwikkelaars publiceren handmatig naar de dev ADF vanuit de samenwerkingsbranch (hoofd). De handmatige publicatie werkt de ARM-sjablonen (Azure Resource Manager) in de adf_publish vertakking bij.

  5. De geslaagde voltooiing van de eerste fase activeert een handmatige goedkeuringspoort.

    Bij goedkeuring gaat de release-pijplijn verder met de tweede fase, waarbij wijzigingen in de stg-omgeving worden geïmplementeerd.

  6. Voer integratietests uit om wijzigingen in de stg-omgeving te testen.

  7. Wanneer de tweede fase is voltooid, activeert de pijplijn een tweede handmatige goedkeuringspoort.

    Bij goedkeuring gaat de release-pijplijn verder met de derde fase, waarbij wijzigingen in de prod-omgeving worden geïmplementeerd.

Lees de sectie Build- en Release Pipeline van de README voor meer informatie.

Testen

De oplossing bevat ondersteuning voor zowel eenheidstests als integratietests. Het maakt gebruik van pytest-adf en het Nutter Testing Framework. Zie de sectie Testen van het LEESMIJ-bestand voor meer informatie.

Waarneembaarheid en bewaking

De oplossing ondersteunt waarneembaarheid en bewaking voor Databricks en Data Factory. Zie de sectie Waarneembaarheid/bewaking van het LEESMIJ-bestand voor meer informatie.

Volgende stappen

Als u de oplossing wilt implementeren, volgt u de stappen in de sectie How to use the sample section of the DataOps - Parking Sensor Demo README.

Voorbeelden van oplossingscode op GitHub

Waarneembaarheid/bewaking

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

Tolerantie en herstel na noodgevallen

Azure Databricks

Data Factory

Synapse Analytics

Azure Storage

Gedetailleerd overzicht

Bekijk de volgende video-opname voor een gedetailleerd overzicht van de oplossing en de belangrijkste concepten: DataDevOps voor het moderne datawarehouse in Microsoft Azure