Connexion des applications Data Flow PySpark à Autonomous Database dans Oracle Cloud Infrastructure

Introduction

Si votre application PySpark doit accéder à Autonomous Database, Autonomous Data Warehouse ou Autonomous Transaction Processing, elle doit importer les pilotes JDBC. Et si votre application PySpark a besoin d'accéder à Object Storage, elle doit importer la bibliothèque oci. Aucune de ces bibliothèques n'est préinstallée dans Data Flow. Vous devez les mettre à la disposition de votre application lors de l'exécution. Pour ce faire, créez un objet appelé archive de dépendances.

Les archives de dépendances sont chargées vers Oracle Cloud Infrastructure Object Storage. Vous fournissez votre application Data Flow avec un lien vers l'archive de dépendances dans Object Storage. Lorsque vous exécutez votre application, Data Flow extrait l'archive et la met à la disposition de vos applications PySpark. Vos applications PySpark importent les bibliothèques à l'aide de l'instruction d'import Python exactement comme dans tout autre programme Python.

Objectifs

Une fois ce tutoriel terminé, vous aurez une archive de dépendances dans un fichier appelé archive.zip. Vous pouvez utiliser l'archive de dépendance avec des applications PySpark qui accèdent à Object Storage et à Autonomous Database.

Prérequis

Avant de commencer ce tutoriel, téléchargez et installez Docker. Reportez-vous à la section Liens associés.

Télécharger l'image Docker de l'outil de package

Sur la ligne de commande, entrez la commande suivante :

docker pull phx.ocir.io/oracle/dataflow/dependency-packager:latest

Télécharger les pilotes JDBC

Téléchargez les pilotes JDBC à partir de la page Téléchargements JDBC Oracle. Si vous ne savez pas quelle version de base de données vous possédez dans votre location, téléchargez les pilotes pour 19c.

Utilisez le pilote JDBC compressé et les fichiers JAR du compagnon pour la version 8, ojdbc8-full.tar.gz. Ne téléchargez pas ojdbc11-full.tar.gz.

Extrayez les fichiers suivants et placez-les dans le répertoire dans lequel vous allez exécuter l'outil de packaging.

ojdbc8.jar
oraclepki.jar
osdt_cert.jar
osdt_core.jar
ucp.jar

Etant donné que vous placez ces fichiers dans le répertoire dans lequel vous exécutez l'outil de packaging, vous n'avez pas besoin de créer de fichier packages.txt.

Créez le fichier de configuration

Créez un fichier requirements.txt. Le fichier contient la liste des bibliothèques dont dépend votre application PySpark Data Flow. Pour la connexion à Object Storage, la bibliothèque oci est requise. Vous pouvez inclure d'autres bibliothèques si nécessaire par votre application PySpark.

Cet exemple montre comment spécifier la dernière version de la bibliothèque oci :

oci

Si vous souhaitez spécifier une version spécifique, le fichier requirements.txt est similaire à l'exemple suivant :

oci==2.3.0

Remarque :

  1. Les bibliothèques pyspark et py4j sont fournies par Data Flow. Ne placez pas ces bibliothèques dans votre fichier requirements.txt.
  2. Vous pouvez avoir des lignes vides dans le fichier requirements.txt, mais l'utilitaire de packaging se plaint d'une exigence non valide pour chaque ligne vide.

Exécutez l'outil de packaging.

L'outil de packaging télécharge la bibliothèque oci et ses dépendances et crée un fichier nommé archive.zip. Il analyse également le répertoire actuel pour rechercher les fichiers JAR. Il doit trouver les cinq fichiers de pilote JDBC et vous demander si vous souhaitez les inclure dans archive.zip.

Sous Windows:

  1. Ouvrez l'invite de commandes Windows En tant qu'administrateur.
  2. Accédez au répertoire contenant vos fichiers JAR et au fichier requirements.txt.
  3. Exécutez la commande suivante :

    docker run --rm -v %CD%:/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
    

Sous Linux ou Mac :

  1. Ouvrez un terminal.
  2. Accédez au répertoire contenant vos fichiers JAR et au fichier requirements.txt.
  3. Exécutez la commande suivante :

    docker run --rm -v $(pwd):/opt/dataflow -it phx.ocir.io/oracle/dataflow/dependency-packager:latest
    

Une fois l'outil terminé, ouvrez archive.zip et examinez sa structure. Il doit être très similaire à l'exemple suivant :

python/lib/python3.6/site-packages/backports
python/lib/python3.6/site-packages/certifi
python/lib/python3.6/site-packages/<...>
java/ojdbc8.jar
java/oraclepki.jar
java/<...>
version.txt

Etapes suivantes

Pour que l'archive de dépendance soit disponible pour vos applications PySpark, vous devez effectuer deux opérations :

  1. Téléchargez le fichier archive.zip vers un bucket dans Object Storage.
  2. Configurez l'application Data Flow de sorte qu'elle soit liée au fichier archive.zip dans Object Storage.

Pour obtenir des instructions sur cette opération, reportez-vous à la documentation Object Storage et à la documentation Data Flow. L'archive peut se trouver dans le même bucket Object Storage que les applications Python qui en ont besoin.

Remerciements

En savoir plus

Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir Oracle Learning Explorer.

Pour consulter la documentation du produit, consultez le centre d'aide Oracle.

Ressources de formation supplémentaires

Explorez d'autres exercices sur docs.oracle.com/learn ou accédez à davantage de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir Oracle Learning Explorer.

Pour consulter la documentation du produit, consultez le centre d'aide Oracle.