Distribuire un data lakehouse open source in OCI

Un data lakehouse è una moderna architettura aperta che consente di archiviare, comprendere e analizzare tutti i dati. Combina le capacità di un data lake e di un data warehouse per elaborare una vasta gamma di dati aziendali per analisi avanzate e informazioni aziendali. Data Lakehouse offre un'architettura che elimina i silos di dati, consentendo di analizzare i dati in tutta la tua proprietà. Puoi creare un data lakehouse da zero su Oracle Cloud Infrastructure (OCI).

Architettura

Questa architettura presenta una topologia di piattaforma, una panoramica dei componenti, le migliori prassi consigliate e l'automazione di Terraform per distribuire un data lakehouse open source in OCI.

Un data lakehouse può memorizzare e aggregare i dati delle applicazioni aziendali. I dati possono essere inviati al data lake o al data warehouse. I dati presenti nel data lake possono essere elaborati e caricati nel data warehouse oppure possono essere letti direttamente dal data lake per analisi avanzate.

Il diagramma riportato di seguito mostra questa architettura di riferimento.

Segue la descrizione di open-source-data-lakehouse.png
Descrizione dell'illustrazione open-source-data-lakehouse.png

open-source-data-lakehouse-oracle.zip

In questa architettura data lakehouse su OCI, viene utilizzato Oracle MySQL HeatWave per il data warehousing. Oracle MySQL HeatWave è l'unico servizio cloud MySQL con un acceleratore di query in-memory built-in a elevate prestazioni. Per gli amministratori di database e gli sviluppatori di applicazioni, è l'unico servizio che consente loro di eseguire carichi di lavoro OLTP e OLAP direttamente dal proprio database MySQL. Poiché MySQL è ottimizzato per OLTP, molte implementazioni di MySQL utilizzano un database OLAP separato per l'analisi dei dati aziendali.

Oracle MySQL HeatWave aumenta le prestazioni di MySQL in base agli ordini di grandezza per i carichi di lavoro di analisi e misti, senza apportare alcuna modifica alle applicazioni esistenti. Oracle MySQL HeatWave fornisce una singola piattaforma unificata per i carichi di lavoro transazionali e di analisi dei dati. Ciò elimina la necessità di ETL e integrazione complessi, dispendiosi in termini di tempo e costose con un database di analisi dei dati separato. MySQL Autopilot in Oracle MySQL HeatWave automatizza il provisioning, il caricamento dei dati, l'esecuzione delle query e la gestione dei guasti, consentendo di risparmiare tempo a sviluppatori e DBA.

Oracle Cloud Infrastructure Object Storage funge da data lake in questa architettura. Lo storage degli oggetti OCI consente a un'azienda di memorizzare tutti i dati in un ambiente elastico e a costi contenuti offrendo, al contempo, i servizi di elaborazione, persistenza e analitica necessari per scoprire nuovi insight aziendali. Con un data lake nello storage degli oggetti OCI, puoi memorizzare e gestire dati strutturati e non strutturati e utilizzare metodi per organizzare grandi volumi di dati altamente eterogenei da più origini.

L'architettura presentata contiene i seguenti componenti open source:

  • Apache Zeppelin

    Apache Zeppelin è un notebook basato sul Web che consente analisi dei dati interattive e basate sui dati e documenti collaborativi con SQL, Scala, Python, R e molto altro ancora.

    Zeppelin viene utilizzato per la data science e l'esplorazione dei dati in questa architettura. In Zeppelin è possibile creare notebook e utilizzare il concetto di interprete Zeppelin, che consente di collegare qualsiasi sistema di elaborazione dati di lingua o backend. Con la connettività stabilita da Zeppelin a MySQL e allo storage degli oggetti, puoi eseguire query congiunte e recuperare i dati dal data warehouse e dal data lake contemporaneamente, in un'esperienza di esecuzione di query vera e propria data lakehouse.

  • Grafana

    Grafana è la piattaforma open source in questa architettura. Grafana è una popolare applicazione Web, scritta in TypeScript (front-end) e Go (back-end). Fornisce grafici e grafici per le origini dati supportate, una delle quali MySQL. Numerosi plugin sono disponibili online per consentire di estendere Grafana.

Zeppelin e Grafana utilizzano un file system di rete (NFS), condiviso da due istanze di virtual machine posizionate in una subnet privata. Queste istanze esistono in due domini di errore distinti all'interno di un dominio di disponibilità. Il file system esiste in una subnet privata dedicata con un gruppo di sicurezza di rete (NSG), che consente l'accesso alla destinazione di accesso da tutte le istanze. Gli utenti possono accedere a Zeppelin e Grafana tramite un load balancer OCI, che fa parte di questa struttura ad alta disponibilità.

Questa architettura utilizza Oracle Cloud Infrastructure Data Integration per caricare i file dallo storage degli oggetti a MySQL. Il workshop su MySQL, Data Integration and Data Science for Marine Life descrive come impostare ed eseguire i flussi di dati con lo storage degli oggetti come origine e MySQL come destinazione.

L'architettura ha i seguenti componenti OCI:

  • Tenancy

    Una tenancy è una partizione sicura e isolata impostata da Oracle all'interno di Oracle Cloud quando ci si iscrive a Oracle Cloud Infrastructure. Puoi creare, organizzare e amministrare le tue risorse in Oracle Cloud all'interno della tua tenancy. Una tenancy è sinonimo di società o organizzazione. In genere, un'azienda avrà una singola tenancy e rifletterà la struttura organizzativa all'interno di tale tenancy. In genere una singola tenancy è associata a una singola sottoscrizione e una singola sottoscrizione ha una sola tenancy.

  • Compartimento

    I compartimenti sono partizioni logiche tra più aree all'interno di una tenancy di Oracle Cloud Infrastructure. Utilizzare i compartimenti per organizzare le risorse in Oracle Cloud, controllare l'accesso alle risorse e impostare le quote d'uso. Per controllare l'accesso alle risorse in un determinato compartimento, puoi definire i criteri che specificano chi può accedere alle risorse e quali azioni possono eseguire.

  • Criterio

    Un criterio di Oracle Cloud Infrastructure Identity and Access Management specifica chi può accedere a quali risorse e in che modo. L'accesso viene concesso a livello di gruppo e compartimento. Ciò significa che puoi scrivere un criterio che concede a un gruppo un tipo specifico di accesso all'interno di un compartimento specifico o alla tenancy.

  • Area

    Un'area Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, denominati domini di disponibilità. Le regioni sono indipendenti da altre regioni e le grandi distanze possono separarle (tra paesi o addirittura continenti).

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile definita dal software che si imposta in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono un controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che è possibile modificare dopo aver creato la VCN. Puoi suddividere una VCN in subnet, che possono essere definite in un'area o in un dominio di disponibilità. Ogni subnet è composta da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare la dimensione di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • domini di disponibilità

    I domini di disponibilità sono data center indipendenti e autonomi all'interno di un'area geografica. Le risorse fisiche presenti in ogni dominio di disponibilità sono isolate dalle risorse presenti negli altri domini di disponibilità, garantendo quindi la tolleranza agli errori. I domini di disponibilità non condividono l'infrastruttura, ad esempio l'alimentazione o il raffreddamento, o la rete interna del dominio di disponibilità. Pertanto, è improbabile che l'errore di un dominio di disponibilità influisca sugli altri domini di disponibilità nell'area.

  • domini di errore

    Un dominio di errore è un raggruppamento di hardware e infrastruttura all'interno di un dominio di disponibilità. Ogni dominio di disponibilità dispone di tre domini di errore, dotati di alimentazione e hardware indipendenti. Quando si distribuiscono le risorse su più domini di errore, le applicazioni possono tollerare l'errore fisico del server, la manutenzione del sistema e gli errori di alimentazione all'interno di un dominio di errore.

  • Memorizzazione degli oggetti

    Lo storage degli oggetti OCI è una piattaforma di storage ad alte prestazioni su scala Internet che offre durabilità dei dati affidabile e a costi contenuti. Lo storage degli oggetti può memorizzare una quantità illimitata di dati non strutturati di qualsiasi tipo di contenuto, inclusi i dati analitici. Puoi memorizzare o recuperare i dati in modo sicuro e sicuro direttamente da Internet o dall'interno della piattaforma cloud. Le molteplici interfacce di gestione ti consentono di avviare con facilità operazioni di dimensioni ridotte e di ridimensionamento senza subire alcun deterioramento a livello di prestazioni o affidabilità dei servizi.

    Utilizza lo storage degli oggetti come livello di storage ad accesso meno frequente per il data warehouse memorizzando i dati utilizzati non raramente, quindi collegandoli perfettamente ai dati più recenti mediante Apache Zeppelin. Utilizzare lo storage di archivio per i file che devono essere conservati per lunghi periodi di tempo e accedere raramente o raramente.

  • MySQL HeatWave

    Oracle MySQL Database Service è un servizio di database completamente gestito che consente agli sviluppatori di sviluppare e distribuire rapidamente applicazioni sicure e native nel cloud utilizzando il database open source più diffuso al mondo. Oracle MySQL HeatWave è un acceleratore di query in-memory ad alte prestazioni e integrato per Oracle MySQL Database Service che accelera le prestazioni MySQL per l'analitica e le query transazionali.

  • Integrazione dei dati

    Oracle Cloud Infrastructure Data Integration è un servizio completamente gestito, serverless e cloud nativo che estrae, carica, trasforma, pulisce e rimodella i dati da una vasta gamma di origini dati nei servizi Oracle Cloud Infrastructure di destinazione. ETL (Extract Transform Load; utilizza processi di scale-out completamente gestiti su Spark. Gli utenti progettano i processi di integrazione dei dati utilizzando un'interfaccia utente intuitiva e senza codice che ottimizza i flussi di integrazione per generare il motore e l'orchestrazione più efficienti, allocando e ridimensionando automaticamente l'ambiente di esecuzione. Integrazione dei dati OCI offre esplorazione interattiva e preparazione dei dati e consente ai tecnici dei dati di proteggere dalla deviazione dello schema definendo le regole per gestire le modifiche allo schema.

  • Load balancer

    Il servizio Oracle Cloud Infrastructure Load Balancing offre la distribuzione automatica del traffico da un singolo punto di ingresso a più server nel backend.

  • Istanze di computazione

    Il servizio Oracle Cloud Infrastructure Compute consente di eseguire il provisioning e la gestione degli host di computazione nel cloud. Puoi avviare le istanze di computazione con forme che soddisfano i requisiti delle tue risorse a livello di CPU, memoria, larghezza di banda della rete e storage. Dopo aver creato un'istanza di computazione, puoi accedervi in tutta sicurezza, riavviarla, collegare e scollegare i volumi e arrestarla quando non è più necessario.

  • Storage file

    Il servizio Oracle Cloud Infrastructure File Storage fornisce un file system di rete durevole, scalabile, sicuro e di livello Enterprise. Puoi connetterti a un file system del servizio di storage di file da qualsiasi istanza Bare Metal, virtual machine o container in una rete VCN. Inoltre, puoi accedere a un file system dall'esterno della VCN utilizzando Oracle Cloud Infrastructure FastConnect e IPSec VPN.

  • Gateway Internet

    Il gateway Internet consente il traffico tra le subnet pubbliche in una VCN e la rete Internet pubblica.

  • Gateway NAT (Network Address Translation)

    Un gateway NAT consente alle risorse private in una VCN di accedere agli host su Internet, senza esporre tali risorse alle connessioni Internet in entrata.

  • Gruppo di sicurezza di rete (NSG)

    Gli NSG fungono da firewall virtuali per le risorse cloud. Grazie al modello di sicurezza zero-trust di Oracle Cloud Infrastructure, tutto il traffico viene rifiutato e puoi controllare il traffico di rete all'interno di una VCN. Un gruppo NSG è composto da un set di regole di sicurezza in entrata e in uscita che si applicano solo a un set specificato di VNIC in una singola VCN.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza.I requisiti potrebbero essere diversi dall'architettura descritta qui.
  • VCN

    Quando crei una rete VCN, determina il numero di blocchi CIDR necessari e la dimensione di ciascun blocco in base al numero di risorse che intendi collegare alle subnet nella VCN. Usare i blocchi CIDR che si trovano all'interno dello spazio di indirizzi IP privati standard.

    Selezionare un intervallo di indirizzi che non si sovrapponga alla rete in locale o a qualsiasi altra rete in modo da poter impostare una connessione tra la VCN e la rete in locale, se necessario.

    Quando si progettano le subnet, considerare i requisiti di flusso di traffico e sicurezza. Collegare tutte le risorse all'interno di un livello o ruolo specifico alla stessa subnet, che può fungere da limite di sicurezza.

  • Sicurezza

    Usare i criteri per limitare l'accesso alle risorse Oracle Cloud Infrastructure (OCI) di cui dispone l'azienda e a come accedervi.

    Per una corretta implementazione della sicurezza sono necessarie politiche specifiche. Considerare la possibilità di utilizzare Oracle Cloud Infrastructure Vault per ottenere la protezione aggiuntiva di chiavi, certificati e segreti.

    Il servizio di networking offre due funzioni firewall virtuale che utilizzano regole di sicurezza per controllare il traffico a livello di pacchetto: liste di sicurezza e gruppi di sicurezza di rete (NSG). Un gruppo NSG è composto da un set di regole di sicurezza in entrata e in uscita che si applicano solo a un set di VNIC di tua scelta in una singola VCN. Ad esempio, puoi scegliere tutte le istanze di computazione che fungono da server Web nel livello Web di un'applicazione multilivello nella tua rete VCN.

    Le regole di sicurezza NSG funzionano allo stesso modo delle regole della lista di sicurezza. Tuttavia, per l'origine o la destinazione di una regola di sicurezza NSG, è possibile specificare un gruppo NSG al posto di un blocco CIDR. Pertanto, puoi scrivere facilmente regole di sicurezza per controllare il traffico tra due gruppi NSG nella stessa VCN o nel traffico all'interno di un singolo gruppo NSG. Quando si crea un sistema di database, è possibile specificare uno o più gruppi NSG. È inoltre possibile aggiornare un sistema di database esistente per utilizzare uno o più gruppi NSG.

  • Calcolo

    Scegli le forme con la combinazione di OCPU e memoria appropriata, quindi esegui il provisioning dello storage NVMe e/o a blocchi locale in base alle esigenze, per ogni istanza. Prendi in considerazione l'uso delle forme flessibili disponibili che offrono una maggiore flessibilità per la combinazione di OCPU e memoria.

Considerazioni

Quando si distribuisce un data lakehouse su Oracle Cloud Infrastructure (OCI), tenere presente quanto riportato di seguito.

  • Integrazione delle origini dati

    Per l'integrazione dello storage degli oggetti con MySQL, abbiamo scelto l'integrazione dei dati di Oracle Cloud Infrastructure. Se vuoi usare uno strumento open source, Talend è un'opzione. Talend non è stato incluso in questa architettura perché il suo download non può essere automatizzato (il download richiede l'iscrizione per Talend).

  • Data science e apprendimento automatico

    Abbiamo scelto Apache Zeppelin open source come piattaforma per la data science e la data discovery. In alternativa, puoi utilizzare Oracle Cloud Infrastructure Data Science, un promotore chiave di informazioni e applicazioni avanzate basate sui dati, che offre ai data scientist l'accesso a flussi di lavoro automatizzati, JupyterLab Appunti e centinaia di strumenti open source e un approccio semplificato alla creazione di modelli. È una piattaforma collaborativa che consente ai team di collaborare con modalità per condividere e riprodurre i modelli in modo strutturato e sicuro per raggiungere risultati di livello Enterprise. La piattaforma è completamente gestita e soddisfa le esigenze dell'azienda moderna.

  • Analytics e report

    In questa architettura, Grafana è stato scelto come piattaforma di analitica. Considera l'utilizzo di Oracle Analytics Cloud, un servizio gestito avanzato in grado di soddisfare in modo completo i tuoi requisiti di analitica e generazione di report.

  • Disponibilità e scalabilità dell'istanza

    In questo esempio, nell'architettura ad alta disponibilità vengono visualizzate due istanze in domini di errore diversi all'interno dello stesso dominio di disponibilità. Puoi scegliere di posizionare le istanze in domini di disponibilità differenti (nelle aree, ove disponibile), per ottenere una tolleranza agli errori ancora più elevata.

    Un approccio alternativo, che rappresenta un adattamento più dinamico alle esigenze di prestazioni più impegnative e variabili, è l'uso di un pool di istanze e del ridimensionamento automatico.

    I pool delle istanze ti consentono di eseguire il provisioning e creare più istanze di Oracle Cloud Infrastructure Compute in base alla stessa configurazione all'interno della stessa area.

    Il ridimensionamento automatico ti consente di regolare automaticamente il numero di istanze di computazione in un pool di istanze in base a metriche delle prestazioni, ad esempio l'utilizzo della CPU. Il ridimensionamento automatico ti consente di offrire agli utenti prestazioni coerenti durante periodi di alta domanda e di ridurre i costi durante periodi di scarsa richiesta.

  • Disponibilità e scalabilità del database

    Considera la distribuzione di un sistema DB Oracle MySQL aggiuntivo come replica in standby per l'alta disponibilità. È possibile posizionare la replica in un dominio di errore, un dominio di disponibilità o un'area diversa.

  • Backup dei database

    Oracle MySQL Database Service supporta due tipi di backup: backup completo di tutti i dati contenuti nel sistema di database e backup incrementale dei soli dati aggiunti o modificati dall'ultimo backup completo. I backup vengono eseguiti nei modi seguenti:

    • Manuale: un'azione nella console o una richiesta eseguita tramite l'API avvia il backup. Puoi conservare i backup manuali per un minimo di un giorno e un massimo di 365 giorni.
    • Automatico: i backup pianificati automaticamente vengono eseguiti senza alcuna interazione necessaria al momento opportuno. I backup automatici vengono conservati per un periodo compreso tra uno e 35 giorni. Il valore di conservazione predefinito è di sette giorni. Una volta definito, non è possibile modificare il periodo di conservazione di un backup automatico.
  • Storage file

    In questo esempio, stiamo utilizzando il servizio Oracle Cloud Infrastructure File Storage. In alternativa, un'architettura multi-nodo può includere un volume a blocchi condiviso. Un volume a blocchi può essere collegato a più istanze come in lettura/scrittura. In tal caso, è necessario installare un sistema o una soluzione con riconoscimento cluster, ad esempio Oracle Cluster File System versione 2 (OCFS2).

  • Sicurezza

    Considera l'utilizzo di Oracle Cloud Guard per monitorare e gestire la sicurezza delle risorse in OCI in modo proattivo. Oracle Cloud Guard utilizza ricette del rilevatore che puoi definire per esaminare le risorse per individuare i punti deboli della sicurezza, nonché per monitorare operatori e utenti per attività a rischio. Quando viene rilevata un'attività di configurazione errata o non sicura, Oracle Cloud Guard consiglia azioni correttive e supporta tali azioni, in base alle ricette del rispondente che è possibile definire. Per le risorse che richiedono la massima sicurezza, Oracle consiglia di utilizzare le zone di sicurezza. Una zona di sicurezza è un compartimento associato a una ricetta dei criteri di sicurezza definita da Oracle basata su migliori prassi. Ad esempio, le risorse di una zona di sicurezza non devono essere accessibili dalla rete Internet pubblica e devono essere cifrate utilizzando chiavi gestite dal cliente. Quando si creano e aggiornano risorse in una zona di sicurezza, OCI convalida le operazioni rispetto ai criteri nella ricetta della zona di sicurezza e nega le operazioni che violano uno qualsiasi dei criteri.

  • Sviluppo delle applicazioni

    Oracle Application Express (Oracle APEX), la piattaforma di sviluppo low-code di Oracle, è un esempio di strumento da poter utilizzare per creare applicazioni enterprise scalabili e sicure, a monte della data lakehouse.

    Grazie a Oracle APEX, gli sviluppatori possono sviluppare e distribuire rapidamente app interessanti che risolvono problemi reali e offrono valore immediato. Non dovrai essere un esperto in una vasta gamma di tecnologie per offrire soluzioni sofisticate. Concentrati sulla risoluzione del problema e lascia che Oracle APEX si occupi delle altre soluzioni. Ha funzionalità di livello superiore e puoi distribuirle ovunque.

Distribuzione

Il codice Terraform per questa architettura di riferimento è disponibile su GitHub. Puoi estrarre il codice in Oracle Cloud Infrastructure Resource Manager con un solo clic, creare lo stack e distribuirlo. In alternativa, puoi scaricare il codice da GitHub nel tuo computer, personalizzare il codice e distribuire l'architettura utilizzando l'interfaccia CLI Terraform.

  • Distribuire utilizzando lo stack di esempio in Oracle Cloud Infrastructure Resource Manager:
    1. Fare clic su Distribuisci su Oracle Cloud

      Se non si è già connessi, immettere le credenziali della tenancy e dell'utente.

    2. Rivedere e accettare i termini e le condizioni.
    3. Selezionare l'area in cui distribuire lo stack.
    4. Seguire i prompt visualizzati e le istruzioni per creare lo stack.
    5. Dopo aver creato lo stack, fare clic su Azioni Terraform e selezionare Plan.
    6. Attendere il completamento del job e rivedere il piano.

      Per apportare eventuali modifiche, tornare alla pagina Dettagli stack, fare clic su Modifica stack e apportare le modifiche necessarie. Eseguire quindi di nuovo l'azione Piano.

    7. Se non sono necessarie ulteriori modifiche, tornare alla pagina Dettagli stack, fare clic su Azioni Terraform e selezionare Applica.
  • Distribuiscilo utilizzando il codice Terraform in GitHub:
    1. Visita GitHub.
    2. Copiare o scaricare il repository sul computer locale.
    3. Seguire le istruzioni riportate nel documento README.

Conferme

Author: Nuno Goncalves