Database
 sql >> Datenbank >  >> RDS >> Database

Apache Spark ODBC-Treiber

Wir entwickeln derzeit einen Apache Spark ODBC-Treiber, mit dem Sie mit Spark-Daten in Anwendungen wie Perl, PHP, Excel und Oracle arbeiten können).

Konfigurieren einer ODBC-Datenquelle

Bevor der Apache Spark ODBC-Treiber verwendet werden kann, um eine Anwendung mit Apache Spark zu verbinden, muss eine ODBC-Datenquelle konfiguriert werden. Eine ODBC-Datenquelle speichert die Verbindungsdetails für die Zieldatenbank (z. B. Apache Spark) und den für die Verbindung erforderlichen ODBC-Treiber (z. B. den Apache Spark ODBC-Treiber).

Um den Apache Spark-ODBC-Treiber verwenden zu können, müssen Sie ein Apache Spark-Entwicklerkonto erstellen. Melden Sie sich beim Apache Spark-Entwickler-Dashboard an und erstellen Sie eine REST-API-App. Sie benötigen die Client-ID und das Geheimnis der App, um eine Datenquelle für den Apache Spark-ODBC-Treiber zu erstellen.

ODBC-Datenquellen werden im ODBC-Administrator konfiguriert, der in Windows enthalten ist.

Im ODBC-Administrator:

  1. Wählen Sie die Registerkarte „System-DSN“ und dann „Hinzufügen“.
  2. Wählen Sie im Dialogfeld „Neue Datenquelle erstellen“ die Option „Easysoft ODBC-Apache Spark-Treiber“ und dann „Fertig stellen“.
  3. Füllen Sie die Felder im Dialogfeld Easysoft ODBC-Apache Spark Driver DSN Setup aus.
  4. Stellen Sie in Ihrer Anwendung eine Verbindung zu Ihrer neu konfigurierten Datenquelle her und führen Sie eine Beispielabfrage aus. Zum Beispiel:
    select * from MyTable

Mit Apache Spark-Daten in Perl arbeiten

Strawberry Perl ist eine Perl-Distribution für Windows, die die erforderlichen Middleware-Schichten (Perl DBI und Perl DBD::ODBC) enthält, damit der Apache Spark ODBC-Treiber Ihre Perl-Anwendungen mit Apache Spark verbinden kann.

  1. Hier ist ein Perl-Skript, das einige Apache Spark-Daten abruft:
    #!/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);

Mit Apache Spark-Daten in PHP arbeiten

  1. Hier ist ein PHP-Skript, das einige Apache Spark-Daten abruft:
    <?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);
      }
    ?>

Excel mit Apache Spark verbinden

Führen Sie diese Schritte aus, um Daten von Apache Spark an Microsoft Excel mithilfe von Microsoft Query zurückzugeben:

  1. Auf den Daten Wählen Sie auf der Registerkarte Neue Abfrage> Aus anderer Quelle> Aus ODBC .
  2. Wählen Sie die Apache Spark ODBC-Datenquelle, wenn Sie dazu aufgefordert werden.
  3. Wählen Sie eine Tabelle aus den verfügbaren Datensätzen aus.
  4. Wählen Sie Laden, um die Apache Spark-Daten zurückzugeben zum Arbeitsblatt.

    Beachten Sie, dass Sie bei großen Ergebnismengen möglicherweise die Daten mithilfe von Excel filtern müssen, bevor die Daten an das Arbeitsblatt zurückgegeben werden können.

Verbinden Sie sich von Oracle mit Apache Spark

  1. Erstellen Sie eine DG4ODBC-Init-Datei auf Ihrem Oracle-Rechner. Wechseln Sie dazu in den %ORACLE_HOME%\hs\admin Verzeichnis. Erstellen Sie eine Kopie der Datei initdg4odbc.ora . Benennen Sie die neue Datei initspark.ora .

    Hinweis Ersetzen Sie in diesen Anweisungen %ORACLE_HOME% durch den Speicherort Ihres Oracle-HOME-Verzeichnisses. Beispiel:C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Stellen Sie sicher, dass diese Parameter und Werte in Ihrer Init-Datei vorhanden sind:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Kommentieren Sie die Zeile aus, die die DG4ODBC-Ablaufverfolgung aktiviert. Beispiel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Fügen Sie einen Eintrag zu %ORACLE_HOME%\network\admin\listener.ora hinzu die einen SID_NAME für DG4ODBC erstellt. Beispiel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=spark)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Fügen Sie einen DG4ODBC-Eintrag zu %ORACLE_HOME%\network\admin\tnsnames.ora hinzu die den im vorherigen Schritt erstellten SID_NAME angibt. Beispiel:
    SPARK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = spark)
        )
        (HS = OK)
      )
    

    Ersetzen Sie oracle_host durch den Hostnamen Ihres Oracle-Rechners.

  6. Starten (oder starten) Sie den Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Verbinden Sie sich mit Ihrer Oracle-Datenbank in SQL*Plus.
  8. Erstellen Sie in SQL*Plus einen Datenbanklink für die Apache Spark-Zielinstanz. Zum Beispiel:
    CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
    
  9. Versuchen Sie, Ihre Apache Spark-Daten abzufragen. Beispiel:
    SELECT * FROM "MyTable"@SPARKLINK;
    
Notizen
  • Wenn Sie Probleme beim Herstellen einer Verbindung zu Apache Spark von Oracle haben, aktivieren Sie die DG4ODBC-Ablaufverfolgung und überprüfen Sie die Ablaufverfolgungsdateien, die in %ORACLE_HOME%\hs\trace geschrieben werden Verzeichnis. Um die DG4ODBC-Ablaufverfolgung zu aktivieren, fügen Sie die Zeile HS_FDS_TRACE_LEVEL = DEBUG hinzu zu initspark.ora und starten / starten Sie dann den Oracle-Listener neu. Wenn der trace Verzeichnis existiert nicht, erstellen Sie es.
  • Wenn Sie die ODBC-Treiber-Manager-Ablaufverfolgung aktivieren, aber keine Ablaufverfolgungsdatei oder eine leere Ablaufverfolgungsdatei erhalten (überprüfen Sie C:\SQL.log), ändern Sie den Speicherort der Ablaufverfolgungsdatei in das Windows-TEMP-Verzeichnis. Beispiel:C:\Windows\Temp\SQL.log .