sql >> Base de Datos >  >> RDS >> Database

Controlador ODBC de Apache Spark

Actualmente estamos desarrollando un controlador ODBC de Apache Spark, que le permite trabajar con datos de Spark en aplicaciones como Perl, PHP, Excel y Oracle).

Configuración de una fuente de datos ODBC

Antes de que el controlador ODBC de Apache Spark pueda usarse para conectar una aplicación a Apache Spark, es necesario configurar una fuente de datos ODBC. Una fuente de datos ODBC almacena los detalles de conexión para la base de datos de destino (p. ej., Apache Spark) y el controlador ODBC necesario para conectarse (p. ej., el controlador ODBC de Apache Spark).

Para usar el controlador ODBC de Apache Spark, debe crear una cuenta de desarrollador de Apache Spark. Inicie sesión en el panel de desarrollo de Apache Spark y cree una aplicación de API REST. Necesitará el ID de cliente y el secreto de la aplicación para crear una fuente de datos para el controlador ODBC de Apache Spark.

Las fuentes de datos ODBC se configuran en el Administrador ODBC, que se incluye con Windows.

En el Administrador ODBC:

  1. Elija la pestaña DSN del sistema y luego elija Agregar.
  2. En el cuadro de diálogo Crear nueva fuente de datos, elija Easysoft ODBC-Apache Spark Driver y luego elija Finalizar.
  3. Complete los campos en el cuadro de diálogo Easysoft ODBC-Apache Spark Driver DSN Setup.
  4. En su aplicación, conéctese a su fuente de datos recién configurada y ejecute una consulta de muestra. Por ejemplo:
    select * from MyTable

Trabajar con datos de Apache Spark en Perl

Strawberry Perl es una distribución de Perl para Windows que incluye las capas de middleware necesarias (Perl DBI y Perl DBD::ODBC) para permitir que el controlador ODBC de Apache Spark conecte sus aplicaciones Perl a Apache Spark.

  1. Aquí hay un script de Perl que recupera algunos datos de 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);

Trabajar con datos de Apache Spark en PHP

  1. Aquí hay un script PHP que recupera algunos datos de 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);
      }
    ?>

Conexión de Excel a Apache Spark

Siga estos pasos para devolver datos de Apache Spark a Microsoft Excel mediante Microsoft Query:

  1. Sobre los datos pestaña, seleccione Nueva consulta> Desde otra fuente> Desde ODBC .
  2. Elija la fuente de datos ODBC de Apache Spark cuando se le solicite.
  3. Elija una tabla de los conjuntos de datos disponibles.
  4. Elija Cargar para devolver los datos de Apache Spark a la hoja de trabajo.

    Tenga en cuenta que para conjuntos de resultados grandes, es posible que deba filtrar los datos con Excel antes de que los datos puedan devolverse a la hoja de trabajo.

Conéctese a Apache Spark desde Oracle

  1. Cree un archivo de inicio DG4ODBC en su máquina Oracle. Para hacer esto, cambie a %ORACLE_HOME%\hs\admin directorio. Crea una copia del archivo initdg4odbc.ora . Nombra el nuevo archivo initspark.ora .

    Nota En estas instrucciones, reemplace %ORACLE_HOME% con la ubicación de su directorio Oracle HOME. Por ejemplo, C:\oraclexe\app\oracle\product\11.2.0\server .

  2. Asegúrese de que estos parámetros y valores estén presentes en su archivo de inicio:
    HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
  3. Comente la línea que habilita el seguimiento de DG4ODBC. Por ejemplo:
    #HS_FDS_TRACE_LEVEL = <trace_level>
    
  4. Agregue una entrada a %ORACLE_HOME%\network\admin\listener.ora que crea un SID_NAME para DG4ODBC. Por ejemplo:
    SID_LIST_LISTENER =
     (SID_LIST =
       (SID_DESC=
         (SID_NAME=spark)
         (ORACLE_HOME=%ORACLE_HOME%)
         (PROGRAM=dg4odbc)
       )
     )
    
  5. Agregue una entrada DG4ODBC a %ORACLE_HOME%\network\admin\tnsnames.ora que especifica el SID_NAME creado en el paso anterior. Por ejemplo:
    SPARK =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521))
        (CONNECT_DATA =
          (SID = spark)
        )
        (HS = OK)
      )
    

    Reemplazar oracle_host con el nombre de host de su máquina Oracle.

  6. Inicie (o reinicie) Oracle Listener:
    cd %ORACLE_HOME%\bin
    lsnrctl stop
    lsnrctl start
    
  7. Conéctese a su base de datos Oracle en SQL*Plus.
  8. En SQL*Plus, cree un enlace de base de datos para la instancia de destino de Apache Spark. Por ejemplo:
    CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
    
  9. Intente consultar sus datos de Apache Spark. Por ejemplo:
    SELECT * FROM "MyTable"@SPARKLINK;
    
Notas
  • Si tiene problemas para conectarse a Apache Spark desde Oracle, habilite el rastreo DG4ODBC y verifique los archivos de rastreo escritos en %ORACLE_HOME%\hs\trace directorio. Para habilitar el rastreo DG4ODBC, agregue la línea HS_FDS_TRACE_LEVEL = DEBUG a initspark.ora y luego inicie/reinicie Oracle listener. Si el trace directorio no existe, créelo.
  • Si habilita el seguimiento del Administrador de controladores ODBC, pero no obtiene un archivo de seguimiento o obtiene un archivo de seguimiento vacío (verifique C:\SQL.log), cambie la ubicación del archivo de seguimiento al directorio TEMP de Windows. Por ejemplo, C:\Windows\Temp\SQL.log .