Nota:

Elabora file di grandi dimensioni in Autonomous Database e Kafka con Oracle Cloud Infrastructure Data Flow

Introduzione

Oracle Cloud Infrastructure (OCI) Data Flow è un servizio completamente gestito per l'esecuzione delle applicazioni Apache Spark TM. Data Flow viene usato per elaborare file di grandi dimensioni, lo streaming, le operazioni del database e puoi creare un sacco di applicazioni con un'elaborazione estremamente scalabile. Apache Spark può ridimensionare e utilizzare computer in cluster per parallelizzare i job con una configurazione minima.

Grazie ad Apache Spark come servizio gestito (Data Flow), puoi aggiungere molti servizi scalabili per moltiplicare l'efficacia dell'elaborazione cloud e questa esercitazione descrive come utilizzare:

dataflow-use-case.png

In questa esercitazione è possibile visualizzare le attività più comuni utilizzate per elaborare file di grandi dimensioni, eseguire query sul database e unire/unire i dati per formare un'altra tabella in memoria. Puoi scrivere questi enormi dati nel tuo database e in una coda Kafka con prestazioni estremamente elevate e a costi contenuti.

Obiettivi

Prerequisiti

Task 1: Creare la struttura di storage degli oggetti

Lo storage degli oggetti verrà utilizzato come repository di file predefinito. Puoi usare altri tipi di repository di file, ma lo storage degli oggetti è un modo semplice e a basso costo per manipolare i file con prestazioni. In questa esercitazione, entrambe le applicazioni caricheranno un file CSV di grandi dimensioni dallo storage degli oggetti, mostrando in che modo Apache Spark è veloce ed efficace per elaborare un elevato volume di dati.

  1. Crea un compartimento: i compartimenti sono importanti per organizzare e isolare le tue risorse cloud. Puoi isolare le tue risorse in base ai criteri IAM.

    • È possibile utilizzare questo collegamento per comprendere e impostare i criteri per i compartimenti: Gestione dei compartimenti

    • Crea un compartimento per ospitare tutte le risorse delle 2 applicazioni in questa esercitazione. Creare un compartimento denominato analytics.

    • Andare al menu principale di Oracle Cloud e cercare: Identity & Security, Compartimenti. Nella sezione Compartimenti, fare clic su Crea compartimento e immettere il nome.

      crea-compartment.png

      Nota: è necessario concedere l'accesso a un gruppo di utenti e includere l'utente.

    • Fare clic su Crea compartimento per includere il compartimento.

  2. Crea il tuo bucket nello storage degli oggetti: i bucket sono container logici per la memorizzazione degli oggetti. Tutti i file utilizzati per questa demo verranno quindi memorizzati in questo bucket.

    • Vai al menu principale di Oracle Cloud e cerca Storage e Bucket. Nella sezione Bucket selezionare il compartimento (analitica), creato in precedenza.

      seleziona-compartment.png

    • Fare clic su Crea bucket. Crea 4 bucket: applicazioni, dati, dataflow-log, wallet

      crea-bucket.png

    • Immettere le informazioni relative al nome bucket con questi 4 bucket e mantenere gli altri parametri con la selezione predefinita.

    • Per ogni bucket, fare clic su Crea. È possibile visualizzare i bucket creati.

      bucket-dataflow.png

Nota: per il bucket, consulta i criteri IAM. È necessario impostare i criteri se si desidera utilizzare questi bucket nelle applicazioni demo. Puoi consultare i concetti e impostare qui la panoramica dello storage degli oggetti e i criteri IAM.

Task 2: creare Autonomous Database

Oracle Cloud Autonomous Database è un servizio gestito per Oracle Database. Per questa esercitazione, le applicazioni si connetteranno al database tramite un wallet per motivi di sicurezza.

Nota: per accedere ad Autonomous Database, consultare i criteri IAM qui: criterio IAM per Autonomous Database

Task 3: caricare i file di esempio CSV

Per dimostrare la potenza di Apache Spark, le applicazioni leggeranno un file CSV con 1.000.000 righe. Questi dati verranno inseriti nel database Autonomous Data Warehouse con una sola riga di comando e pubblicati in streaming Kafka (Oracle Cloud Streaming). Tutte queste risorse sono scalabili e perfette per volumi di dati elevati.

L'importazione della nuova tabella denominata GDPPERCAPTA è riuscita.

adw-table-imported.png

Task 4: creare un vault segreto per la password ADW ADMIN

Per motivi di sicurezza, la password ADW ADMIN verrà salvata in un vault. Oracle Cloud Vault può ospitare questa password con sicurezza ed è possibile accedervi nell'applicazione mediante l'autenticazione OCI.

Nota: rivedere il criterio IAM per il vault OCI qui: Criterio IAM di OCI Vault.

Task 5: Creare un servizio di streaming Kafka con Oracle Cloud

Il servizio di streaming gestito è Oracle Cloud Streaming. Puoi sviluppare applicazioni utilizzando le API Kafka e gli SDK comuni. In questa esercitazione, creerai un'istanza di streaming e ne configurerai l'esecuzione in entrambe le applicazioni per pubblicare e utilizzare un elevato volume di dati.

  1. Dal menu principale di Oracle Cloud, vai a Analytics & AI, Streams.

  2. Modificare il compartimento in analytics. Ogni risorsa in questa demo verrà creata in questo compartimento. Questo sistema è più sicuro e facile da controllare grazie a IAM.

  3. Fare clic su Crea flusso.

    crea-stream.png

  4. Immettere il nome kafka_like (ad esempio) e mantenere tutti gli altri parametri con i valori predefiniti.

    save-create-stream.png

  5. Fare clic su Crea per inizializzare l'istanza.

  6. Attendere lo stato Attivo. Ora puoi usare l'istanza.

    Nota: nel processo di creazione dello streaming è possibile selezionare l'opzione Creazione automatica di un pool di flussi predefinito per creare automaticamente il pool predefinito.

  7. Fare clic sul collegamento DefaultPool.

    pool-predefinito option.png

  8. Visualizzare l'impostazione di connessione.

    connessione-flusso-settings.png

    kafka-conn.png

  9. Annotare queste informazioni come saranno necessarie nel passo successivo.

Nota: rivedere i criteri IAM per lo streaming OCI qui: criterio IAM per lo streaming OCI.

Task 6: generare un TOKEN AUTH per accedere a Kafka

Puoi accedere a streaming OCI (API Kafka) e ad altre risorse in Oracle Cloud con un token di autenticazione associato al tuo utente su IAM OCI. Nelle impostazioni di connessione Kafka, le stringhe di connessione SASL hanno un parametro denominato password e un valore AUTH_TOKEN come descritto nel task precedente. Per abilitare l'accesso allo streaming OCI, è necessario andare all'utente nella console OCI e creare un TOKEN AUTH.

  1. Dal menu principale di Oracle Cloud, andare a Identity & Security, Users.

    Nota: tenere presente che l'utente necessario creare AUTH TOKEN è l'utente configurato con l'interfaccia CLI OCI e tutta la configurazione dei criteri IAM per le risorse create fino ad ora. Le risorse sono le seguenti:

    • Oracle Cloud Autonomous Data Warehouse
    • Streaming di Oracle Cloud
    • Memorizzazione oggetti Oracle
    • Flusso di dati Oracle
  2. Fare clic sul nome utente per visualizzare i dettagli.

    auth_token_create.png

  3. Fare clic sull'opzione Autorizza token nella parte sinistra della console e fare clic su Genera token.

    Nota: il token verrà generato solo in questo passo e non sarà visibile dopo il completamento del passo. Quindi, copiare il valore e salvarlo. Se si perde il valore del token, è necessario generare di nuovo il token di autenticazione.

    auth_token_1.png

    auth_token_2.png

Task 7: Impostazione delle applicazioni Demo

Questa esercitazione contiene 2 applicazioni demo per le quali verranno impostate le informazioni richieste:

  1. Scaricare le applicazioni utilizzando i seguenti collegamenti:

  2. Trovare i dettagli riportati di seguito nella console di Oracle Cloud.

    • Spazio di nomi tenancy

      tenancy-namespace-1.png

      spazio-nomi tenancy-detail.png

    • Segreto password

      vault-adw.png

      vault-adw-detail.png

      segreto-adw.png

    • Impostazioni connessione streaming

      kafka-conn.png

    • Token di autenticazione

      auth_token_create.png

      auth_token_2.png

  3. Aprire i file zip scaricati (Java-CSV-DB.zip e JavaConsumeKafka.zip). Passare alla cartella /src/main/java/example e trovare il codice Example.java.

    codice-variables.png

    • Queste sono le variabili che devono essere modificate insieme ai valori delle risorse della tenancy.

      NOME VARIABILE NOME RISORSA TITOLO INFORMAZIONI
      SPAZIO DEI NOMI SPAZIO DI NOMI TENANCY TENANCY
      OBJECT_STORAGE_NAMESPACE SPAZIO DI NOMI TENANCY TENANCY
      PASSWORD_SECRET_OCID PASSWORD_SECRET_OCID OCID
      streamPoolId Impostazioni connessione streaming ocid1.streampool.oc1.iad..... valore nella stringa di connessione SASL
      kafkaUsername Impostazioni connessione streaming valore del nome utente all'interno di " " nella stringa di connessione SASL
      kafkaPassword Token di autenticazione Il valore viene visualizzato solo nella fase di creazione

Nota: tutte le risorse create per questa esercitazione si trovano nell'area US-ASHBURN-1. Controllare l'area desiderata. Se si modifica l'area, è necessario modificare i seguenti dettagli nei 2 file di codice:

Task 8: Comprendere il codice Java

Questa esercitazione è stata creata in Java e questo codice può essere applicato anche a Python. Il tutorial è diviso in 2 parti:

Per dimostrare l'efficienza e la scalabilità, sono state sviluppate entrambe le applicazioni per mostrare alcune possibilità in un caso d'uso comune di un processo di integrazione. Pertanto, il codice di entrambe le applicazioni mostra gli esempi riportati di seguito.

Questa demo può essere eseguita nel computer locale e può essere distribuita nell'istanza di Flusso dati per essere eseguita come esecuzione di un job.

Nota: per il job Flusso dati e il computer locale, utilizzare la configurazione CLI OCI per accedere alle risorse OCI. Dal lato Flusso dati, tutto è preconfigurato, quindi non è necessario modificare i parametri. Installare l'interfaccia CLI OCI sul lato computer locale e configurare il tenant, l'utente e la chiave privata per accedere alle risorse OCI.

Vediamo il codice Example.java nelle sezioni:

Task 9: creare un package per l'applicazione con Maven

Prima di eseguire il job in Apache Spark, è necessario creare un package dell'applicazione con Maven. Maven è una delle utility più note per imballare le applicazioni con librerie e plugin.

Nota:

  1. Package Java-CSV-DB

    1. Andare alla cartella /Java-CSV-DB ed eseguire questo comando:

      mvn package

    2. È possibile vedere Maven per l'avvio del packaging.

      maven-package-1a.png

    3. Se tutto è corretto, è possibile visualizzare il messaggio Operazione riuscita.

      maven-success-1a.png

    4. Per eseguire il test dell'applicazione nel computer Apache Spark locale, eseguire questo comando:

      spark-submit --class example.Example target/loadadw-1.0-SNAPSHOT.jar

  2. Package JavaConsumeKafka

    1. Accedere alla cartella /JavaConsumeKafka ed eseguire questo comando:

      mvn package

    2. È possibile vedere Maven per l'avvio del packaging.

      maven-package-2a.png

    3. Se tutto è corretto, è possibile visualizzare il messaggio Operazione riuscita.

      maven-success-2a.png

    4. Per eseguire il test dell'applicazione nel computer Apache Spark locale, eseguire questo comando:

      spark-submit --class example.Example target/loadkafka-1.0-SNAPSHOT.jar

Task 10: verificare l'esecuzione

  1. Conferma inserimenti ADW

    1. Andare al menu principale di Oracle Cloud, selezionare Oracle Database e Autonomous Data Warehouse.

    2. Fare clic sull'istanza Log elaborati per visualizzare i dettagli.

    3. Fare clic su Azioni database per accedere alle utility del database.

      adw-actions.png

    4. Immettere le credenziali per l'utente ADMIN.

      adw-login.png

    5. Fare clic sull'opzione SQL per accedere alle utility di query.

      selezione-indirizzo-sql.png

    6. Eseguire una query per visualizzare le 1.000.000 di righe nella tabella.

      Query ADW-organizations.png

  2. Conferma log di esecuzione

    • I log di esecuzione possono essere visualizzati se il job è in grado di accedere e caricare i data set.

      spark-csv-results.png

Task 11: creare ed eseguire un job di Flusso dati

Ora, con entrambe le applicazioni eseguite correttamente nel computer Apache Spark locale, puoi distribuirle nel flusso di dati di Oracle Cloud nella tua tenancy.

  1. Dal menu principale di Oracle Cloud, andare a Analytics & AI e Flusso di dati.

  2. Assicurarsi di selezionare il compartimento analytics prima di creare un'applicazione di flusso dati.

  3. Fare clic su Crea applicazione.

    create-dataflow-app.png

  4. Completare i parametri come mostrato nella seguente immagine:

    flusso dati-app.png

  5. Fare clic su Crea.

  6. Dopo la creazione, fare clic sul collegamento Demo su scala per visualizzare i dettagli.

  7. Fare clic su Esegui per eseguire il job.

  8. Confermare i parametri e fare di nuovo clic su Esegui.

    dataflow-run-job.png

  9. Visualizzare lo stato del job, attendere che lo stato venga modificato in Riuscito e che i risultati siano visibili.

    dataflow-run-status.png

    dataflow-run-success.png

Passi successivi

La prima applicazione pubblica i dati in Kafka Streaming. La seconda applicazione utilizza questi dati da Kafka.

Approvazioni

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.

Per la documentazione sul prodotto, visitare il sito Oracle Help Center.