Guía de creación de scripts de ACL 14.1

Comando ACCESSDATA

Importa datos de una variedad de orígenes de datos compatibles con ODBC.

El comando toma la forma de ACCESSDATA64 o ACCESSDATA32; todo depende de si usted está usando un controlador ODBC de 64 bits o de 32 bits.

{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Controlador"|"Dsn"|"Archivo"}} NAME valor <USER id_usuario> <PASSWORD núm | PROMPT_PASSWORD> TO nombre_tabla CHARMAX longitud_campo_máx MEMOMAX longitud_campo_máx <ALLCHARACTER> SOURCE (configuración_conexión)<HASH(valor_aleatorio; campos)>
SQL_QUERY
(sintaxis_SQL)
) END_QUERY
Nombre Descripción
CONNECTOR | ODBC {"Controlador"|"Dsn"|"Archivo"}

El tipo de conexión ODBC que desea realizar:

  • CONNECTOR conectar con un conector de datos nativo de Analytics
  • ODBC "Controlador" conectar usando un controlador de ODBC para Windows instalado en su computadora
  • ODBC "Dsn" conectar utilizando un DSN (nombre de origen de datos) guardado en su computadora
  • ODBC "Archivo" conectar utilizando un archivo DSN (un archivo .dsn guardado)
NAME valor

El nombre del conector de datos de Analytics, el controlador de ODBC o el DSN.

Por ejemplo:

  • NAME "Amazon Redshift"
  • NAME "Microsoft Access Driver (*.mdb, *.accdb)"
  • NAME "My Excel DSN"
  • NAME "excel.dsn"

USER id_usuario

opcional

La identificación de usuario para los orígenes de datos que requieren una ID de usuario.

PASSWORD núm | PROMPT_PASSWORD

opcional

Para orígenes de datos que requieren una contraseña:

  • PASSWORD núm utilice la definición de contraseña numerada.
  • PROMPT_PASSWORD muestra una solicitud de contraseña

    La solicitud de contraseña también permite cambiar el id_usuario.

Si utiliza PASSWORD núm, debe especificar una definición de contraseña creada previamente. Si desea obtener más información, consulte Comando PASSWORD y Comando SET.

Consejo

El uso del comando PASSWORD junto con PASSWORD núm es similar al uso de PROMPT_PASSWORD. Ambos enfoques solicitan una contraseña al usuario. PROMPT_PASSWORD tiene la ventaja de permitir la actualización del id_usuario.

TO nombre_tabla

El lugar al que se deben enviar los resultados del comando:

  • nombre_tabla guarda los resultados en una tabla de Analytics

    Especifique el nombre_tabla como una cadena entre comillas con la extensión de archivo .FIL. Por ejemplo: TO "Salida.FIL"

    Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la carpeta que contiene el proyecto de Analytics.

    Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una carpeta existente o una diferente:

    • TO "C:\Salida.FIL"
    • TO "Resultados\Salida.FIL"

    Nota

    Los nombres de las tablas tienen un límite de 64 caracteres alfanuméricos, sin incluir la extensión .FIL. El nombre puede incluir un guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni espacios. El nombre no puede comenzar con un número.

CHARMAX longitud_campo_máx

La longitud máxima en caracteres de cualquier campo en la tabla de Analytics que se origina como datos de carácter en el origen desde el cual está realizando la importación.

El valor predeterminado es 50. Los datos que superen la longitud de campo máxima se truncan al importarlos a Analytics.

MEMOMAX longitud_campo_máx

La longitud máxima en caracteres para los campos de texto, nota o memo que está importando.

El valor predeterminado es 100. Los datos que superen la longitud de campo máxima se truncan al importarlos a Analytics.

ALLCHARACTER

opcional

Asigne automáticamente el tipo de datos de Carácter a todos los campos importados.

Una vez que los datos se encuentran en Analytics, puede asignarles diferentes tipos de datos, como Numéricos o Fechahora, a los campos y especificar los detalles de formato.

Consejo

ALLCHARACTER es útil si está importando una tabla que contiene valores de identificación numéricos. Puede usar ALLCHARACTER para impedir que Analytics asigne automáticamente los tipos de datos Numéricos a valores que deberían usar el tipo de datos de Carácter.

SOURCE configuración_conexión

La configuración de la conexión (cadena de conexión) necesaria para conectarse al origen de datos.

HASH(valor_aleatorio ; campos)

opcional

Importa los campos especificados como valores con cifrado hash criptográfico. Los valores con cifrado hash son transformaciones que no se pueden decodificar después de importar los campos:

  • valor_aleatorio una cadena alfanumérica que está concatenada con los valores de los datos de origen para reforzar el cifrado con hash de los valores de los campos. Introduzca el valor hash como una cadena entre comillas.

    El valor salt se limita a 128 caracteres. No use ninguno de los siguientes caracteres: (  )  "

  • campos una lista de uno o más campos a los que desea aplicar el código hash. Introduzca los campos como una cadena entre comillas y separe cada campo con una coma.

    Debe especificar el nombre de campo que ve en el área de almacenamiento temporal y previsualización de la ventana Data Access, no el nombre del campo físico del origen de los datos.

    Nota

    El nombre del campo que se muestra en la previsualización de la ventana Data Access es el valor de alias del campo en la consulta de SQL ("nombre_del_campo" AS "alias"). Debe usar el valor de alias para hacer referencia a los campos.

HASH("QZ3x7"; "SSN_NO; CC_NO; Apellido")

Si desea información sobre la comparación de valores cifrados con hash durante la importación con valores cifrados con hash en ACLScript, consulte Comparación de los datos cifrados con hash con ACCESSDATA con los datos cifrados con hash con la función HASH( ) de ACLScript.

SQL_QUERY (sintaxis_SQL) END_QUERY

La declaración de importación de SQL.

Todo lo que se encuentre dentro de los paréntesis forma parte de la consulta de SQL y debe ser válido para SQL.

Importación de datos mediante un conector de datos Analytics nativo

Necesita importar datos desde el servicio de datos en la nube Amazon Redshift. Para hacerlo, usted utiliza el conector de datos de Analytics para Amazon Redshift:

ACCESSDATA64 CONNECTOR NAME "Amazon Redshift" USER "Usuario_ACL" PROMPT_PASSWORD TO "historial_autorización.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( boolsaschar=0;cachesize=100;database=usage;declarefetchmode=0;maxbytea=255;maxlongvarchar=8190;maxvarchar=255;port=5439;servername=acl_test.highbond.com;singlerowmode=1;sslmode=require;textaslongvarchar=0;usemultiplestatments=0;useunicode=1)
  SQL_QUERY(
    SELECT
      "historial_autorización"."organización" AS "organización", 
      "historial_autorización"."correo_electrónico_usuario" AS "correo_electrónico_usuario",
      "historial_autorización"."id_plan" AS "id_plan",
      "historial_autorización"."fecha_desde" AS "fecha_desde",
      "historial_autorización"."fecha_hasta" AS "fecha_hasta"
    FROM
      "prm"."historial_autorización" "historial_autorización" 
) END_QUERY

Importación de datos con un controlador ODBC de Windows

Necesita importar datos desde una base de datos de Microsoft Access. Para hacerlo, utiliza el controlador ODBC de Windows para conectarse a MS Access y completa la importación:

ACCESSDATA32 ODBC "Controlador" NAME "Controlador Microsoft Access (*.mdb)" TO "Facturas.FIL" CHARMAX 50 MEMOMAX 100
  SOURCE( dbq=C:\Usuarios\lachlan_murray\Documentos\ACL Data\Archivos de datos de muestra\Muestra.mdb;defaultdir=C:\Usuarios\lachlan_murray\Documentos\ACL Data\Archivos de datos de muestra;driverid=281;fil=MS Access;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;threads=3;usercommitsync=Yes)
  SQL_QUERY(
    SELECT
       `Cliente`.`ID_Cliente` AS `ID_Cliente`,
       `Cliente`.`Compañía` AS `Compañía`,
      Cliente`.`Dirección` AS `Dirección`,
      `Cliente`.`Ciudad` AS `Ciudad`,
      `Cliente`.`Región` AS `Región`,
      `Cliente`.`Código_Postal` AS `Código_Postal`,
      `Cliente`.`País` AS `País`,
      `Cliente`.`Teléfono` AS `Teléfono`,
      `Pedidos`.`ID_Pedido` AS `ID_Pedido`,
      `Pedidos`.`ID_Cliente` AS `Pedidos_ID_Cliente`,
      `Pedidos`.`ID_Producto` AS `ID_Producto`,
      `Pedidos`.`Fecha_Pedido` AS `Fecha_Pedido`,
      `Pedidos`.`Cantidad` AS `Cantidad`,
      `Producto`.`ID_Producto` AS `Producto_ID_Producto`,
      `Producto`.`Nombre_Producto` AS `Nombre_Producto`,
      `Producto`.`Precio_Unitario` AS `Precio_Unitario`,
      `Producto`.`Descripción` AS `Descripción`,
      `Producto`.`Peso_embarque` AS `Peso_embarque`
    FROM
      (`Cliente` `Cliente`
    INNER JOIN
      `Pedidos` `Pedidos`
          ON `Cliente`.`ID_Cliente` = `Pedidos`.`ID_Cliente`
      )
INNER JOIN 
    `Producto` `Producto`
      ON `Pedidos`.`ID_Producto` = `Producto`.`ID_Producto`
WHERE
    (
      `Cliente`.`Región` = 'BC'
      OR `Cliente`.`Región` = 'WA'
    )
  ) END_QUERY

Importación de datos utilizando un DSN (nombre de origen de datos) de Windows

Necesita importar datos desde un archivo de Microsoft Excel. Para hacerlo, utiliza un DSN de Windows para conectarse a MS Excel y completa la importación:

ACCESSDATA32 ODBC "Dsn" NAME "Archivos Excel" TO "Corte_trans_abril_15.FIL" CHARMAX 50 MEMOMAX 100 SOURCE
  ( dbq=C:\Usuarios\lachlan_murray\Documentos\ACL Data\Archivos de datos de muestra\Trans_abril.xls;defaultdir=C:\Usuarios\lachlan_murray\Documentos\ACL Data\Archivos de datos de muestra;driverid=1046;maxbuffersize=2048;pagetimeout=5)
  SQL_QUERY(
    SELECT
       `Trans_abr_`.`CARDNUM` AS `CARDNUM`,
      `Trans_abr_`.`AMOUNT` AS `AMOUNT`,
      `Trans_abr_`.`TRANS_DATE` AS `TRANS_DATE`,
      `Trans_abr_`.`CODES` AS `CODES`,
      `Trans_abr_`.`CUSTNO` AS `CUSTNO`,
      `Trans_Apr_`.`DESCRIPTION` AS `DESCRIPTION`
    FROM
      `Trans_abr$` `Trans_abr_`
    WHERE
      (
          `Trans_abr_`.`TRANS_DATE` <= {ts '2003-04-15 00:00:00'}
      )
  ) END_QUERY

Nota

Si desea obtener más información sobre la forma en la que funciona este comando, consulte Guía de ayuda.

Creación de las declaraciones de configuración de conexión de ODBC e importación de SQL

Las declaraciones de configuración de conexión de ODBC e importación de SQL con frecuencia son extensas, como se muestra en los siguientes ejemplos.

La manera más sencilla de crear estas partes del comando ACCESSDATA consiste en utilizar primero la ventana Data Access en Analytics para conectarse al origen de datos de destino e importar los datos. A continuación, puede copiar todo el comando ACCESSDATA del registro, incluida la declaración de configuración de conexión e importación, y personalizar el comando como resulte necesario.

Valor de contraseña suprimido

Cuando utiliza la ventana Data Access en Analytics para ejecutar el comando ACCESSDATA y proporciona una contraseña, el valor de la contraseña no se escribe en el log. En su lugar, se sustituye el parámetro PROMPT_PASSWORD.

Archivos de log de ACCESSDATA

Dos archivos de log registran las transacciones asociadas con el comando ACCESSDATA y se pueden utilizar para resolver problemas si falla una conexión de datos:

  • ServerDataAccess.log registra todas las actividades y los errores antes de importar los datos

    Ubicación: C:\Usuarios\<cuenta de usuario>\AppData\Local\ACL\ACL para Windows\Data Access\ServerDataAccess.log

    Nota

    El "Server" en ServerDataAccess.log hace referencia al componente de acceso a los datos de Analytics que se ejecuta de forma local en la computadora en la cual está instalado Analytics.

  • DataAccess.log registra información acerca de la operación de importación y el proyecto de Analytics al que usted está importando datos

    Ubicación: ..\<carpeta del proyecto de Analytics>\DataAccess.log

Comparación de los datos cifrados con hash con ACCESSDATA con los datos cifrados con hash con la función HASH( ) de ACLScript

Si bien no puede leer los valores sin procesar de los datos a los que se les aplicó el cifrado hash, continúan siendo útiles al combinar y analizar datos.

Si desea comparar los valores que se cifran con hash con ACCESSDATA durante la importación con los valores que se cifran con la función HASH( ) de ACLScript, debe convertir los campos numéricos o de fechahora de Analytics en valores de caracteres y quitar todos los espacios al principio y al final antes de cifrar los datos con hash.

Los campos de fechahora deben usar los siguientes formatos cuando se convierten en caracteres:

  • Fechahora "YYYY-MM-DD HH:MM:SS"
  • Fecha "YYYY-MM-DD"
  • Hora "HH:MM:SS"

El siguiente ejemplo utiliza las funciones STRING( ) y ALLTRIM( ) para convertir un campo numérico de número de tarjeta de crédito en datos de caracteres antes de cifrar el valor con hash por medio de la función HASH( ) de ACLScript:

COMMENT Se usó la función de ACL HASH después de importar los datos
HASH(ALLTRIM(STRING(CC_No; 16)); "QZ3x7")

Una vez que cifra los valores de Analytics con hash, puede compararlos con los valores cifrados con hash como parte de la importación del comando ACCESSDATA.