sql >> Database teknologi >  >> RDS >> Database

Apache Spark ODBC-driver

Vi er i øjeblikket ved at udvikle en Apache Spark ODBC-driver, som lader dig arbejde med Spark-data i applikationer som Perl, PHP, Excel og Oracle).

Konfiguration af en ODBC-datakilde

Før Apache Spark ODBC-driveren kan bruges til at forbinde en applikation til Apache Spark, er det nødvendigt at konfigurere en ODBC-datakilde. En ODBC-datakilde gemmer forbindelsesdetaljerne for måldatabasen (f.eks. Apache Spark) og den ODBC-driver, der kræves for at oprette forbindelse til den (f.eks. Apache Spark ODBC-driveren).

For at bruge Apache Spark ODBC-driveren skal du oprette en Apache Spark-udviklerkonto. Log ind på Apache Spark-udviklerdashboardet, og opret en REST API-app. Du skal bruge Appens klient-id og hemmelighed for at oprette en datakilde til Apache Spark ODBC-driveren.

ODBC-datakilder er konfigureret i ODBC Administrator, som er inkluderet i Windows.

I ODBC Administrator:

  1. Vælg fanen System DSN, og vælg derefter Tilføj.
  2. Vælg Easysoft ODBC-Apache Spark Driver i dialogboksen Opret ny datakilde, og vælg derefter Udfør.
  3. Udfyld felterne i dialogboksen Easysoft ODBC-Apache Spark Driver DSN Setup.
  4. I din applikation skal du oprette forbindelse til din nyligt konfigurerede datakilde og køre en prøveforespørgsel. For eksempel:
    select * from MyTable

Arbejd med Apache Spark-data i Perl

Strawberry Perl er en Perl-distribution til Windows, der inkluderer de nødvendige middleware-lag (Perl DBI og Perl DBD::ODBC) for at gøre det muligt for Apache Spark ODBC-driveren at forbinde dine Perl-applikationer til Apache Spark.

  1. Her er et Perl-script, der henter nogle 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);

Arbejd med Apache Spark-data i PHP

  1. Her er et PHP-script, der henter nogle 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);
      }
    ?>

Tilslutning af Excel til Apache Spark

Følg disse trin for at returnere data fra Apache Spark til Microsoft Excel ved hjælp af Microsoft Query:

  1. Data fanen, skal du vælge Ny forespørgsel> Fra anden kilde> Fra ODBC .
  2. Vælg Apache Spark ODBC-datakilden, når du bliver bedt om det.
  3. Vælg en tabel fra de tilgængelige datasæt.
  4. Vælg Load for at returnere Apache Spark-dataene til arbejdsarket.

    Bemærk, at for store resultatsæt skal du muligvis filtrere dataene ved hjælp af Excel, før dataene kan returneres til regnearket.

Opret forbindelse til Apache Spark fra Oracle

  1. Opret en DG4ODBC init-fil på din Oracle-maskine. For at gøre dette skal du skifte til %ORACLE_HOME%\hs\admin vejviser. Opret en kopi af filen initdg4odbc.ora . Navngiv den nye fil initspark.ora .

    Bemærk I denne vejledning skal du erstatte %ORACLE_HOME% med placeringen af ​​dit Oracle HOME-bibliotek. For eksempel C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Sørg for, at disse parametre og værdier er til stede i din init-fil:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Kommenter linjen, der aktiverer DG4ODBC-sporing. For eksempel:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Tilføj en post til %ORACLE_HOME%\network\admin\listener.ora der opretter en SID_NAME for DG4ODBC. For eksempel:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=spark)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Tilføj en DG4ODBC-post til %ORACLE_HOME%\network\admin\tnsnames.ora der specificerer SID_NAME oprettet i det forrige trin. For eksempel:
    SPARK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = spark)
        )
        (HS = OK)
      )
    

    Erstat oracle_host med værtsnavnet på din Oracle-maskine.

  6. Start (eller genstart) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Opret forbindelse til din Oracle-database i SQL*Plus.
  8. I SQL*Plus skal du oprette et databaselink til målforekomsten af ​​Apache Spark. For eksempel:
    CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
    
  9. Prøv at forespørge på dine Apache Spark-data. For eksempel:
    SELECT * FROM "MyTable"@SPARKLINK;
    
Bemærkninger
  • Hvis du har problemer med at oprette forbindelse til Apache Spark fra Oracle, skal du aktivere DG4ODBC-sporing og kontrollere sporingsfilerne skrevet til %ORACLE_HOME%\hs\trace vejviser. For at aktivere DG4ODBC-sporing skal du tilføje linjen HS_FDS_TRACE_LEVEL = DEBUG til initspark.ora og start/genstart derefter Oracle-lytteren. Hvis trace bibliotek eksisterer ikke, opret det.
  • Hvis du aktiverer ODBC Driver Manager-sporing, men ikke får en sporingsfil eller får en tom sporingsfil (tjek efter C:\SQL.log), skal du ændre sporingsfilens placering til Windows TEMP-mappen. For eksempel C:\Windows\Temp\SQL.log .

  1. Hvad pokker er en DTU?

  2. Sådan beregnes summen af ​​flere kolonner i PostgreSQL

  3. Cyklusdetektion med rekursiv subquery factoring

  4. Oracle-sekvens men så i MS SQL Server