No momento, estamos desenvolvendo um driver ODBC do Apache Spark, que permite trabalhar com dados do Spark em aplicativos como Perl, PHP, Excel e Oracle).
Configurando uma fonte de dados ODBC
Antes que o driver ODBC do Apache Spark possa ser usado para conectar um aplicativo ao Apache Spark, é necessário configurar uma fonte de dados ODBC. Uma fonte de dados ODBC armazena os detalhes da conexão para o banco de dados de destino (por exemplo, Apache Spark) e o driver ODBC necessário para se conectar a ele (por exemplo, o driver ODBC Apache Spark).
Para usar o driver ODBC do Apache Spark, você precisa criar uma conta de desenvolvedor do Apache Spark. Faça login no painel do desenvolvedor do Apache Spark e crie um aplicativo de API REST. Você precisará do ID do cliente e do segredo do aplicativo para criar uma fonte de dados para o driver ODBC do Apache Spark.
As fontes de dados ODBC são configuradas no Administrador ODBC, que está incluído no Windows.
No administrador ODBC:
- Escolha a guia DSN do sistema e, em seguida, escolha Adicionar.
- Na caixa de diálogo Criar nova fonte de dados, escolha Easysoft ODBC-Apache Spark Driver e, em seguida, escolha Concluir.
- Preencha os campos na caixa de diálogo Easysoft ODBC-Apache Spark Driver DSN Setup.
- No seu aplicativo, conecte-se à fonte de dados recém-configurada e execute uma consulta de amostra. Por exemplo:
select * from MyTable
Trabalhar com dados do Apache Spark em Perl
Strawberry Perl é uma distribuição Perl para Windows que inclui as camadas de middleware necessárias (Perl DBI e Perl DBD::ODBC) para permitir que o driver ODBC do Apache Spark conecte seus aplicativos Perl ao Apache Spark.
- Aqui está um script Perl que recupera alguns dados do 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);
Trabalhar com dados do Apache Spark em PHP
- Aqui está um script PHP que recupera alguns dados do 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); } ?>
Conectando o Excel ao Apache Spark
Siga estas etapas para retornar dados do Apache Spark para o Microsoft Excel usando o Microsoft Query:
- Nos Dados guia, escolha Nova consulta> De outra fonte> De ODBC .
- Escolha a fonte de dados ODBC do Apache Spark quando solicitado.
- Escolha uma tabela entre os conjuntos de dados disponíveis.
- Escolha Carregar para retornar os dados do Apache Spark para a planilha.
Observe que para grandes conjuntos de resultados, talvez seja necessário filtrar os dados usando o Excel antes que os dados possam ser retornados à planilha.
Conecte-se ao Apache Spark da Oracle
- Crie um arquivo init DG4ODBC em sua máquina Oracle. Para fazer isso, mude para o
%ORACLE_HOME%\hs\admin
diretório. Crie uma cópia do arquivoinitdg4odbc.ora
. Nomeie o novo arquivoinitspark.ora
.
Observação Nestas instruções, substitua %ORACLE_HOME% pelo local do seu diretório Oracle HOME. Por exemplo,C:\oraclexe\app\oracle\product\11.2.0\server
.
- Certifique-se de que esses parâmetros e valores estejam presentes em seu arquivo init:
HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
- Comente a linha que permite o rastreamento DG4ODBC. Por exemplo:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Adicionar uma entrada a
%ORACLE_HOME%\network\admin\listener.ora
que cria um SID_NAME para DG4ODBC. Por exemplo:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=spark) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- Adicione uma entrada DG4ODBC a
%ORACLE_HOME%\network\admin\tnsnames.ora
que especifica o SID_NAME criado na etapa anterior. Por exemplo:SPARK = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = spark) ) (HS = OK) )
Substitua oracle_host com o nome do host de sua máquina Oracle.
- Inicie (ou reinicie) o Oracle Listener:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Conecte-se ao seu banco de dados Oracle no SQL*Plus.
- No SQL*Plus, crie um link de banco de dados para a instância Apache Spark de destino. Por exemplo:
CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
- Tente consultar seus dados do Apache Spark. Por exemplo:
SELECT * FROM "MyTable"@SPARKLINK;
Observações
- Se você tiver problemas para se conectar ao Apache Spark da Oracle, ative o rastreamento DG4ODBC e verifique os arquivos de rastreamento gravados no
%ORACLE_HOME%\hs\trace
diretório. Para habilitar o rastreamento DG4ODBC, adicione a linhaHS_FDS_TRACE_LEVEL = DEBUG
parainitspark.ora
e, em seguida, inicie / reinicie o ouvinte Oracle. Se otrace
diretório não existe, crie-o. - Se você habilitar o rastreamento do ODBC Driver Manager, mas não obtiver um arquivo de rastreamento ou um arquivo de rastreamento vazio (verifique C:\SQL.log), altere o local do arquivo de rastreamento para o diretório TEMP do Windows. Por exemplo,
C:\Windows\Temp\SQL.log
.