Zephyrnet-logo

Hoe Data Engineering in de praktijk implementeren?

Datum:


Inhoudsopgave

  1. Wat is data-engineering?
  2. Onderdelen van data-engineering
  3. Object Opslag
  4. Objectopslag MinIO
  5. Installeer Object Storage MinIO
  6. Data Lake met buckets
  7. Demo Data Lake-beheer
  8. Conclusie
  9. Referenties

Wat is data-engineering?

In eerste instantie hebben we de definitie van Software Engineering, als de tak van engineering die in staat is programma's, systemen en applicaties te specificeren, ontwikkelen, uitvoeren en onderhouden. Dat lost bedrijfsproblemen op en helpt bedrijven hun concurrentievermogen te vergroten.

Binnen Software Engineering hebben we verschillende specialisaties, zoals onder meer sociale netwerken, ERP, Projectmanagement, Mobiele Apps, Netwerkbeheer en Data Science. We kunnen Data Engineering opvatten als een subset van Data Science, waarbij data uit Big Data worden ontvangen en voorbereid voor gebruik in een Machine Learning Model.

Data-engineering 

 

Gegevensengineering | Software-engineering

Bron afbeelding: GitHub

Componenten voor data-engineering

Componenten voor data-engineering

Bron afbeelding:GitHub

Data Engineering wordt gevormd door een breed scala aan software, die wordt uitgevoerd vanuit een flow, gecreëerd door de Data Scientist.

  • Gegevensdetectie
  • observeerbaarheid
  • Bestuur
  • MLops
  • Workflow
  • Notitieboekjes
  • Formaten
  • Levenscyclus van gegevens
  • virtualisatie
  • Berekenen
  • Object Opslag
  • Meta-winkels
  • orkestratie
  • Analytics-motor
  • Innemen – Gegevens
  • Innemen – Toepassing

In dit artikel zullen we Data Engineering implementeren, waarbij we een Object Storage-component toepassen, met dataopslagfunctionaliteiten. Na het extraheren van een externe Big Data, later na datamanipulatie en -verwerking worden de gegevens opgeslagen in deze Object-component. Opslag bevindt zich al in een gestructureerde vorm die kan worden gebruikt door een Machine Learning-model.

Onderdelen van data-engineering

Data Engineering kan worden geclassificeerd in verschillende componenten, die afzonderlijk kunnen worden uitgevoerd of kunnen worden geïntegreerd in een dataflow-pijplijn. Deze componenten kunnen worden uitgevoerd op een cloudinfrastructuur of op lokale servers.

Voor het identificeren van nieuwe data hebben we de Data Discovery component, voor het vastleggen en verwerken van logs hebben we de Observability component, voor datamanagement hebben we de governance componenten.

Data Engineering en zijn praktijken

Bron afbeelding: GitHub

We kunnen MLOps begrijpen als een uitbreiding van DevOps toegepast op Data Science-applicaties, waarbij we twee stroomlagen kunnen visualiseren, de eerste de Data-laag en de tweede de Machine Learning-laag.

In de Data Layer voert de Data Scientist het implementatieproces uit via een continue en cyclische pijplijn, die begint met het verzamelen van gegevens, wat kan worden begrepen door het klassieke ETL-extractieproces. Dan hebben we de Data Ingestion-taak, die de gegevens laadt en de pijplijn indexeert, de Data Analysis-taak beheert en selecteert de gegevens, Data Labeling voegt een tag toe aan de gegevens om het toekomstige classificatieproces te vergemakkelijken, de taak Data Validation controleert de bruikbaarheid van de data, om uiteindelijk voorbereid te worden op de Machine Learning-laag.

In de onderstaande afbeelding kunnen we de stroom van de Machine Learning-laag zien, die de gegevens ontvangt die zijn voorbereid uit de vorige laag en de machine learning-training start. Bij de validatie van het machine learning-model wordt het model met de hoogste prestaties overgenomen voor gebruik in de dataset. Bij Machine Learning-validatie gebeurt de validatie met testdata, na deze laatste verificatie wordt het Machine Learning-model geëxporteerd naar een cloudinfrastructuur, zoals Google Cloud Platform, Microsoft Azure Machine Learning of AWS Machine Learning Sage Marker.

Gegevensengineering | Machine learning-bewerkingen

Bron afbeelding: GitHub

Als resultaat van MLOps biedt de Data Scientist, na het uitvoeren van de Data Layer- en Machine Learning-laagstromen, de gebruiker, bedrijfsspecialist, een aanpasbaar dashboard met de inzichten en voorspellingen die door de MLOps-architectuur worden gegenereerd.

Machine learning-bewerkingen 2

Bron afbeelding: GitHub

Objectopslag in data-engineering

Object Storage is een fundamenteel onderdeel van Data Engineering, met onbeperkte data-opslagcapaciteit, gegarandeerd voor Big Data, flexibele en zeer schaalbare data-opslag.

Momenteel hebben we AWS S3 als de belangrijkste objectopslag beschikbaar in de cloud, met een groot aantal bedrijven die gegevens van verschillende applicaties hosten.

We hebben services met gelijkwaardige functionaliteit in Oracle Cloud, Google Cloud Platform, Microsoft Azure en IBM Cloud.

In dit artikel zullen we de open-source Minio-software gedetailleerd beschrijven, die kan worden uitgevoerd op een lokale server of een virtuele cloudserver zoals AWS EC2.

 

Hieronder vindt u de belangrijkste kenmerken van de objectopslagsoftware:

  • Gericht op Big Data
  • Volledige gegevenslevenscyclus
  • Duurzaamheid van gegevens
  • Beschikbaarheid van data
  • Onbeperkte schaalbaarheid
  • Hoge overdrachtskosten
  • Geïntegreerd met identiteitsbeheer
  • AutoCorrectie
  • gegevensbescherming
  • Versleuteling aan de serverzijde
  • elastische maatvoering
  • Flexibele connectiviteitsopties
  • Eenvoudige integratie
  • Fouttolerantie

Objectopslag – MinIO voor data-engineering

Object Storage MinIO is open source-software, een goed alternatief voor AWS S3. Het kan eenvoudig op een Linux-server worden geïnstalleerd en op dezelfde manier worden aangepast als AWS S3.

We hebben een compleet dashboard waar we buckets aanmaken, toegangsautorisatie per gebruiker verlenen, groepen aanmaken, IAM-beleid definiëren, logs bekijken en de toegang monitoren. Deze functies zijn beschikbaar in de gratis versie.

Objectopslag | Minio

Bron afbeelding: menie

Installeer objectopslag – MinIO

  • Data Lake installeren en configureren met Minio Server
  • Maak in de DataScience-directory de data lake-directory.
  • Als u Windows gebruikt, opent u de Powershell-terminal en voert u de opdracht uit:
docker run -d -p 9000:9000 -p 9001:9001 -v "$PWD/datalake:/data" minio/minio server /data --console-adres ":9001" --naam minio
http://localhost:9001/login
[username]: minioadmin
[password]: minioadmin 

Data Lake in data-engineering

We implementeren Data Lake, via de geïnstalleerde Object Storage MinIO, in de opgenomen gegevensstroom van gegevensextractie uit een externe bron. De gegevens worden opgeslagen in de eerste bucket met de naam Curated Bucket, later hebben we de tweede bucket met de naam Processing Bucket en eindigen we hebben de derde Bucket genaamd Landing Bucket, waarin het Machine Learning Model toegang krijgt tot de datasets, voor training en testen van het model.

Datameer

Bron afbeelding: GitHub

Bucketbeheer

Gegevensengineering | Bucketbeheer

Bron afbeelding: GitHub

Hieronder vindt u de Data Lake-repository op GitHub:

https://github.com/DataScience-2021/Analytics-Vidhya/tree/main/%23Data-Engineering/datalake

Samengestelde emmer #1

Samengestelde emmer #1

Bron afbeelding: GitHub

Hieronder vindt u de Curated Bucket-repository op GitHub:

https://github.com/DataScience-2021/Analytics-Vidhya/tree/main/%23Data-Engineering/datalake/curated

Verwerkingsemmer #2

Gegevensengineering | Emmerverwerking

Bron afbeelding: GitHub

Hieronder vindt u de Processing Bucket-repository op GitHub:

https://github.com/DataScience-2021/Analytics-Vidhya/tree/main/%23Data-Engineering/datalake/processing

Landingsemmer #3

Landende emmer

https://github.com/DataScience-2021/Analytics-Vidhya/blob/main/%23Data-Engineering/DataEngineering/Slide22.PNG

Hieronder vindt u de Landing Bucket-repository op GitHub:

https://github.com/DataScience-2021/Analytics-Vidhya/tree/main/%23Data-Engineering/datalake/landing

In Landing Bucket hebben we de output van het Machine Learning-model, na training, testen en validatie van het model.

Volg de uitvoer van het model:

https://github.com/DataScience-2021/Analytics-Vidhya/blob/main/%23Data-Engineering/datalake/landing/performance-evaluation/employee_performance_evaluation.json

{"emp_id":10001,"satisfaction_level":38.0,"last_evaluation":53.0}
{"emp_id":10002,"satisfaction_level":80.0,"last_evaluation":86.0}
{"emp_id":10003,"satisfaction_level":11.0,"last_evaluation":88.0}
{"emp_id":10004,"satisfaction_level":72.0,"last_evaluation":87.0}
{"emp_id":10005,"satisfaction_level":37.0,"last_evaluation":52.0}
{"emp_id":10006,"satisfaction_level":41.0,"last_evaluation":50.0}
{"emp_id":10007,"satisfaction_level":10.0,"last_evaluation":77.0}
{"emp_id":10008,"satisfaction_level":92.0,"last_evaluation":85.0}
{"emp_id":10009,"satisfaction_level":89.0,"last_evaluation":100.0}
{"emp_id":10010,"satisfaction_level":42.0,"last_evaluation":53.0}
{"emp_id":10011,"satisfaction_level":45.0,"last_evaluation":54.0}
{"emp_id":10012,"satisfaction_level":11.0,"last_evaluation":81.0}
{"emp_id":10013,"satisfaction_level":84.0,"last_evaluation":92.0}
{"emp_id":10014,"satisfaction_level":41.0,"last_evaluation":55.0}
{"emp_id":10015,"satisfaction_level":36.0,"last_evaluation":56.0}
{"emp_id":10016,"satisfaction_level":38.0,"last_evaluation":54.0}
{"emp_id":10017,"satisfaction_level":45.0,"last_evaluation":47.0}
{"emp_id":10018,"satisfaction_level":78.0,"last_evaluation":99.0}
{"emp_id":10019,"satisfaction_level":45.0,"last_evaluation":51.0}
{"emp_id":10020,"satisfaction_level":76.0,"last_evaluation":89.0}
{"emp_id":10021,"satisfaction_level":11.0,"last_evaluation":83.0}
{"emp_id":10022,"satisfaction_level":38.0,"last_evaluation":55.0}
{"emp_id":10023,"satisfaction_level":9.0,"last_evaluation":95.0}
{"emp_id":10024,"satisfaction_level":46.0,"last_evaluation":57.0}
{"emp_id":10025,"satisfaction_level":40.0,"last_evaluation":53.0}

Demo Data Lake-beheer

Demo Data Lake-beheer

Een korte demonstratie van ons Data Lake dat is gemaakt met behulp van de MinIO Object Storage-bronnen, met drie buckets, waarvan de laatste Landing Bucket is, zal worden benaderd door het Machine Learning-model.

Conclusie

Dit artikel was bedoeld om Data Science-professionals te laten zien hoe ze Data Engineering-componenten op een agile manier kunnen gebruiken om Machine Learning-modellen met goede prestaties en nauwkeurigheid te genereren.

We laten verschillende softwarecomponenten zien, die onderdeel zijn van Data Engineering, met hun belangrijkste functionaliteiten. We detailleren de Object Storage technisch, we implementeren een Data Lake, met drie buckets, dat is geïntegreerd in een Machine Learning-model.

Op deze manier geloof ik dat het goed is om de Object Storage MinIO te gebruiken bij het creëren van een Data Lake voor bedrijven die aan de reis in Machine Learning beginnen.

Referenties

Home

https://blogs.oracle.com/lad-cloud-experts-pt/post/o-que-e-object-storage-como-eu-utilizo

https://min.io/

Auteur referentie:

  1. GitHub
  2. Twitter
  3. Medium

De media die in dit artikel worden getoond, zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

PlatoAi. Web3 opnieuw uitgevonden. Gegevensintelligentie versterkt.
Klik hier om toegang te krijgen.

Bron: https://www.analyticsvidhya.com/blog/2021/12/how-to-implement-data-engineering-in-practice/

spot_img

Laatste intelligentie

spot_img