Best practices voor operationele uitmuntendheid
In dit artikel worden aanbevolen procedures voor operationele uitmuntendheid beschreven, georganiseerd op basis van architectuurprincipes die in de volgende secties worden vermeld.
1. Build- en releaseprocessen optimaliseren
Een toegewezen Lakehouse Operations-team maken
Een veelvoorkomende best practice is om een platformbewerkingsteam te hebben om gegevensteams in staat te stellen op een of meer gegevensplatforms te werken. Dit team is verantwoordelijk voor het intern maken van blauwdrukken en aanbevolen procedures. Ze bieden hulpprogramma's, bijvoorbeeld voor automatisering van infrastructuur en selfservicetoegang, en zorgen ervoor dat aan beveiligings- en nalevingsvereisten wordt voldaan. Dit zorgt ervoor dat platformgegevens in een centraal team worden beveiligd, zodat gedistribueerde teams zich kunnen richten op het werken met gegevens en het genereren van nieuwe inzichten.
SCM (Enterprise Source Code Management) gebruiken
Broncodebeheer (SCM) helpt ontwikkelaars effectiever te werken, wat kan leiden tot snellere releasesnelheid en lagere ontwikkelingskosten. Het hebben van een hulpprogramma dat helpt bij het bijhouden van wijzigingen, het onderhouden van code-integriteit, het detecteren van bugs en het terugdraaien naar eerdere versies is een belangrijk onderdeel van uw algehele oplossingsarchitectuur.
Met Databricks Git-mappen kunnen gebruikers notebooks of andere bestanden opslaan in een Git-opslagplaats, met functies zoals het klonen van een opslagplaats, doorvoeren en pushen, pullen, vertakkingsbeheer en het weergeven van bestandsverschil. Gebruik Git-mappen voor betere zichtbaarheid en tracering van code.
DevOps-processen standaardiseren (CI/CD)
Continue integratie en continue levering (CI/CD) verwijst naar het ontwikkelen en implementeren van software in korte, frequente cycli met behulp van geautomatiseerde pijplijnen. Hoewel dit geen nieuw proces is, is het al decennia lang alomtegenwoordig in traditionele software-engineering, het wordt een steeds belangrijker proces voor data engineering- en data science-teams. Om gegevensproducten waardevol te maken, moeten ze tijdig worden geleverd. Bovendien moeten consumenten vertrouwen hebben in de geldigheid van de resultaten binnen deze producten. Door het proces van het bouwen, testen en implementeren van code te automatiseren, kunnen ontwikkelteams vaker en betrouwbaarder releases leveren dan de handmatige processen die nog steeds veel data engineering- en data science-teams beheersen. Zie Wat is CI/CD in Azure Databricks?
Zie CI/CD-technieken met Git- en Databricks Git-mappen (opslagplaatsen) voor meer informatie over aanbevolen procedures voor het ontwikkelen van code met behulp van Databricks Git-mappen. Samen met de Databricks REST API kunt u geautomatiseerde implementatieprocessen maken met behulp van GitHub-acties, Azure DevOps-pijplijnen of Jenkins-taken.
MLOps-processen standaardiseren
MLOps-processen bieden reproduceerbaarheid van ML-pijplijnen, waardoor nauwer gekoppelde samenwerking tussen gegevensteams mogelijk is, waardoor conflicten met devops en IT worden verminderd en de releasesnelheid wordt versneld. Aangezien veel modellen worden gebruikt om belangrijke zakelijke beslissingen te nemen, zorgt het standaardiseren van MLops-processen ervoor dat modellen consistent en betrouwbaar worden ontwikkeld, getest en geïmplementeerd.
Het bouwen en implementeren van ML-modellen is complex. Er zijn veel opties beschikbaar om dit te bereiken, maar weinig op de manier van goed gedefinieerde standaarden. Als gevolg hiervan hebben we de afgelopen jaren de opkomst van machine learning-bewerkingen (MLOps) gezien. MLOps is een set processen en automatisering voor het beheren van modellen, gegevens en code om de stabiliteit van de prestaties en de efficiëntie op lange termijn in ML-systemen te verbeteren. Het omvat gegevensvoorbereiding, verkennende gegevensanalyse (EDA), functie-engineering, modeltraining, modelvalidatie, implementatie en bewaking.
MLOps op het Databricks-platform kan u helpen de prestaties en de efficiëntie op de lange termijn van uw machine learning-systeem (ML) te optimaliseren:
- Houd altijd rekening met uw bedrijfsdoelen: net zoals het kerndoel van ML in een bedrijf is om gegevensgestuurde beslissingen en producten mogelijk te maken, is het kerndoel van MLOps ervoor te zorgen dat deze gegevensgestuurde toepassingen stabiel blijven, up-to-date blijven en positieve gevolgen blijven hebben voor het bedrijf. Houd rekening met de impact van het bedrijf bij het prioriteren van technische werkzaamheden op MLOps: Maakt het nieuwe zakelijke gebruiksscenario's mogelijk? Verbetert het de productiviteit van datateams? Vermindert het operationele kosten of risico's?
- ML-modellen beheren met een speciaal maar open hulpprogramma: U kunt MLflow gebruiken, ontworpen voor de levenscyclus van het ML-model, om ML-modellen bij te houden en te beheren. Zie levenscyclusbeheer van ML met behulp van MLflow.
- MLOps op modulaire wijze implementeren: Net als bij elke softwaretoepassing is codekwaliteit van cruciaal belang voor een ML-toepassing. Modulaire code maakt het testen van afzonderlijke onderdelen mogelijk en vermindert problemen met toekomstige herstructurering van code. Definieer duidelijke stappen (zoals training, evaluatie of implementatie), superstappen (zoals pijplijn voor training-naar-implementatie) en verantwoordelijkheden om de modulaire structuur van uw ML-toepassing te verduidelijken.
Dit wordt gedetailleerd beschreven in het Databricks-ebook The Big Book of MLOps.
Strategie voor omgevingisolatie definiëren
Wanneer een organisatie een gegevensplatform zoals Databricks gebruikt, is er vaak behoefte aan gegevensisolatiegrenzen tussen omgevingen (zoals ontwikkeling en productie) of tussen operationele eenheden van de organisatie.
Isolatiestandaarden kunnen variëren voor uw organisatie, maar meestal bevatten ze de volgende verwachtingen:
- Gebruikers kunnen alleen toegang krijgen tot gegevens op basis van opgegeven toegangsregels.
- Gegevens kunnen alleen worden beheerd door aangewezen personen of teams.
- Gegevens worden fysiek gescheiden in de opslag.
- Gegevens kunnen alleen worden geopend in aangewezen omgevingen.
In Databricks is de werkruimte de primaire gegevensverwerkingsomgeving en er zijn verschillende scenario's waarin afzonderlijke werkruimten de algehele installatie verbeteren, bijvoorbeeld:
- Isoleer verschillende bedrijfseenheden met hun eigen werkruimten om te voorkomen dat de werkruimtebeheerder wordt gedeeld en om ervoor te zorgen dat er geen assets in Databricks onbedoeld worden gedeeld tussen bedrijfseenheden.
- Levenscyclusomgevingen voor softwareontwikkeling isoleren (zoals ontwikkeling, fasering en productie). Met een afzonderlijke productiewerkruimte kunt u bijvoorbeeld nieuwe werkruimte-instellingen testen voordat u deze toepast op productie. Of de productieomgeving vereist mogelijk strengere werkruimte-instellingen dan de ontwikkelomgeving. Als u ontwikkel-, faserings- en productieomgevingen op verschillende virtuele netwerken moet implementeren, hebt u ook verschillende werkruimten nodig voor de drie omgevingen.
- Werkruimten splitsen om resourcebeperkingen te overwinnen: cloudaccounts/abonnementen hebben resourcebeperkingen. Het splitsen van werkruimten in verschillende abonnementen/accounts is één manier om ervoor te zorgen dat er voldoende resources beschikbaar zijn voor elke werkruimte. Daarnaast hebben Databricks-werkruimten ook resourcebeperkingen. Het splitsen van werkruimten zorgt ervoor dat workloads in elke werkruimte altijd toegang hebben tot de volledige set resources.
Er zijn echter enkele nadelen van gedeelde werkruimten die ook moeten worden overwogen:
Samenwerking tussen notitieblokken werkt niet in werkruimten.
Voor meerdere werkruimten moeten zowel de installatie als het onderhoud volledig worden geautomatiseerd (door Terraform, ARM, REST API of andere middelen). Dit is vooral belangrijk voor migratiedoeleinden.
Als elke werkruimte moet worden beveiligd op de netwerklaag (bijvoorbeeld om te beschermen tegen gegevensexfiltratie), kan de vereiste netwerkinfrastructuur erg duur zijn, met name voor grote aantallen werkruimten.
Het is belangrijk om een evenwicht te vinden tussen de noodzaak van isolatie en de noodzaak van samenwerking en de inspanning die nodig is om het te onderhouden.
Catalogusstrategie voor uw onderneming definiëren
Samen met een strategie voor omgevingsisolatie hebben organisaties een strategie nodig voor het structureren en scheiden van metagegevens en gegevens. Gegevens, met inbegrip van persoonsgegevens, betalings- of gezondheidsinformatie, dragen een hoog potentieel risico en met de steeds toenemende bedreiging van gegevensschendingen is het belangrijk om gevoelige gegevens te scheiden en te beschermen, ongeacht de organisatiestrategie die u kiest. Scheid uw gevoelige gegevens van niet-gevoelige gegevens, zowel logisch als fysiek.
Een organisatie kan vereisen dat bepaalde typen gegevens worden opgeslagen in specifieke accounts of buckets in de cloudtenant. Met de Unity Catalog-metastore kunnen metagegevens worden gestructureerd op basis van de naamruimte met drie niveaus catalog > schema > tables/views/volumes
, met opslaglocaties die zijn geconfigureerd op metastore-, catalogus- of schemaniveau om aan dergelijke vereisten te voldoen.
Organisatie- en nalevingsvereisten bepalen vaak dat u bepaalde gegevens alleen in bepaalde omgevingen bewaart. U kunt ook productiegegevens geïsoleerd houden van ontwikkelomgevingen of ervoor zorgen dat bepaalde gegevenssets en domeinen nooit worden samengevoegd. In Databricks is de werkruimte de primaire computeromgeving en catalogi het primaire gegevensdomein. Met behulp van de Unity Catalog-metastore kunnen beheerders en cataloguseigenaren catalogi binden aan specifieke werkruimten. Deze omgevingsbewuste bindingen helpen u ervoor te zorgen dat alleen bepaalde catalogi beschikbaar zijn in een werkruimte, ongeacht de specifieke machtigingen voor gegevensobjecten die aan een gebruiker zijn verleend.
Zie best practices voor Unity Catalog voor een volledige bespreking van deze onderwerpen
2. Implementaties en workloads automatiseren
Infrastructuur als code (IaC) gebruiken voor implementaties en onderhoud
Met Infrastructuur als code (IaC) kunnen ontwikkelaars en operationele teams resources automatisch beheren, bewaken en inrichten in plaats van handmatig hardwareapparaten, besturingssystemen, toepassingen en services te configureren.
HashiCorp Terraform is een populair opensource-hulpprogramma voor het maken van een veilige en voorspelbare cloudinfrastructuur tussen verschillende cloudproviders. De Databricks Terraform-provider beheert Azure Databricks-werkruimten en de bijbehorende cloudinfrastructuur met behulp van een flexibel, krachtig hulpprogramma. Het doel van de Databricks Terraform-provider is het ondersteunen van alle Azure Databricks REST API's, die automatisering ondersteunen van de meest gecompliceerde aspecten van het implementeren en beheren van uw gegevensplatforms. De Databricks Terraform-provider is het aanbevolen hulpprogramma voor het betrouwbaar implementeren en beheren van clusters en taken, het inrichten van Azure Databricks-werkruimten en het configureren van gegevenstoegang.
Rekenconfiguraties standaardiseren
Het standaardiseren van computeromgevingen zorgt ervoor dat dezelfde software, bibliotheken en configuraties worden gebruikt in alle omgevingen. Deze consistentie maakt het eenvoudiger om resultaten te reproduceren, problemen op te sporen en systemen in verschillende omgevingen te onderhouden. Met gestandaardiseerde omgevingen kunnen teams tijd en resources besparen door de noodzaak om volledig nieuwe omgevingen te configureren en in te stellen. Dit vermindert ook het risico op fouten en inconsistenties die kunnen optreden tijdens het handmatig instellen. Standaardisatie maakt ook de implementatie mogelijk van consistent beveiligingsbeleid en -procedures in alle omgevingen. Dit kan organisaties helpen om risico's beter te beheren en te voldoen aan wettelijke vereisten. Ten slotte kan standaardisatie organisaties helpen om de kosten beter te beheren door afval te verminderen en het resourcegebruik te optimaliseren.
Standaardisatie omvat zowel het instellen van de omgeving als het doorlopende resourcebeheer. Voor een consistente installatie raadt Databricks aan om infrastructuur als code te gebruiken. Gebruik rekenbeleid om ervoor te zorgen dat rekenresources die in de loop van de tijd worden gestart, consistent worden geconfigureerd. Beheerders van Databricks-werkruimten kunnen de bevoegdheden voor het maken van rekenkracht van een gebruiker of groep beperken op basis van een set beleidsregels. Ze kunnen Spark-configuratie-instellingen afdwingen en bibliotheekinstallaties binnen het clusterbereik afdwingen. U kunt ook rekenbeleid gebruiken om clusters met T-shirtgrootten (S, M, L) te definiëren voor projecten als een standaardwerkomgeving.
Geautomatiseerde werkstromen gebruiken voor taken
Het instellen van geautomatiseerde werkstromen voor taken kan helpen onnodige handmatige taken te verminderen en de productiviteit te verbeteren via het DevOps-proces voor het maken en implementeren van taken. Het Data Intelligence Platform biedt twee manieren om dit te doen:
Databricks-taken:
Databricks Jobs organiseert pijplijnen voor gegevensverwerking, machine learning en analyse op het Databricks Data Intelligence Platform. Het is een volledig beheerde indelingsservice die is geïntegreerd met het Databricks-platform:
- Databricks-taken zijn een manier om uw toepassingen voor gegevensverwerking en analyse uit te voeren in een Databricks-werkruimte. Uw taak kan één taak zijn of een grote werkstroom voor meerdere taken met complexe afhankelijkheden. Databricks beheert de taakindeling, clusterbeheer, bewaking en foutrapportage voor al uw taken.
- Delta Live Tables is een declaratief framework voor het bouwen van betrouwbare, onderhoudbare en testbare pijplijnen voor gegevensverwerking. U definieert de transformaties die u wilt uitvoeren op uw gegevens en Delta Live Tables beheert taakindeling, clusterbeheer, bewaking, gegevenskwaliteit en foutafhandeling.
Externe orchestrators:
De uitgebreide Azure Databricks REST API wordt gebruikt door externe orchestrators om Databricks-assets, notebooks en taken te organiseren. Zie:
We raden u aan Om Databricks-taken te gebruiken voor alle taakafhankelijkheden in Databricks en, indien nodig, deze ingekapselde werkstromen te integreren in de externe orchestrator
Geautomatiseerde en gebeurtenisgestuurde bestandsopname gebruiken
Gebeurtenisgestuurde (versus planningsgestuurde) bestandsopname heeft verschillende voordelen, waaronder efficiëntie, verbeterde versheid van gegevens en realtime gegevensopname. Het uitvoeren van een taak alleen wanneer een gebeurtenis plaatsvindt, zorgt ervoor dat u geen resources verspilt, waardoor u geld bespaart.
Auto Loader verwerkt stapsgewijs en efficiënt nieuwe gegevensbestanden wanneer ze binnenkomen in de cloudopslag. Het kan veel bestandsindelingen opnemen, zoals JSON, CSV, PARQUET, AVRO, ORC, TEKST en BINARYFILE. Met een invoermap in de cloudopslag verwerkt Auto Loader automatisch nieuwe bestanden wanneer ze binnenkomen.
Voor eenmalige opname kunt u overwegen de opdracht COPY INTO
te gebruiken.
ETL-frameworks gebruiken voor gegevenspijplijnen
Hoewel het mogelijk is om ETL-taken handmatig uit te voeren, zijn er veel voordelen voor het gebruik van een framework. Een framework zorgt voor consistentie en herhaalbaarheid voor het ETL-proces. Door vooraf gebouwde functies en hulpprogramma's te bieden, kan een framework algemene taken automatiseren, tijd en resources besparen. ETL-frameworks kunnen grote hoeveelheden gegevens verwerken en kunnen naar behoefte eenvoudig omhoog of omlaag worden geschaald. Dit maakt het eenvoudiger om resources te beheren en te reageren op veranderende bedrijfsbehoeften. Veel frameworks bevatten ingebouwde mogelijkheden voor foutafhandeling en logboekregistratie, waardoor het gemakkelijker is om problemen te identificeren en op te lossen. En ze omvatten vaak controles en validaties van gegevenskwaliteit om ervoor te zorgen dat gegevens voldoen aan bepaalde standaarden voordat ze in het datawarehouse of data lake worden geladen.
Delta Live Tables is een declaratief framework voor het bouwen van betrouwbare, onderhoudbare en testbare pijplijnen voor gegevensverwerking. U definieert de transformaties die u wilt uitvoeren op uw gegevens en Delta Live Tables verwerkt taakindeling, clusterbeheer, bewaking, gegevenskwaliteit en foutafhandeling.
Met Delta Live Tables kunt u end-to-end gegevenspijplijnen definiëren in SQL of Python: geef de gegevensbron, transformatielogica en doelstatus van de gegevens op. Delta Live Tables onderhoudt afhankelijkheden en bepaalt automatisch de infrastructuur waarop de taak moet worden uitgevoerd.
Om de gegevenskwaliteit te beheren, bewaakt Delta Live Tables trends in de gegevenskwaliteit in de loop van de tijd en voorkomt dat er ongeldige gegevens worden ingevoerd via validatie- en integriteitscontroles met vooraf gedefinieerd foutbeleid. Zie Wat is Delta Live Tables?
Volg de implementatiecode-benadering voor ML-workloads
Code en modellen worden vaak asynchroon door de softwareontwikkelingsfasen uitgevoerd. Er zijn twee manieren om dit te bereiken:
- code implementeren: een ML-project wordt gecodeerd in de ontwikkelomgeving en deze code wordt vervolgens verplaatst naar de faseringsomgeving waar het wordt getest. Na een geslaagde test wordt de projectcode geïmplementeerd in de productieomgeving, waar deze wordt uitgevoerd.
- model implementeren: Modeltraining wordt uitgevoerd in de ontwikkelomgeving. Het geproduceerde modelartefact wordt vervolgens verplaatst naar de faseringsomgeving voor modelvalidatiecontroles voordat het model in de productieomgeving wordt geïmplementeerd.
Zie Modelimplementatiepatronen.
Databricks raadt een implementatiecodebenadering aan voor het merendeel van de gebruiksvoorbeelden. De belangrijkste voordelen van dit model zijn:
- Dit past bij traditionele werkstromen voor software-engineering, met behulp van vertrouwde hulpprogramma's zoals Git- en CI/CD-systemen.
- Het ondersteunt geautomatiseerde hertraining in een vergrendelde omgeving.
- Hiervoor is alleen de productieomgeving nodig om leestoegang te hebben tot prod-trainingsgegevens.
- Het biedt volledige controle over de trainingsomgeving, waardoor reproduceerbaarheid wordt vereenvoudigd.
- Hiermee kan het data science-team modulaire code en iteratieve tests gebruiken, wat helpt bij coördinatie en ontwikkeling in grotere projecten.
Dit wordt gedetailleerd beschreven in het Databricks-ebook The Big Book of MLOps.
Een modelregister gebruiken om code en modellevenscyclus los te koppelen
Omdat modellevenscycli niet een-op-een overeenkomen met de levenscyclus van code, staat Unity Catalog de volledige levenscyclus van ML-modellen toe in de gehoste versie van het MLflow-modelregister. Modellen in Unity Catalog breiden de voordelen van Unity Catalog uit naar ML-modellen, waaronder gecentraliseerd toegangsbeheer, controle, herkomst en modeldetectie in werkruimten. Modellen in Unity Catalog zijn compatibel met de open source MLflow Python-client.
Ml-experimenttracking automatiseren
Ml-experimenten bijhouden is het proces voor het opslaan van relevante metagegevens voor elk experiment en het organiseren van de experimenten. Deze metagegevens omvatten experimentinvoer/uitvoer, parameters, modellen en andere artefacten. Het doel van het bijhouden van experimenten is om reproduceerbare resultaten te maken in elke fase van het ml-modelontwikkelingsproces. Door dit proces te automatiseren, is het schalen van het aantal experimenten eenvoudiger en zorgt u voor consistentie in de metagegevens die in alle experimenten zijn vastgelegd.
Databricks Autologging is een oplossing zonder code waarmee automatische logboekregistratie van MLflow wordt uitgebreid om automatische experimenten bij te houden voor machine learning-trainingssessies in Azure Databricks. Databricks Autologging legt automatisch modelparameters, metrische gegevens, bestanden en herkomstgegevens vast wanneer u modellen traint met trainingsuitvoeringen die zijn vastgelegd als MLflow-traceringsuitvoeringen.
Dezelfde infrastructuur opnieuw gebruiken om ML-pijplijnen te beheren
De gegevens die worden gebruikt voor ML-pijplijnen zijn doorgaans afkomstig uit dezelfde bronnen als de gegevens die worden gebruikt voor andere gegevenspijplijnen. ML- en gegevenspijplijnen zijn vergelijkbaar omdat ze beide gegevens voorbereiden voor analyse van zakelijke gebruikers of modeltraining. Beide moeten ook schaalbaar, veilig en correct worden bewaakt. In beide gevallen moet de gebruikte infrastructuur deze activiteiten ondersteunen.
Databricks Terraform-provider gebruiken om implementaties van ML-omgevingen te automatiseren. ML vereist het implementeren van infrastructuur, zoals deductietaken, het leveren van eindpunten en featurization-taken. Alle ML-pijplijnen kunnen worden geautomatiseerd als taken en veel gegevensgerichte ML-pijplijnen kunnen de meer gespecialiseerde AutoLoader gebruiken om afbeeldingen en andere gegevens en Delta Live Tables op te nemen om functies te berekenen of metrische gegevens te bewaken.
Zorg ervoor dat u Model Serving gebruikt voor implementatie op bedrijfsniveau van ML-modellen.
Declaratief beheer gebruiken voor complexe gegevens en ML-projecten
Declaratieve frameworks in MLOps stellen teams in staat om de gewenste resultaten op hoog niveau te definiëren en het systeem de details van de uitvoering te laten afhandelen, de implementatie en schaal van ML-modellen te vereenvoudigen. Deze frameworks ondersteunen continue integratie en implementatie, automatiseren testen en infrastructuurbeheer en zorgen voor modelgovernance en naleving, waardoor de markttijd wordt versneld en de productiviteit gedurende de ML-levenscyclus wordt verhoogd.
Databricks Asset Bundles (DABs) zijn een hulpprogramma voor het stroomlijnen van de ontwikkeling van complexe gegevens, analyses en ML-projecten voor het Databricks-platform. Bundels maken het eenvoudig om complexe projecten tijdens actieve ontwikkeling te beheren door CI/CD-mogelijkheden te bieden in uw softwareontwikkelingswerkstroom met behulp van één, beknopte en declaratieve YAML-syntaxis. Door bundels te gebruiken om het testen, implementeren en configureren van uw project te automatiseren, kunt u fouten verminderen terwijl u aanbevolen procedures voor software in uw organisatie promoveert als sjabloonprojecten.
3. Capaciteit en quota beheren
Servicelimieten en quota beheren
Het beheren van servicelimieten en quota is belangrijk voor het onderhouden van een goed functionerende infrastructuur en het voorkomen van onverwachte kosten. Elke service die in een cloud wordt gestart, moet rekening houden met limieten, zoals toegangsfrequentielimieten, aantal exemplaren, aantal gebruikers en geheugenvereisten. Controleer de cloudlimieten voor uw cloudprovider. Voordat u een oplossing ontwerpt, moeten deze limieten worden begrepen.
Voor het Databricks-platform zijn er verschillende soorten limieten:
Databricks-platformlimieten: dit zijn specifieke limieten voor Azure Databricks-resources. De limieten voor het algehele platform worden beschreven in resourcelimieten.
Limieten voor Unity Catalog: Quota voor Unity Catalog-resources
Quota voor abonnementen/accounts: Azure Databricks maakt gebruik van cloudresources voor de bijbehorende service. Workloads in Azure Databricks worden bijvoorbeeld uitgevoerd op clusters waarvoor het Databricks-platform de virtuele machines (VM) van de cloudprovider start. Cloudproviders stellen standaardquota in voor het aantal VM's dat tegelijkertijd kan worden gestart. Afhankelijk van de behoefte moeten deze quota mogelijk worden aangepast.
Zie Vm-family vCPU-quota verhogen voor meer informatie.
Op een vergelijkbare manier hebben opslag-, netwerk- en andere cloudservices beperkingen die moeten worden begrepen en meegenomen.
Investeren in capaciteitsplanning
Capaciteitsplanning omvat het beheren van cloudresources, zoals opslag, rekenkracht en netwerken om prestaties te behouden terwijl de kosten worden geoptimaliseerd. Plan variaties in de verwachte belasting, die om verschillende redenen kunnen optreden, waaronder plotselinge bedrijfswijzigingen of zelfs wereldevenementen. Test belastingvariaties, inclusief onverwachte, om ervoor te zorgen dat uw workloads kunnen worden geschaald. Zorg ervoor dat alle regio's voldoende kunnen worden geschaald om de totale belasting te ondersteunen als één regio uitvalt. Overweeg het volgende:
- Technologie- en servicebeperkingen en cloudbeperkingen. Zie Capaciteit en quota beheren.
- SLA's om te bepalen welke services in het ontwerp moeten worden gebruikt.
- Kostenanalyse om te bepalen hoeveel verbetering in de toepassing wordt gerealiseerd als de kosten worden verhoogd. Evalueer of de prijs de investering waard is.
Het is belangrijk om inzicht te krijgen en plannen voor gebeurtenissen met een hoge prioriteit (volume). Als de ingerichte cloudresources niet voldoende zijn en workloads niet kunnen worden geschaald, kan een dergelijke toename van het volume leiden tot een storing.
4. Bewaking, waarschuwingen en logboekregistratie instellen
Bewakingsprocessen tot stand brengen
Het opzetten van bewakingsprocessen voor een gegevensplatform is om verschillende redenen essentieel. Bewakingsprocessen maken vroege detectie mogelijk van problemen zoals problemen met gegevenskwaliteit, prestatieknelpunten en systeemfouten, waardoor downtime en gegevensverlies kunnen worden voorkomen. Ze kunnen helpen bij het identificeren van inefficiënties in het gegevensplatform en het optimaliseren van kosten door afval te verminderen en het resourcegebruik te verbeteren. Daarnaast kunnen bewakingsprocessen helpen om naleving van wettelijke vereisten te garanderen en audittrails voor gegevenstoegang en -gebruik te bieden.
Systeemeigen en externe hulpprogramma's gebruiken voor platformbewaking
Het Databricks Data Intelligence Platform heeft ingebouwde bewakingsoplossingen en integreert externe bewakingssystemen:
Platformbewaking met behulp van Azure-bewakingsoplossingen
Bewaking is essentieel voor elke oplossing op productieniveau en Azure Databricks biedt robuuste functionaliteit voor het bewaken van aangepaste toepassingsgegevens, streamingquerygebeurtenissen en toepassingslogboekberichten. Azure Databricks verstuurt deze bewakingsgegevens naar verschillende logboekregistratieservices. In de volgende artikelen wordt uitgelegd hoe u bewakingsgegevens van Azure Databricks naar Azure Monitor verstuurt, het platform van Azure voor bewakingsgegevens.
Databricks Lakehouse Monitoring
Met Databricks Lakehouse Monitoring kunt u de statistische eigenschappen en kwaliteit van de gegevens in alle tabellen in uw account bewaken. Bewaking van gegevenskwaliteit biedt kwantitatieve maatregelen om gegevensconsistentie in de loop van de tijd bij te houden en te bevestigen, en helpt gebruikers te identificeren en waarschuwen bij wijzigingen in gegevensdistributie en modelprestaties. U kunt ook de prestaties van machine learning-modellen bijhouden door deductietabellen te bewaken die modelinvoer en voorspellingen bevatten.
Zie De kosten van Lakehouse Monitoring bekijken om inzicht te hebben in de kosten van Lakehouse Monitoring.
SQL Warehouse-bewaking
Het bewaken van het SQL-warehouse is essentieel om inzicht te hebben in het belastingsprofiel in de loop van de tijd en om het SQL Warehouse efficiënt te beheren. Met SQL Warehouse-bewaking kunt u informatie bekijken, zoals het aantal query's dat wordt verwerkt door het magazijn of het aantal clusters dat aan het magazijn is toegewezen.
Databricks SQL-waarschuwingen
Databricks SQL-waarschuwingen voeren periodiek query's uit, evalueren gedefinieerde voorwaarden en meldingen verzenden als aan een voorwaarde wordt voldaan. U kunt waarschuwingen instellen om uw bedrijf te bewaken en meldingen te verzenden wanneer gerapporteerde gegevens buiten de verwachte limieten vallen.
Daarnaast kunt u een Databricks SQL-waarschuwing maken op basis van een metrische waarde uit een metrische gegevenstabel, bijvoorbeeld om een melding te ontvangen wanneer een statistiek uit een bepaald bereik wordt verplaatst of als gegevens zijn afgelopen in vergelijking met de basislijntabel.
Bewaking van automatische laadprogramma's
Auto Loader biedt een SQL-API voor het inspecteren van de status van een stream. Met SQL-functies vindt u metagegevens over bestanden die zijn gedetecteerd door een stroom voor automatisch laden. Zie Bewaking van automatische laadprogramma's.
Met de interface van de Stream-listener voor streamingquery's van Apache Spark kunnen automatisch laden streams verder worden bewaakt.
Taakbewaking
Met taakbewaking kunt u problemen in uw Databricks-taken identificeren en oplossen, zoals fouten, vertragingen of prestatieknelpunten. Taakbewaking biedt inzicht in de prestaties van taken, zodat u het resourcegebruik kunt optimaliseren, de verspilling kunt verminderen en de algehele efficiëntie kunt verbeteren.
Bewaking van Delta Live-tabellen
Er wordt een gebeurtenislogboek gemaakt en onderhouden voor elke Delta Live Tables-pijplijn. Het gebeurtenislogboek bevat alle informatie met betrekking tot de pijplijn, waaronder auditlogboeken, controles van gegevenskwaliteit, voortgang van pijplijnen en gegevensherkomst. U kunt het gebeurtenislogboek gebruiken om de status van uw gegevenspijplijnen bij te houden, te begrijpen en te bewaken.
Streamingbewaking
Streaming is een van de belangrijkste technieken voor gegevensverwerking voor opname en analyse. Het biedt gebruikers en ontwikkelaars lage latentie en realtime gegevensverwerkingsmogelijkheden voor analyse en triggering van acties. Met het Databricks Data Intelligence Platform kunt u structured streaming-query's bewaken.
ML- en AI-bewaking
Het bewaken van de prestaties van modellen in productiewerkstromen is een belangrijk aspect van de levenscyclus van HET AI- en ML-model. Deductietabellen vereenvoudigen bewaking en diagnostische gegevens voor modellen door continu logboekregistratie van aanvraaginvoer en -antwoorden (voorspellingen) van Mosaic AI Model Serving-eindpunten en deze op te slaan in een Delta-tabel in Unity Catalog. Vervolgens kunt u alle mogelijkheden van het Databricks-platform gebruiken, zoals DBSQL-query's, notebooks en Lakehouse Monitoring om uw modellen te bewaken, fouten op te sporen en te optimaliseren.
Zie De kwaliteit en eindpuntstatus van het model bewaken voor meer informatie over het bewaken van het model.
Beveiligingsbewaking
Zie Beveiliging, naleving en privacy - Beveiligingsbewaking.
Kostenbewaking
Zie Kostenoptimalisatie - Kosten bewaken en beheren.