Database
 sql >> Base de Dados >  >> RDS >> Database

Driver ODBC Apache Spark


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:
  1. Escolha a guia DSN do sistema e, em seguida, escolha Adicionar.
  2. Na caixa de diálogo Criar nova fonte de dados, escolha Easysoft ODBC-Apache Spark Driver e, em seguida, escolha Concluir.
  3. Preencha os campos na caixa de diálogo Easysoft ODBC-Apache Spark Driver DSN Setup.
  4. 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.
  1. 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

  1. 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:
  1. Nos Dados guia, escolha Nova consulta> De outra fonte> De ODBC .
  2. Escolha a fonte de dados ODBC do Apache Spark quando solicitado.
  3. Escolha uma tabela entre os conjuntos de dados disponíveis.
  4. 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

  1. 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 arquivo initdg4odbc.ora . Nomeie o novo arquivo initspark.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 .
  2. Certifique-se de que esses parâmetros e valores estejam presentes em seu arquivo init:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Comente a linha que permite o rastreamento DG4ODBC. Por exemplo:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. 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)
       )
     )
    
  5. 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.
  6. Inicie (ou reinicie) o Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Conecte-se ao seu banco de dados Oracle no SQL*Plus.
  8. 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';
    
  9. 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 linha HS_FDS_TRACE_LEVEL = DEBUG para initspark.ora e, em seguida, inicie / reinicie o ouvinte Oracle. Se o trace 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 .