Deze referentiearchitectuur laat zien hoe u een schaalbare oplossing bouwt voor batchgewijs scoren van een Apache Spark-classificatiemodel volgens een schema met behulp van Azure Databricks. Azure Databricks is een op Apache Spark gebaseerd analyseplatform dat is geoptimaliseerd voor Azure. Azure Databricks biedt drie omgevingen voor het ontwikkelen van gegevensintensieve toepassingen: Databricks SQL, Databricks Data Science & Engineering en Databricks Machine Learning. Databricks Machine Learning is een geïntegreerde end-to-end machine learning-omgeving met beheerde services voor het bijhouden van experimenten, het trainen van modellen, het ontwikkelen en beheren van functies en het leveren van functies en modellen. U kunt deze referentiearchitectuur gebruiken als een sjabloon die kan worden gegeneraliseerd naar andere scenario's. Een referentie-implementatie voor deze architectuur is beschikbaar op GitHub.
Apache® en Apache Spark® zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Het gebruik van deze markeringen impliceert geen goedkeuring door De Apache Software Foundation.
Architectuur
Een Visio-bestand van deze architectuur downloaden.
Werkstroom
De architectuur definieert een gegevensstroom die volledig is opgenomen in Azure Databricks op basis van een set opeenvolgend uitgevoerde notebooks. Het bestaat uit de volgende onderdelen:
Gegevensbestanden. De referentie-implementatie maakt gebruik van een gesimuleerde gegevensset in vijf statische gegevensbestanden.
Opname. Het notebook voor gegevensopname downloadt de invoergegevensbestanden in een verzameling Databricks-gegevenssets. In een praktijkscenario worden gegevens van IoT-apparaten gestreamd naar databricks-toegankelijke opslag, zoals Azure SQL of Azure Blob Storage. Databricks ondersteunt meerdere gegevensbronnen.
Trainingspijplijn. Met dit notebook wordt het functie-engineering-notebook uitgevoerd om een analysegegevensset te maken op basis van de opgenomen gegevens. Vervolgens wordt een notebook voor het bouwen van modellen uitgevoerd waarmee het machine learning-model wordt getraind met behulp van de schaalbare machine learning-bibliotheek van Apache Spark MLlib .
Scorepijplijn. Dit notebook voert het functie-engineering-notebook uit om scoregegevensset te maken van de opgenomen gegevens en voert het scoring-notebook uit. Het scoring notebook maakt gebruik van het getrainde Spark MLlib-model om voorspellingen te genereren voor de waarnemingen in de scoregegevensset. De voorspellingen worden opgeslagen in de resultatenopslag, een nieuwe gegevensset in het Databricks-gegevensarchief.
Scheduler. Een geplande Databricks-taak verwerkt batchgewijs scoren met het Spark-model. Met de taak wordt het notebook scorepijplijn uitgevoerd, waarbij variabeleargumenten worden doorgegeven via notebookparameters om de details op te geven voor het samenstellen van de scoregegevensset en waar de resultatengegevensset moet worden opgeslagen.
Oplossingsdetails
Het scenario is opgebouwd als een pijplijnstroom. Elk notebook is geoptimaliseerd voor uitvoering in een batch-instelling voor elk van de bewerkingen: opname, functie-engineering, modelbouw en modelscores. Het functie-engineering-notebook is ontworpen om een algemene gegevensset te genereren voor alle trainings-, kalibratie-, test- of scorebewerkingen. In dit scenario gebruiken we een tijdelijke splitsstrategie voor deze bewerkingen, zodat de notebookparameters worden gebruikt om het filteren van datumbereiken in te stellen.
Omdat in het scenario een batch-pijplijn wordt gemaakt, bieden we een set optionele onderzoeksnotitieblokken om de uitvoer van de pijplijnnotebooks te verkennen. U vindt deze notebooks in de map Notebooks van de GitHub-opslagplaats:
1a_raw-data_exploring.ipynb
2a_feature_exploration.ipynb
2b_model_testing.ipynb
3b_model_scoring_evaluation.ipynb
Potentiële gebruikscases
Een bedrijf in een industrie met veel activa wil de kosten en downtime minimaliseren die gepaard gaan met onverwachte mechanische storingen. Met behulp van IoT-gegevens die zijn verzameld van hun machines, kunnen ze een model voor voorspellend onderhoud maken. Dit model stelt het bedrijf in staat om onderdelen proactief te onderhouden en te repareren voordat ze mislukken. Door het gebruik van mechanische componenten te maximaliseren, kunnen ze kosten beheersen en downtime verminderen.
Een model voor voorspeld onderhoud verzamelt gegevens van de machines en bewaart historische voorbeelden van fouten van onderdelen. Het model kan vervolgens worden gebruikt om de huidige status van de onderdelen te bewaken en te voorspellen of een bepaald onderdeel binnenkort uitvalt. Zie Azure AI-handleiding voor oplossingen voor voorspellend onderhoud voor veelvoorkomende gebruiksvoorbeelden en modelleringsmethoden.
Deze referentiearchitectuur is ontworpen voor workloads die worden geactiveerd door de aanwezigheid van nieuwe gegevens van de onderdeelmachines. De verwerking omvat de volgende stappen:
De gegevens uit het externe gegevensarchief opnemen in een Azure Databricks-gegevensarchief.
Train een machine learning-model door de gegevens te transformeren in een set met trainingsgegevens en vervolgens een Spark MLlib-model te bouwen. MLlib bestaat uit de meest voorkomende machine learning-algoritmen en hulpprogramma's die zijn geoptimaliseerd om te profiteren van de schaalbaarheidsmogelijkheden van Spark-gegevens.
Pas het getrainde model toe om fouten in onderdelen te voorspellen (classificeren) door de gegevens te transformeren in een scoregegevensset. De gegevens beoordelen met het Spark MLLib-model.
Sla resultaten op in het Databricks-gegevensarchief voor verbruik na verwerking.
Notebooks zijn beschikbaar op GitHub om elk van deze taken uit te voeren.
Aanbevelingen
Databricks is zo ingesteld dat u uw getrainde modellen kunt laden en implementeren om voorspellingen te doen met nieuwe gegevens. Databricks biedt ook andere voordelen:
- Ondersteuning voor eenmalige aanmelding met behulp van Azure Active Directory-referenties.
- Taakplanner voor het uitvoeren van taken voor productiepijplijnen.
- Volledig interactief notebook met samenwerking, dashboards, REST API's.
- Onbeperkt aantal clusters die kunnen worden geschaald tot elke grootte.
- Geavanceerde beveiliging, op rollen gebaseerd toegangsbeheer en auditlogboeken.
Als u wilt communiceren met de Azure Databricks-service, gebruikt u de Databricks Workspace-interface in een webbrowser of de opdrachtregelinterface (CLI). Toegang tot de Databricks CLI vanaf elk platform dat ondersteuning biedt voor Python 2.7.9 tot en met 3.6.
De referentie-implementatie maakt gebruik van notebooks om taken opeenvolgend uit te voeren. Elk notebook slaat tussenliggende gegevensartefacten (trainings-, test-, score- of resultaatgegevenssets) op in hetzelfde gegevensarchief als de invoergegevens. Het doel is om het voor u gemakkelijk te maken om het te gebruiken als dat nodig is in uw specifieke use-case. In de praktijk verbindt u uw gegevensbron met uw Azure Databricks-exemplaar, zodat de notebooks rechtstreeks naar uw opslag kunnen worden gelezen en teruggeschreven.
Bewaak de taakuitvoering via de Databricks-gebruikersinterface, het gegevensarchief of de Databricks CLI , indien nodig. Bewaak het cluster met behulp van het gebeurtenislogboek en andere metrische gegevens die Databricks biedt.
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.
Prestaties
Een Azure Databricks-cluster maakt automatisch schalen standaard mogelijk, zodat Tijdens runtime Databricks werknemers dynamisch opnieuw worden ingedeeld om rekening te houden met de kenmerken van uw taak. Bepaalde onderdelen van uw pijplijn zijn mogelijk meer rekenkracht vereisen dan andere. Databricks voegt extra werkrollen toe tijdens deze fasen van uw taak (en verwijdert ze wanneer ze niet meer nodig zijn). Automatisch schalen maakt het eenvoudiger om een hoog clustergebruik te bereiken, omdat u het cluster niet hoeft in te richten om aan een workload te voldoen.
Ontwikkel complexere geplande pijplijnen met behulp van Azure Data Factory met Azure Databricks.
Storage
In deze referentie-implementatie worden de gegevens voor het gemak rechtstreeks in Databricks-opslag opgeslagen. In een productieomgeving kunt u de gegevens echter opslaan in gegevensopslag in de cloud, zoals Azure Blob Storage. Databricks ondersteunt ook Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka en Apache Hadoop.
Kostenoptimalisatie
Kostenoptimalisatie gaat over het zoeken naar manieren om onnodige uitgaven te verminderen en de operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.
Over het algemeen gebruikt u de Azure-prijscalculator om de kosten te schatten. Andere overwegingen worden beschreven in de sectie Kosten in Microsoft Azure Well-Architected Framework.
Azure Databricks is een premium Spark-aanbieding met bijbehorende kosten. Daarnaast zijn er de prijscategorieën Standard en Premium Databricks.
Voor dit scenario is de prijscategorie Standard voldoende. Als uw specifieke toepassing echter vereist dat clusters automatisch worden geschaald voor het verwerken van grotere workloads of interactieve Databricks-dashboards, kan het premium-niveau de kosten verder verhogen.
De oplossingsnotebooks kunnen worden uitgevoerd op elk Spark-platform met minimale bewerkingen om de Databricks-specifieke pakketten te verwijderen. Zie de volgende vergelijkbare oplossingen voor verschillende Azure-platforms:
Dit scenario implementeren
Als u deze referentiearchitectuur wilt implementeren, volgt u de stappen die worden beschreven in de GitHub-opslagplaats om een schaalbare oplossing te bouwen voor het beoordelen van Spark-modellen in batch op Azure Databricks.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.
Hoofdauteur:
- John Ehrlinger | Senior Toegepaste Wetenschapper
Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.
Volgende stappen
- Gegevenswetenschap uitvoeren met Azure Databricks
- Batchdeductiepijplijnen implementeren met Azure Machine Learning
- Zelfstudie: Een Azure Machine Learning-pijplijn bouwen voor batchgewijs scoren