sql >> Databasteknik >  >> RDS >> Database

Apache Spark ODBC-drivrutinen

Vi håller för närvarande på att utveckla en Apache Spark ODBC-drivrutin, som låter dig arbeta med Spark-data i applikationer som Perl, PHP, Excel och Oracle).

Konfigurera en ODBC-datakälla

Innan Apache Spark ODBC-drivrutinen kan användas för att ansluta en applikation till Apache Spark, är det nödvändigt att konfigurera en ODBC-datakälla. En ODBC-datakälla lagrar anslutningsdetaljerna för måldatabasen (t.ex. Apache Spark) och ODBC-drivrutinen som krävs för att ansluta till den (t.ex. Apache Spark ODBC-drivrutinen).

För att använda Apache Spark ODBC-drivrutinen måste du skapa ett Apache Spark-utvecklarkonto. Logga in på Apache Sparks utvecklarinstrumentpanel och skapa en REST API-app. Du behöver appens klient-ID och hemlighet för att skapa en datakälla för Apache Spark ODBC-drivrutinen.

ODBC-datakällor konfigureras i ODBC Administrator, som ingår i Windows.

I ODBC Administrator:

  1. Välj fliken System DSN och välj sedan Lägg till.
  2. I dialogrutan Skapa ny datakälla väljer du Easysoft ODBC-Apache Spark Driver och sedan Slutför.
  3. Fyll i fälten i dialogrutan Easysoft ODBC-Apache Spark Driver DSN Setup.
  4. I din app ansluter du till din nykonfigurerade datakälla och kör en exempelfråga. Till exempel:
    select * from MyTable

Arbeta med Apache Spark-data i Perl

Strawberry Perl är en Perl-distribution för Windows som inkluderar de nödvändiga mellanvaruskikten (Perl DBI och Perl DBD::ODBC) för att möjliggöra för Apache Spark ODBC-drivrutinen att ansluta dina Perl-applikationer till Apache Spark.

  1. Här är ett Perl-skript som hämtar lite Apache Spark-data:
    #!/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);

Arbeta med Apache Spark-data i PHP

  1. Här är ett PHP-skript som hämtar lite Apache Spark-data:
    <?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);
      }
    ?>

Ansluter Excel till Apache Spark

Följ dessa steg för att returnera data från Apache Spark till Microsoft Excel genom att använda Microsoft Query:

  1. Data fliken, välj Ny fråga> Från annan källa> Från ODBC .
  2. Välj Apache Spark ODBC-datakällan när du uppmanas.
  3. Välj en tabell från de tillgängliga datauppsättningarna.
  4. Välj Ladda för att returnera Apache Spark-data till arbetsbladet.

    Observera att för stora resultatuppsättningar kan du behöva filtrera data med Excel innan data kan returneras till kalkylbladet.

Anslut till Apache Spark från Oracle

  1. Skapa en DG4ODBC init-fil på din Oracle-dator. För att göra detta, byt till %ORACLE_HOME%\hs\admin katalog. Skapa en kopia av filen initdg4odbc.ora . Namnge den nya filen initspark.ora .

    Obs I dessa instruktioner ersätter du %ORACLE_HOME% med platsen för din Oracle HOME-katalog. Till exempel, C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Se till att dessa parametrar och värden finns i din init-fil:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Kommentera raden som möjliggör DG4ODBC-spårning. Till exempel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Lägg till en post i %ORACLE_HOME%\network\admin\listener.ora som skapar en SID_NAME för DG4ODBC. Till exempel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=spark)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Lägg till en DG4ODBC-post i %ORACLE_HOME%\network\admin\tnsnames.ora som anger SID_NAME som skapades i föregående steg. Till exempel:
    SPARK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = spark)
        )
        (HS = OK)
      )
    

    Ersätt oracle_host med värdnamnet för din Oracle-maskin.

  6. Starta (eller starta om) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Anslut till din Oracle-databas i SQL*Plus.
  8. I SQL*Plus, skapa en databaslänk för mål-Apache Spark-instansen. Till exempel:
    CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
    
  9. Försök att söka efter dina Apache Spark-data. Till exempel:
    SELECT * FROM "MyTable"@SPARKLINK;
    
Anteckningar
  • Om du har problem med att ansluta till Apache Spark från Oracle, aktivera DG4ODBC-spårning och kontrollera spårningsfilerna som skrivits till %ORACLE_HOME%\hs\trace katalog. För att aktivera DG4ODBC-spårning, lägg till raden HS_FDS_TRACE_LEVEL = DEBUG till initspark.ora och starta/starta om Oracle-lyssnaren. Om trace katalogen finns inte, skapa den.
  • Om du aktiverar ODBC Driver Manager-spårning, men inte får en spårningsfil eller får en tom spårningsfil (kontrollera efter C:\SQL.log), ändrar du spårningsfilens plats till Windows TEMP-katalogen. Till exempel, C:\Windows\Temp\SQL.log .

  1. PostgreSQL-kontrollbegränsning för främmande nyckelvillkor

  2. JOIN-frågor kontra flera frågor

  3. Hur överför eller exporterar du SQL Server 2005-data till Excel

  4. Åtgärda "SQL-server blockerade åtkomst till STATEMENT "OpenRowset/OpenDatasource" för komponenten "Ad Hoc Distributed Queries"