Remarque :

Traiter des fichiers volumineux dans Autonomous Database et Kafka avec Oracle Cloud Infrastructure Data Flow

Introduction

Oracle Cloud Infrastructure (OCI) Data Flow est un service entièrement géré permettant d'exécuter des applications Apache Spark TM. Data Flow est utilisé pour le traitement de fichiers volumineux, la transmission en continu, les opérations de base de données et vous pouvez créer de nombreuses applications avec un traitement très évolutif. Apache Spark peut redimensionner et utiliser des machines en cluster pour paralléliser des travaux avec une configuration minimale.

Avec Apache Spark en tant que service géré (Data Flow), vous pouvez ajouter de nombreux services évolutifs pour multiplier la puissance du traitement cloud. Ce tutoriel vous explique comment utiliser :

dataflow-use-case.png

Dans ce tutoriel, vous pouvez voir les activités les plus courantes utilisées pour traiter des fichiers volumineux, interroger la base de données et fusionner/joindre les données pour former une autre table en mémoire. Vous pouvez écrire ces données massives dans votre base de données et dans une file d'attente Kafka avec un coût très bas et des performances élevées.

Objectifs

Prérequis

Tâche 1 : création de la structure Object Storage

Object Storage sera utilisé comme référentiel de fichiers par défaut. Vous pouvez utiliser d'autres types de référentiel de fichiers, mais Object Storage est un moyen simple et économique de manipuler des fichiers avec de meilleures performances. Dans ce tutoriel, les deux applications chargeront un fichier CSV volumineux à partir du stockage d'objets, indiquant comment Apache Spark est rapide et intelligent pour traiter un volume élevé de données.

  1. Créer un compartiment : les compartiments sont importants pour organiser et isoler vos ressources cloud. Vous pouvez isoler vos ressources en fonction des stratégies IAM.

    • Vous pouvez utiliser ce lien pour comprendre et configurer les stratégies des compartiments : Gestion des compartiments

    • Créez un compartiment pour héberger toutes les ressources des 2 applications de ce tutoriel. Créez un compartiment nommé analytics.

    • Accédez au menu principal Oracle Cloud et recherchez : Identité et sécurité, Compartiments. Dans la section Compartiments, cliquez sur Créer un compartiment et entrez le nom.

      créer-compartment.png

      Remarque : vous devez accorder l'accès à un groupe d'utilisateurs et inclure votre utilisateur.

    • Cliquez sur Créer un compartiment pour inclure le compartiment.

  2. Créez votre bucket dans Object Storage : les buckets sont des conteneurs logiques pour le stockage d'objets. Tous les fichiers utilisés pour cette démo seront donc stockés dans ce bucket.

    • Accédez au menu principal Oracle Cloud et recherchez Stockage et Buckets. Dans la section Buckets, sélectionnez votre compartiment (analytiques), créé précédemment.

      select-compartment.png

    • Cliquez sur Créer un bucket. Créer 4 buckets : apps, data, dataflow-logs, Wallet

      créer-bucket.png

    • Entrez les informations de nom de bucket avec ces 4 buckets et conservez les autres paramètres avec la sélection par défaut.

    • Pour chaque bucket, cliquez sur Créer. Vous pouvez voir les buckets créés.

      buckets-dataflow.png

Remarque : vérifiez les stratégies IAM pour le bucket. Vous devez configurer les stratégies si vous souhaitez utiliser ces buckets dans vos applications de démonstration. Vous pouvez consulter les concepts et effectuer la configuration ici Présentation d'Object Storage et Stratégies IAM.

Tâche 2 : création d'Autonomous Database

Oracle Cloud Autonomous Database est un service géré pour Oracle Database. Pour ce tutoriel, les applications se connecteront à la base de données via un portefeuille pour des raisons de sécurité.

Remarque : passez en revue les stratégies IAM permettant d'accéder à Autonomous Database ici : Stratégie IAM pour Autonomous Database

Tâche 3 : charger les fichiers échantillon CSV

Pour démontrer la puissance d'Apache Spark, les applications lisent un fichier CSV de 1 000 000 lignes. Ces données seront insérées dans la base de données Autonomous Data Warehouse avec une seule ligne de commande et publiées sur une diffusion en continu Kafka (Oracle Cloud Streaming). Toutes ces ressources sont évolutives et parfaites pour un volume de données élevé.

La nouvelle table nommée GDPPERCAPTA a été importée.

adw-table-imported.png

Tâche 4 : création d'un coffre secret pour votre mot de passe ADMIN ADW

Pour des raisons de sécurité, le mot de passe ADMIN ADW sera enregistré dans un coffre. Oracle Cloud Vault peut héberger ce mot de passe en toute sécurité et est accessible sur votre application avec l'authentification OCI.

Remarque : vérifiez la stratégie IAM pour OCI Vault ici : stratégie IAM OCI Vault.

Tâche 5 : création d'une diffusion en continu Kafka avec le service Oracle Cloud Streaming

Oracle Cloud Streaming est un service Kafka de diffusion en continu géré. Vous pouvez développer des applications à l'aide des API Kafka et des SDK courants. Dans ce tutoriel, vous allez créer une instance de Streaming et la configurer pour l'exécuter dans les deux applications afin de publier et d'utiliser un grand volume de données.

  1. Dans le menu principal d'Oracle Cloud, accédez à Analytics et IA, Streams.

  2. Remplacez le compartiment par analytics. Chaque ressource de cette démonstration sera créée sur ce compartiment. Le service IAM est ainsi plus sécurisé et plus facile à contrôler.

  3. Cliquez sur Créer un flux de données.

    créer-stream.png

  4. Entrez le nom kafka_like (par exemple) et vous pouvez conserver tous les autres paramètres avec les valeurs par défaut.

    save-create-stream.png

  5. Cliquez sur Créer pour initialiser l'instance.

  6. Attendez le statut Active. Vous pouvez désormais utiliser l'instance.

    Remarque : lors du processus de création de la transmission en continu, vous pouvez sélectionner l'option Créer automatiquement un pool de flux de données par défaut pour créer automatiquement votre pool par défaut.

  7. Cliquez sur le lien DefaultPool.

    pool-par défaut-option.png

  8. Affichez le paramètre de connexion.

    stream-conn-settings.png

    kafka-conn.png

  9. Annotez ces informations comme vous en aurez besoin à l'étape suivante.

Remarque : passez en revue les stratégies IAM pour OCI Streaming ici : Stratégie IAM pour OCI Streaming.

Tâche 6 : génération d'un TOKEN AUTH pour accéder à Kafka

Vous pouvez accéder à OCI Streaming (API Kafka) et à d'autres ressources dans Oracle Cloud avec un jeton d'authentification associé à votre utilisateur sur OCI IAM. Dans les paramètres de connexion Kafka, les chaînes de connexion SASL comportent un paramètre nommé password et une valeur AUTH_TOKEN, comme décrit dans la tâche précédente. Pour activer l'accès à OCI Streaming, vous devez accéder à votre utilisateur sur la console OCI et créer un TOKEN AUTH.

  1. Dans le menu principal d'Oracle Cloud, accédez à Identité et sécurité, Utilisateurs.

    Remarque : l'utilisateur dont vous avez besoin pour créer l'élément AUTH TOKEN est configuré avec l'interface de ligne de commande OCI et toutes les configurations Stratégies IAM pour les ressources créées jusqu'à présent. Les ressources sont les suivantes :

    • Oracle Cloud Autonomous Data Warehouse
    • Oracle Cloud Streaming
    • Oracle Object Storage
    • Oracle Data Flow
  2. Cliquez sur votre nom d'utilisateur pour afficher les détails.

    auth_token_create.png

  3. Cliquez sur l'option Jetons d'authentification dans la partie gauche de la console et cliquez sur Générer un jeton.

    Remarque : le jeton sera généré uniquement à cette étape et ne sera plus visible une fois l'étape terminée. Copiez la valeur et enregistrez-la. Si vous perdez la valeur de jeton, vous devez à nouveau générer le jeton d'authentification.

    auth_token_1.png

    auth_token_2.png

Tâche 7 : configurer les applications de démonstration

Ce tutoriel comporte 2 applications de démonstration pour lesquelles nous allons configurer les informations requises :

  1. Téléchargez les applications à l'aide des liens suivants :

  2. Recherchez les détails suivants dans la console Oracle Cloud :

    • Espace de noms de location

      location-namespace-1.png

      location-espace de noms-detail.png

    • Clé secrète de mot de passe

      coffre-fort-adw.png

      voult-adw-detail.png

      secret-adw.png

    • Paramètres de connexion de transmission en continu

      kafka-conn.png

    • Jeton d'authentification

      auth_token_create.png

      auth_token_2.png

  3. Ouvrez les fichiers ZIP téléchargés (Java-CSV-DB.zip et JavaConsumeKafka.zip). Accédez au dossier /src/main/java/example et recherchez le code Example.java.

    code-variables.png

    • Il s'agit des variables à modifier avec les valeurs des ressources de votre location.

      NOM DE VARIABLE NOM DE RESSOURCE TITRE DES INFORMATIONS
      NAMESPACE ESPACE DE NOMS DE LOCATION LOCATION
      OBJECT_STORAGE_NAMESPACE ESPACE DE NOMS DE LOCATION LOCATION
      PASSWORD_SECRET_OCID PASSWORD_SECRET_OCID OCID
      streamPoolId Paramètres de connexion de transmission en continu Valeur ocid1.streampool.oc1.iad..... dans la chaîne de connexion SASL
      kafkaUsername Paramètres de connexion de transmission en continu valeur usename in " " dans la chaîne de connexion SASL
      kafkaPassword Jeton d'authentification La valeur est affichée uniquement à l'étape de création

Remarque : toutes les ressources créées pour ce tutoriel se trouvent dans la région US-ASHBURN-1. Vérifiez la région que vous souhaitez utiliser. Si vous modifiez la région, vous devez modifier les détails suivants dans les 2 fichiers de code :

Tâche 8 : comprendre le code Java

Ce tutoriel a été créé en Java et ce code peut également être porté en Python. Le didacticiel est divisé en 2 parties :

Pour prouver l'efficacité et l'évolutivité, les deux applications ont été développées pour montrer certaines possibilités dans un cas d'utilisation commun d'un processus d'intégration. Le code des deux applications présente donc les exemples suivants :

Cette démonstration peut être exécutée sur votre ordinateur local et peut être déployée dans l'instance Data Flow pour être exécutée en tant que travail.

Remarque : pour le travail Data Flow et votre machine locale, utilisez la configuration de l'interface de ligne de commande OCI pour accéder aux ressources OCI. Du côté du flux de données, tout est préconfiguré. Il n'est donc pas nécessaire de modifier les paramètres. Côté machine locale, installez l'interface de ligne de commande OCI et configurez le locataire, l'utilisateur et la clé privée pour accéder à vos ressources OCI.

Affichons le code Example.java dans les sections :

Tâche 9 : packager votre application avec Maven

Avant d'exécuter le travail dans Apache Spark, il est nécessaire de packager votre application avec Maven. Maven est l'un des utilitaires les plus connus pour packager des applications avec des bibliothèques et des plug-ins.

Remarque :

  1. Package Java-CSV-DB

    1. Accédez au dossier /Java-CSV-DB et exécutez la commande suivante :

      mvn package

    2. Vous pouvez voir Maven démarrer le package.

      maven-package-1a.png

    3. Si tout est correct, le message Success s'affiche.

      maven-success-1a.png

    4. Pour tester votre application sur votre ordinateur Apache Spark local, exécutez la commande suivante :

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

  2. Package JavaConsumeKafka

    1. Accédez au dossier /JavaConsumeKafka et exécutez la commande suivante :

      mvn package

    2. Vous pouvez voir Maven démarrer le package.

      maven-package-2a.png

    3. Si tout est correct, le message Success s'affiche.

      maven-success-2a.png

    4. Pour tester votre application sur votre machine Apache Spark locale, exécutez la commande suivante :

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

Tâche 10 : vérifier l'exécution

  1. Confirmer les insertions ADW

    1. Accédez au menu principal Oracle Cloud, sélectionnez Oracle Database et Autonomous Data Warehouse.

    2. Cliquez sur l'instance Journaux traités pour visualiser les détails.

    3. Cliquez sur Actions de base de données pour accéder aux utilitaires de base de données.

      adw-actions.png

    4. Entrez vos informations d'identification pour l'utilisateur ADMIN.

      adw-login.png

    5. Cliquez sur l'option SQL pour accéder aux utilitaires de requête.

      adw-select-sql.png

    6. Exécutez une requête pour afficher les 1 000 000 lignes de votre table.

      Requête ADW-organizations.png

  2. Confirmer les journaux d'exécution

    • Vous pouvez voir dans les journaux d'exécution si le travail peut accéder aux jeux de données et les charger.

      spark-csv-results.png

Tâche 11 : création et exécution d'un travail Data Flow

Désormais, avec les deux applications exécutées sur votre machine Apache Spark locale, vous pouvez les déployer dans Oracle Cloud Data Flow de votre location.

  1. Dans le menu principal d'Oracle Cloud, accédez à Analytics et IA et à Data Flow.

  2. Veillez à sélectionner le compartiment analytics avant de créer une application Data Flow.

  3. Cliquez sur Créer une application.

    create-dataflow-app.png

  4. Renseignez les paramètres comme indiqué dans l'image suivante :

    flux de données-app.png

  5. Cliquez sur Créer.

  6. Après la création, cliquez sur le lien Redimensionner la démo pour afficher les détails.

  7. Cliquez sur Exécuter pour exécuter le travail.

  8. Confirmez les paramètres et cliquez à nouveau sur Exécuter.

    dataflow-run-job.png

  9. Affichez le statut du travail, attendez que le statut passe à Succès et que vous puissiez voir les résultats.

    dataflow-run-status.png

    dataflow-run-success.png

Etapes suivantes

La première application publie des données dans Kafka Streaming. La deuxième application utilise ces données de Kafka.

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour consulter la documentation produit, consultez Oracle Help Center.