Database
 sql >> Base de données >  >> RDS >> Database

Pilote ODBC Apache Spark

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 :

  1. Choisissez l'onglet DSN système, puis choisissez Ajouter.
  2. Dans la boîte de dialogue Créer une nouvelle source de données, choisissez Pilote Easysoft ODBC-Apache Spark, puis choisissez Terminer.
  3. Renseignez les champs de la boîte de dialogue Easysoft ODBC-Apache Spark Driver DSN Setup.
  4. 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.

  1. 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

  1. 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 :

  1. Sur les Données onglet, choisissez Nouvelle requête > À partir d'une autre source > À partir d'ODBC .
  2. Choisissez la source de données Apache Spark ODBC lorsque vous y êtes invité.
  3. Choisissez un tableau parmi les ensembles de données disponibles.
  4. 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

  1. 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 fichier initdg4odbc.ora . Nommez le nouveau fichier initspark.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 .

  2. Assurez-vous que ces paramètres et valeurs sont présents dans votre fichier init :
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Commentez la ligne qui active le traçage DG4ODBC. Par exemple :
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. 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)
       )
     )
    
  5. 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.

  6. Démarrez (ou redémarrez) l'écouteur Oracle :
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Connectez-vous à votre base de données Oracle dans SQL*Plus.
  8. 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';
    
  9. 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 ligne HS_FDS_TRACE_LEVEL = DEBUG vers initspark.ora puis démarrez / redémarrez l'écouteur Oracle. Si la trace 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 .