В момента разработваме 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 администратор:
- Изберете раздела System DSN и след това изберете Добавяне.
- В диалоговия прозорец Създаване на нов източник на данни изберете Easysoft ODBC-Apache Spark Driver и след това изберете Край.
- Попълнете полетата в диалоговия прозорец Настройка на DSN на драйвера на Easysoft ODBC-Apache Spark.
- В приложението си се свържете с новоконфигурирания си източник на данни и изпълнете примерна заявка. Например:
select * from MyTable
Работа с данни от Apache Spark в Perl
Strawberry Perl е Perl дистрибуция за Windows, която включва необходимите слоеве на междинен софтуер (Perl DBI и Perl DBD::ODBC), за да позволи на Apache Spark ODBC драйвера да свърже вашите Perl приложения към Apache Spark.
- Ето 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
- Ето 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:
- Върху Данните раздел, изберете Нова заявка> От друг източник> От ODBC .
- Изберете източника на данни Apache Spark ODBC, когато бъдете подканени.
- Изберете таблица от наличните набори от данни.
- Изберете Зареждане, за да върнете данните на Apache Spark към работния лист.
Имайте предвид, че за големи набори от резултати може да се наложи да филтрирате данните с помощта на Excel, преди данните да могат да бъдат върнати в работния лист.
Свържете се с Apache Spark от Oracle
- Създайте DG4ODBC init файл на вашата Oracle машина. За да направите това, променете на
%ORACLE_HOME%\hs\admin
директория. Създайте копие на файлаinitdg4odbc.ora
. Наименувайте новия файлinitspark.ora
.Забележка В тези инструкции заменете %ORACLE_HOME% с местоположението на вашата HOME директория на Oracle. Например
C:\oraclexe\app\oracle\product\11.2.0\server
. - Уверете се, че тези параметри и стойности присъстват във вашия init файл:
HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
- Коментирайте реда, който позволява проследяване на DG4ODBC. Например:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Добавете запис към
%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) ) )
- Добавете запис 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 машина.
- Стартирайте (или рестартирайте) Oracle Listener:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Свържете се с вашата база данни Oracle в SQL*Plus.
- В SQL*Plus създайте връзка към базата данни за целевия екземпляр на Apache Spark. Например:
CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
- Опитайте да направите заявка за вашите данни от 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
.