Database
 sql >> база данни >  >> RDS >> Database

Apache Spark ODBC драйвер

В момента разработваме Apache Spark ODBC драйвер, който ви позволява да работите с данни от Spark в приложения като Perl, PHP, Excel и Oracle).

Конфигуриране на ODBC източник на данни

Преди Apache Spark ODBC драйверът да може да се използва за свързване на приложение към Apache Spark, е необходимо да конфигурирате източник на ODBC данни. Източникът на ODBC данни съхранява подробностите за връзката за целевата база данни (напр. Apache Spark) и ODBC драйвера, който е необходим за свързване с нея (напр. ODBC драйвера на Apache Spark).

За да използвате ODBC драйвера на Apache Spark, трябва да създадете акаунт на разработчик на Apache Spark. Влезте в таблото за управление на разработчиците на Apache Spark и създайте приложение за REST API. Ще ви трябват клиентския идентификатор и тайната на приложението, за да създадете източник на данни за драйвера на Apache Spark ODBC.

ODBC източници на данни се конфигурират в ODBC Administrator, който е включен в Windows.

В ODBC администратор:

  1. Изберете раздела System DSN и след това изберете Добавяне.
  2. В диалоговия прозорец Създаване на нов източник на данни изберете Easysoft ODBC-Apache Spark Driver и след това изберете Край.
  3. Попълнете полетата в диалоговия прозорец Настройка на DSN на драйвера на Easysoft ODBC-Apache Spark.
  4. В приложението си се свържете с новоконфигурирания си източник на данни и изпълнете примерна заявка. Например:
    select * from MyTable

Работа с данни от Apache Spark в Perl

Strawberry Perl е Perl дистрибуция за Windows, която включва необходимите слоеве на междинен софтуер (Perl DBI и Perl DBD::ODBC), за да позволи на Apache Spark ODBC драйвера да свърже вашите Perl приложения към Apache Spark.

  1. Ето Perl скрипт, който извлича някои данни от 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);

Работа с данни от Apache Spark в PHP

  1. Ето PHP скрипт, който извлича някои данни от 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);
      }
    ?>

Свързване на Excel с Apache Spark

Следвайте тези стъпки, за да върнете данни от Apache Spark към Microsoft Excel чрез Microsoft Query:

  1. Върху Данните раздел, изберете Нова заявка> От друг източник> От ODBC .
  2. Изберете източника на данни Apache Spark ODBC, когато бъдете подканени.
  3. Изберете таблица от наличните набори от данни.
  4. Изберете Зареждане, за да върнете данните на Apache Spark към работния лист.

    Имайте предвид, че за големи набори от резултати може да се наложи да филтрирате данните с помощта на Excel, преди данните да могат да бъдат върнати в работния лист.

Свържете се с Apache Spark от Oracle

  1. Създайте DG4ODBC init файл на вашата Oracle машина. За да направите това, променете на %ORACLE_HOME%\hs\admin директория. Създайте копие на файла initdg4odbc.ora . Наименувайте новия файл initspark.ora .

    Забележка В тези инструкции заменете %ORACLE_HOME% с местоположението на вашата HOME директория на Oracle. Например C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Уверете се, че тези параметри и стойности присъстват във вашия init файл:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Коментирайте реда, който позволява проследяване на DG4ODBC. Например:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Добавете запис към %ORACLE_HOME%\network\admin\listener.ora което създава SID_NAME за DG4ODBC. Например:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=spark)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Добавете запис DG4ODBC към %ORACLE_HOME%\network\admin\tnsnames.ora който посочва SID_NAME, създаден в предишната стъпка. Например:
    SPARK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = spark)
        )
        (HS = OK)
      )
    

    Заменете oracle_host с името на хоста на вашата Oracle машина.

  6. Стартирайте (или рестартирайте) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Свържете се с вашата база данни Oracle в SQL*Plus.
  8. В SQL*Plus създайте връзка към базата данни за целевия екземпляр на Apache Spark. Например:
    CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
    
  9. Опитайте да направите заявка за вашите данни от Apache Spark. Например:
    SELECT * FROM "MyTable"@SPARKLINK;
    
Бележки
  • Ако имате проблеми при свързването с Apache Spark от Oracle, активирайте проследяването на DG4ODBC и проверете проследяващите файлове, записани в %ORACLE_HOME%\hs\trace директория. За да активирате проследяването на DG4ODBC, добавете реда HS_FDS_TRACE_LEVEL = DEBUG до initspark.ora и след това стартирайте/рестартирайте слушателя на Oracle. Ако trace директория не съществува, създайте я.
  • Ако активирате проследяването на ODBC Driver Manager, но не получавате файл за проследяване или празен файл за проследяване (проверете за C:\SQL.log), променете местоположението на файла за проследяване на TEMP директорията на Windows. Например C:\Windows\Temp\SQL.log .

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между RANK и DENSE_RANK в SQL?

  2. Използване на JShell в Java 9 в NetBeans 9.0, част 2

  3. Топ 9 системи за управление на бази данни за шаблони на Joomla

  4. Оттегляне на Salesforce TLS 1.0

  5. Как да изчислим разликата между две дати в T-SQL