Pijplijnen voor opname, ETL en stroomverwerking met Azure Databricks en Delta Lake

Azure Databricks
Azure Data Lake Storage
Azure IoT Hub
Azure Data Factory
Azure Event Hubs

Oplossingsideeën

Dit artikel is een oplossingsidee. Als u wilt dat we de inhoud uitbreiden met meer informatie, zoals mogelijke use cases, alternatieve services, implementatieoverwegingen of prijsrichtlijnen, laat het ons dan weten door GitHub-feedback te geven.

Uw organisatie moet gegevens van elke indeling, grootte en snelheid opnemen in de cloud op een consistente manier. De oplossing in dit artikel voldoet aan die behoefte aan een architectuur die ETL (extract, transform en load) van uw gegevensbronnen implementeert in een data lake. De data lake kan alle gegevens bevatten, inclusief getransformeerde en gecureerde versies op verschillende schaalaanpassingen. De gegevens kunnen worden gebruikt voor gegevensanalyse, business intelligence (BI), rapportage, gegevenswetenschap en machine learning.

Apache en Apache® Spark™ zijn gedeponeerde handelsmerken of handelsmerken van de Apache Software Foundation in de Verenigde Staten en/of andere landen. Er wordt geen goedkeuring door De Apache Software Foundation geïmpliceerd door het gebruik van deze markeringen.

Architectuur

Diagram that shows the architecture and data flow for ETL and stream processing with Azure Databricks.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  1. Gegevens worden op de volgende manieren opgenomen:

    • Gebeurteniswachtrijen zoals Event Hubs, IoT Hub of Kafka verzenden streaminggegevens naar Azure Databricks, die gebruikmaakt van de geoptimaliseerde Delta Engine om de gegevens te lezen.
    • Geplande of geactiveerde Data Factory-pijplijnen kopiëren gegevens uit verschillende gegevensbronnen in onbewerkte indelingen. De Auto Loader in Azure Databricks verwerkt de gegevens zodra deze binnenkomen.
  2. Azure Databricks laadt de gegevens in geoptimaliseerde, gecomprimeerde Delta Lake-tabellen of -mappen in de bronslaag in Data Lake Storage.

  3. Streaming-, geplande of geactiveerde Azure Databricks-taken lezen nieuwe transacties uit de Bronslaag van Data Lake Storage. De taken worden samengevoegd, opgeschoond, getransformeerd en geaggregeerd voordat u ACID-transacties gebruikt om deze te laden in gecureerde gegevenssets in de Data Lake Storage Silver- en Gold-lagen.

  4. De gegevenssets worden opgeslagen in Delta Lake in Data Lake Storage.

Elke service neemt gegevens op in een gemeenschappelijke indeling om consistentie te garanderen. De architectuur maakt gebruik van een gedeelde data lake op basis van de open Delta Lake-indeling. Onbewerkte gegevens worden opgenomen uit verschillende batch- en streamingbronnen om een geïntegreerd gegevensplatform te vormen. Het platform kan worden gebruikt voor downstreamgebruiksvoorbeelden, zoals analyses, BI-rapportage, gegevenswetenschap, AI en machine learning.

Brons-, zilver- en goudopslaglagen

Met het medal pattern, bestaande uit brons-, zilver- en goudopslaglagen, hebben klanten flexibele toegang en uitbreidbare gegevensverwerking.

  • Bronstabellen bieden het toegangspunt voor onbewerkte gegevens wanneer deze in Data Lake Storage terechtkomen. De gegevens worden opgenomen in de onbewerkte bronindeling en geconverteerd naar de open, transactionele Delta Lake-indeling voor verwerking. De oplossing neemt de gegevens op in de bronslaag met behulp van:
    • Apache Spark-API's in Azure Databricks. De API's lezen streaming-gebeurtenissen van Event Hubs of IoT Hub en converteren deze gebeurtenissen of onbewerkte bestanden vervolgens naar de Delta Lake-indeling.
    • De opdracht COPY INTO . Gebruik de opdracht om gegevens rechtstreeks vanuit een bronbestand of map naar Delta Lake te kopiëren.
    • Het automatisch laden van Azure Databricks. De Auto Loader haalt bestanden op wanneer ze binnenkomen in de data lake en schrijft ze naar de Delta Lake-indeling.
    • De kopieeractiviteit van Data Factory. Klanten kunnen deze optie gebruiken om de gegevens van alle ondersteunde indelingen te converteren naar de Delta Lake-indeling.
  • Silver-tabellen slaan gegevens op terwijl deze worden geoptimaliseerd voor BI- en data science-use cases. De bronslaag neemt onbewerkte gegevens op en vervolgens worden er meer ETL- en stroomverwerkingstaken uitgevoerd voor het filteren, opschonen, transformeren, samenvoegen en aggregeren van de gegevens in gecureerde Silver-gegevenssets. Bedrijven kunnen een consistente berekeningsengine gebruiken, zoals de open-standaarden Delta Engine, bij het gebruik van Azure Databricks als de eerste service voor deze taken. Ze kunnen vervolgens vertrouwde programmeertalen gebruiken, zoals SQL, Python, R of Scala. Bedrijven kunnen ook herhaalbare DevOps-processen en kortstondige rekenclusters gebruiken die zijn aangepast aan hun afzonderlijke workloads.
  • Gouden tabellen bevatten verrijkte gegevens, klaar voor analyse en rapportage. Analisten kunnen hun keuzemethode gebruiken, zoals PySpark, Koalas, SQL, Power BI en Excel, om nieuwe inzichten te verkrijgen en query's te formuleren.

Onderdelen

  • Event Hubs parseert en beoordeelt streamingberichten van verschillende bronnen, waaronder on-premises systemen, en biedt realtime informatie.
  • Data Factory organiseert gegevenspijplijnen voor opname, voorbereiding en transformatie van al uw gegevens op elke schaal.
  • Data Lake Storage combineert streaming- en batchgegevens, waaronder gestructureerde, ongestructureerde en semi-gestructureerde gegevens, zoals logboeken, bestanden en media.
  • Azure Databricks schoont en transformeert de structuurloze gegevenssets en combineert deze met gestructureerde gegevens uit operationele databases of datawarehouses.
  • IoT Hub biedt u zeer veilige en betrouwbare communicatie tussen uw IoT-toepassing en -apparaten.
  • Delta Lake in Data Lake Storage ondersteunt ACID-transacties voor betrouwbaarheid en is geoptimaliseerd voor efficiënte opname, verwerking en query's.

Scenariodetails

Opname, ETL en stroomverwerking met Azure Databricks is eenvoudig, open en samenwerkend:

  • Eenvoudig: Een open data lake met een gecureerde laag in een opensource-indeling vereenvoudigt de gegevensarchitectuur. Delta Lake, een opensource-hulpprogramma, biedt toegang tot de Azure Data Lake Storage-data lake. Delta Lake in Data Lake Storage biedt ondersteuning voor atomiciteits-, consistentie-, isolatie- en duurzaamheidstransacties (ACID) voor betrouwbaarheid. Delta Lake is geoptimaliseerd voor efficiënte opname, verwerking en query's.
  • Open: De oplossing ondersteunt opensource-code, open standaarden en open frameworks. Het werkt ook met populaire geïntegreerde ontwikkelomgevingen (IDE's), bibliotheken en programmeertalen. Via systeemeigen connectors en API's werkt de oplossing ook met een breed scala aan andere services.
  • Samenwerking: Data engineers, data scientists en analisten werken samen met deze oplossing. Ze kunnen samenwerkende notebooks, IDE's, dashboards en andere hulpprogramma's gebruiken om algemene onderliggende gegevens te openen en te analyseren.

Azure Databricks kan naadloos worden geïntegreerd met andere Azure-services, zoals Data Lake Storage, Azure Data Factory, Azure Event Hubs en Azure IoT Hub.

Potentiële gebruikscases

Deze oplossing is geïnspireerd op het systeem dat Providence Health Care heeft gebouwd voor realtime analyse. Elke branche die batch- of streaminggegevens opneemt, kan deze oplossing ook overwegen. Voorbeelden zijn:

  • Retail e-commerce
  • Financiën
  • Gezondheidszorg en biowetenschappen
  • Energieleveranciers

Volgende stappen

  • Spanish Point Technologies bouwt zijn matching engine met behulp van Azure Databricks en Azure Data Factory om gegevens op schaal op te nemen om muzikanten te helpen eerlijk betaald te krijgen.

Handleidingen en volledig implementeerbare architecturen: