Nous développons actuellement un pilote Apache Spark ODBC, qui vous permet de travailler avec des données Spark dans des applications telles que Perl, PHP, Excel et Oracle).
Configuration d'une source de données ODBC
Avant que le pilote ODBC Apache Spark puisse être utilisé pour connecter une application à Apache Spark, il est nécessaire de configurer une source de données ODBC. Une source de données ODBC stocke les détails de connexion pour la base de données cible (par exemple, Apache Spark) et le pilote ODBC requis pour s'y connecter (par exemple, le pilote ODBC Apache Spark).
Pour utiliser le pilote ODBC Apache Spark, vous devez créer un compte développeur Apache Spark. Connectez-vous au tableau de bord du développeur Apache Spark et créez une application d'API REST. Vous aurez besoin de l'ID client et du secret de l'application pour créer une source de données pour le pilote ODBC Apache Spark.
Les sources de données ODBC sont configurées dans l'administrateur ODBC, qui est inclus avec Windows.
Dans l'administrateur ODBC :
- Choisissez l'onglet DSN système, puis choisissez Ajouter.
- Dans la boîte de dialogue Créer une nouvelle source de données, choisissez Pilote Easysoft ODBC-Apache Spark, puis choisissez Terminer.
- Renseignez les champs de la boîte de dialogue Easysoft ODBC-Apache Spark Driver DSN Setup.
- Dans votre application, connectez-vous à votre source de données nouvellement configurée et exécutez un exemple de requête. Par exemple :
select * from MyTable
Travailler avec les données Apache Spark en Perl
Strawberry Perl est une distribution Perl pour Windows qui inclut les couches middleware nécessaires (Perl DBI et Perl DBD ::ODBC) pour permettre au pilote Apache Spark ODBC de connecter vos applications Perl à Apache Spark.
- Voici un script Perl qui récupère des données Apache Spark :
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI-> connect('dbi:ODBC:MyApacheSparkDataSource'); my $sql = "SELECT MyCol FROM MyTable LIMIT 10"; # Prepare the statement. my $sth = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr"; # Execute the statement. $sth->execute(); my($SparkCol); # Fetch and display the result set value. while(($SparkCol) = $sth->fetchrow()){ print("$SparkCol\n"); } $dbh->disconnect if ($dbh);
Travailler avec les données Apache Spark en PHP
- Voici un script PHP qui récupère des données Apache Spark :
<?php $con = odbc_connect("MyApacheSparkDataSource", "", ""); $err = odbc_errormsg(); if (strlen($err) <> 0) { echo odbc_errormsg(); } else { $rs2 = odbc_exec($con, "select MyCol from MyTable"); odbc_result_all($rs2); odbc_close($con); } ?>
Connecter Excel à Apache Spark
Suivez ces étapes pour renvoyer les données d'Apache Spark vers Microsoft Excel à l'aide de Microsoft Query :
- Sur les Données onglet, choisissez Nouvelle requête > À partir d'une autre source > À partir d'ODBC .
- Choisissez la source de données Apache Spark ODBC lorsque vous y êtes invité.
- Choisissez un tableau parmi les ensembles de données disponibles.
- Choisissez le Charger pour renvoyer les données Apache Spark à la feuille de travail.
Notez que pour les ensembles de résultats volumineux, vous devrez peut-être filtrer les données à l'aide d'Excel avant que les données puissent être renvoyées à la feuille de calcul.
Se connecter à Apache Spark depuis Oracle
- Créez un fichier init DG4ODBC sur votre machine Oracle. Pour ce faire, passez au
%ORACLE_HOME%\hs\admin
annuaire. Créez une copie du fichierinitdg4odbc.ora
. Nommez le nouveau fichierinitspark.ora
.Remarque Dans ces instructions, remplacez %ORACLE_HOME% par l'emplacement de votre répertoire Oracle HOME. Par exemple,
C:\oraclexe\app\oracle\product\11.2.0\server
. - Assurez-vous que ces paramètres et valeurs sont présents dans votre fichier init :
HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
- Commentez la ligne qui active le traçage DG4ODBC. Par exemple :
#HS_FDS_TRACE_LEVEL = <trace_level>
- Ajouter une entrée à
%ORACLE_HOME%\network\admin\listener.ora
qui crée un SID_NAME pour DG4ODBC. Par exemple :SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=spark) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- Ajouter une entrée DG4ODBC à
%ORACLE_HOME%\network\admin\tnsnames.ora
qui spécifie le SID_NAME créé à l'étape précédente. Par exemple :SPARK = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = spark) ) (HS = OK) )
Remplacez oracle_host avec le nom d'hôte de votre machine Oracle.
- Démarrez (ou redémarrez) l'écouteur Oracle :
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Connectez-vous à votre base de données Oracle dans SQL*Plus.
- Dans SQL*Plus, créez un lien de base de données pour l'instance Apache Spark cible. Par exemple :
CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
- Essayez d'interroger vos données Apache Spark. Par exemple :
SELECT * FROM "MyTable"@SPARKLINK;
Remarques
- Si vous rencontrez des problèmes pour vous connecter à Apache Spark depuis Oracle, activez le suivi DG4ODBC et vérifiez les fichiers de suivi écrits dans
%ORACLE_HOME%\hs\trace
annuaire. Pour activer le traçage DG4ODBC, ajoutez la ligneHS_FDS_TRACE_LEVEL = DEBUG
versinitspark.ora
puis démarrez / redémarrez l'écouteur Oracle. Si latrace
répertoire n'existe pas, créez-le. - Si vous activez le suivi du gestionnaire de pilotes ODBC, mais que vous n'obtenez pas de fichier de suivi ou que vous obtenez un fichier de suivi vide (vérifiez C:\SQL.log), remplacez l'emplacement du fichier de suivi par le répertoire Windows TEMP. Par exemple,
C:\Windows\Temp\SQL.log
.