Comando ACCESSDATA
Información de concepto
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.
Sintaxis
{ACCESSDATA64 | ACCESSDATA32} {CONNECTOR | ODBC {"Controlador"|"Dsn"|"Archivo"}} NAME valor <USER id_usuario> <PASSWORD núm | PROMPT_PASSWORD> <PASSWORD núm AS nombreclave_contraseña <...n>> 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
Parámetros
Nombre | Descripción |
---|---|
CONNECTOR | ODBC {"Controlador"|"Dsn"|"Archivo"} |
El tipo de conexión ODBC que desea realizar:
|
NAME valor |
El nombre del conector de datos de Analytics, el controlador de ODBC o el DSN. Por ejemplo:
|
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 única:
Si desea obtener más información, consulte Uso de definiciones de contraseña con ACCESSDATA. 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. 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. |
PASSWORD núm AS nombreclave_contraseña <...n> opcional |
Para orígenes de datos que requieren varias contraseñas, las definiciones de las contraseñas que se deben utilizar. nombreclave_contraseña debe replicar de manera exacta el nombre clave de la contraseña, tal como aparece en la configuración de la conexión especificada por SOURCE. Si desea obtener más información, consulte Uso de definiciones de contraseña con ACCESSDATA. |
TO nombre_tabla |
El lugar al que se deben enviar los resultados del comando:
|
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:
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. Nota No puede usar la sintaxis de ACLScript (comandos o funciones) en el cuerpo de la instrucción de importación de SQL. Debe usar únicamente la sintaxis SQL válida. |
Ejemplos
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 ( 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_Abr_`.`DESCRIPTION` AS `DESCRIPTION` FROM `Trans_Abr$` `Trans_Abr_` WHERE ( `Trans_Abr_`.`TRANS_DATE` <= {ts '2003-04-15 00:00:00'} ) ) END_QUERY
Observaciones
Si desea obtener más información sobre la forma en la que funciona este comando, consulte Trabajo con la ventana Data Access.
Uso de definiciones de contraseña con ACCESSDATA
Con frecuencia, los orígenes de datos a los que se conecta con el comando ACCESSDATA requieren de una autenticación con una contraseña, un token o algún otro valor de autenticación secreto. Para algunos orígenes de datos, se necesita más de un valor de autenticación.
Como parte del comando ACCESSDATA, puede proporcionar esta autenticación especificando una o más definiciones de contraseña. Una definición de contraseña no es la contraseña o el valor de autenticación en sí. Por el contrario, es similar a una variable de contraseña que almacena de forma segura una contraseña o un valor de autenticación proporcionado con antelación. Especificar una definición de contraseña con el comando ACCESSDATA le permite evitar mostrar la contraseña real en texto normal en la configuración de la conexión especificada por SOURCE.
Creación de una definición de contraseña
En un script de importación, primero debe crear una definición de contraseña, antes de que la definición pueda ser usada por el comando ACCESSDATA.
Si desea obtener información sobre la creación de una definición de contraseña para utilizarla en Analytics, consulte Comando PASSWORD.
Si desea obtener información sobre la creación de una definición de contraseña para utilizarla en Robots, Analytics Exchange o la ventana Aplicación de análisis, consulte Etiqueta PASSWORD.
Dos opciones para especificar definiciones de contraseña
Al especificar definiciones de contraseña con ACCESSDATA, tiene dos opciones:
- PASSWORD núm especifica la definición de una contraseña única para los orígenes de datos que requieren una contraseña única.
- PASSWORD núm AS nombreclave_contraseña se puede usar de forma reiterada para especificar varias definiciones de contraseña para orígenes de datos que requieren varios valores de autenticación
Nota
Puede usar las dos opciones de forma independiente o puede usarlas juntas.
Cómo funciona PASSWORD núm
Use el parámetro PASSWORD num si un origen de datos solo requiere una única contraseña.
En el siguiente ejemplo:
- El comando PASSWORD 1 le solicita al usuario que introduzca una contraseña y cree una definición de contraseña que almacene de forma segura la contraseña que introdujo.
- En el comando ACCESSDATA, el parámetro PASSWORD 1 hace referencia a la definición de la contraseña y pasa de forma segura el valor de contraseña almacenado en la configuración de conexión especificada por SOURCE ( auth_accesstoken=[$pwd] ).
PASSWORD 1 ACCESSDATA64 CONNECTOR NAME "Concur" PASSWORD 1 TO "Concur_data_import.FIL" CHARMAX 50 MEMOMAX 100 SOURCE( auth_accesstoken=[$pwd];auth_type=OAuth 2.0;enabledoublebuffer=1;host=www.concursolutions.com;useencryptedendpoints=1;userparam=all) SQL_QUERY( SELECT "List_Items"."Level_7_Code" AS "Level_7_Code", "List_Items"."Name" AS "Name", "List_Items"."Level_10_Code" AS "Level_10_Code", "List_Items"."Level_8_Code" AS "Level_8_Code", "List_Items"."URI" AS "URI", "List_Items"."Id" AS "Id", "List_Items"."Level_3_Code" AS "Level_3_Code", "List_Items"."List_Id" AS "List_Id", "List_Items"."Level_4_Code" AS "Level_4_Code", "List_Items"."Level_1_Code" AS "Level_1_Code", "List_Items"."Parent_Id" AS "Parent_Id", "List_Items"."Level_2_Code" AS "Level_2_Code", "List_Items"."Level_5_Code" AS "Level_5_Code", "List_Items"."Level_6_Code" AS "Level_6_Code", "List_Items"."Level_9_Code" AS "Level_9_Code" FROM "Concur"."List_Items" "List_Items" ) END_QUERY
Cómo funciona PASSWORD núm AS nombreclave_contraseña
Utilice el parámetro PASSWORD núm AS nombreclave_contraseña si un origen de datos requiere varias contraseñas o valores de autenticación.
En el siguiente ejemplo:
- En Robots o Analytics Exchange, las etiquetas //PASSWORD de un encabezado de estudio analítico crean cuatro parámetros de contraseña para los cuales el usuario debe introducir valores de autenticación. Los cuatro parámetros crean cuatro definiciones de contraseña que almacenan de manera segura los valores que se introducen.
- En el comando ACCESSDATA, los cuatro parámetros PASSWORD hacen referencia a las definiciones de contraseña y pasan de forma segura el valor de autenticación almacenado en la configuración de conexión especificada por SOURCE:
- oauthclientid=
- oauthclientsecret=
- oauthaccesstoken=
- OAuthAccessTokenSecret
Si desea obtener más información, consulte Configuración de ACCESSDATA para que funcione con varias definiciones de contraseña.
COMMENT //ANALYTIC TYPE IMPORT Importar datos de Twitter //PASSWORD 1 Introducir ID del cliente OAuth: //PASSWORD 1 Introducir Secreto del cliente OAuth: //PASSWORD 3 Introducir Token de acceso OAuth: //PASSWORD 3 Introducir Secreto del token de acceso OAuth: //RESULT TABLE Twitter_user_data END ACCESSDATA64 CONNECTOR NAME "Twitter" PASSWORD 1 AS oauthclientid PASSWORD 2 AS oauthclientsecret PASSWORD 3 AS oauthaccesstoken PASSWORD 4 AS oauthaccesstokensecret TO "Twitter_user_data.FIL" CHARMAX 50 MEMOMAX 100 SOURCE( oauthclientid=;oauthclientsecret=;oauthaccesstoken=;oauthaccesstokensecret=;readonly=true;drivertype=ACL Connector for Twitter;connectonopen=true;convertdatetimetogmt=true;limitkeysize=255;maptolongvarchar=-1;maptowvarchar=true;uppercaseidentifiers=false;supportenhancedsql=true;proxyauthscheme=BASIC;proxyautodetect=true;_persist_=encrypted-dp{AQA ... kX3E8yyh05HoG1rH4bm1lhwudUQ==}}) SQL_QUERY( SELECT "Users"."ID" AS "ID", "Users"."Name" AS "Name", "Users"."Screen_Name" AS "Screen_Name", "Users"."Location" AS "Location", "Users"."Profile_URL" AS "Profile_URL", "Users"."Lang" AS "Lang", "Users"."Created_At" AS "Created_At", "Users"."Friends_Count" AS "Friends_Count", "Users"."Followers_Count" AS "Followers_Count", "Users"."Favourites_Count" AS "Favourites_Count", "Users"."Statuses_Count" AS "Statuses_Count", "Users"."Time_Zone" AS "Time_Zone", "Users"."Following" AS "Following", "Users"."Contributors_Enabled" AS "Contributors_Enabled", "Users"."Follow_Request_Sent" AS "Follow_Request_Sent", "Users"."Listed_Count" AS "Listed_Count", "Users"."Description" AS "Description", "Users"."Default_Profile" AS "Default_Profile" FROM "Twitter"."Users" "Users" ) END_QUERY
Configuración de ACCESSDATA para que funcione con varias definiciones de contraseña
Para configurar el comando ACCESSDATA a fin de que funcione con varias definiciones de contraseña, usted inserta los parámetros PASSWORD en el comando y copia los nombres clave de contraseña desde el parámetro SOURCE a los parámetros PASSWORD.
- En Analytics, use la ventana Data Access para importar datos desde un origen de datos que requiere más de un valor de autenticación.
- Copie el comando ACCESSDATA desde el log en un script abierto en el Editor de scripts.
En general, solo se enmascara un valor de autenticación ( [$pwd] ) en el parámetro SOURCE y los demás valores aparecen en texto normal. Por ejemplo:
SOURCE( oauthclientid=cXQ ... dR4;oauthclientsecret=QUt ... beo;oauthaccesstoken=913 ... cPn;oauthaccesstokensecret=[$pwd]; ... )
- Elimine los valores de autenticación en texto normal del parámetro SOURCE y deje únicamente los nombres clave de las contraseñas y los signos de igual.
Por ejemplo:
SOURCE( oauthclientid=;oauthclientsecret=;oauthaccesstoken=;oauthaccesstokensecret=[$pwd]; ... )
Nota
Los valores de autenticación ahora deben ser proporcionados por los usuarios a través de las definiciones de contraseña creadas con el comando PASSWORD de la etiqueta de estudio analítico PASSWORD. Si desea obtener más información, consulte Creación de una definición de contraseña.
- Opcional. Elimine [$pwd] de un nombre clave de contraseña con un valor de autenticación enmascarado.
Con este nombre clave de contraseña usted puede usar cualquiera de los dos métodos para especificar una definición de contraseña en el comando ACCESSDATA. Si desea obtener más información, consulte Dos opciones para especificar definiciones de contraseña.
- Elimine el parámetro PROMPT_PASSWORD del comando ACCESSDATA.
- Inserte parámetros PASSWORD numerados en el lugar en el que eliminó PROMPT_PASSWORD y copie y pegue los nombres clave de contraseña desde el parámetro SOURCE a los parámetros PASSWORD.
Por ejemplo:
ACCESSDATA64 CONNECTOR NAME "Twitter" PASSWORD 1 AS oauthclientid PASSWORD 2 AS oauthclientsecret PASSWORD 3 AS oauthaccesstoken PASSWORD 4 AS oauthaccesstokensecret ... SOURCE( oauthclientid=;oauthclientsecret=;oauthaccesstoken=;oauthaccesstokensecret=; ... )
Importante
Los nombres clave de contraseña deben ser idénticos entre el parámetro SOURCE y los parámetros PASSWORD. Si no lo son, el comando ACCESSDATA no se puede completar correctamente.
- Si no quitó [$pwd] del nombre clave de contraseña con un valor de autenticación enmascarado, use el método para especificar una definición de contraseña única.
Por ejemplo:
ACCESSDATA64 CONNECTOR NAME "Twitter" PASSWORD 1 AS oauthclientid PASSWORD 2 AS oauthclientsecret PASSWORD 3 AS oauthaccesstoken PASSWORD 4 ... SOURCE( oauthclientid=;oauthclientsecret=;oauthaccesstoken=;oauthaccesstokensecret=[$pwd]; ... )
Resultado El comando ACCESSDATA , junto con las definiciones de contraseña creadas de manera independiente, ahora se puede usar en un script de importación sin mostrar los valores de autenticación en texto normal en la configuración de la conexión de SOURCE.
La autenticación multifactor no es adecuada
No es posible usar el comando ACCESSDATA para acceder a orígenes de datos que requieren autenticación multifactor (MFA) porque los scripts no pueden llevar a cabo la autenticación de esa manera. Si necesita acceder a datos protegidos con MFA, averigüe si su organización le permitirá usar una cuenta de trabajador genérica que no requiera MFA.
Actualizaciones del conector de datos
Cuando actualiza Analytics, el Agente de Robots o el Servidor de AX, debe comprobar los scripts que importan datos con uno de los conectores de datos de Analytics (comando ACCESSDATA).
Es posible que los cambios realizados por los proveedores de controladores ODBC o los orígenes de datos de terceros requieran la actualización de uno o más conectores de datos. Tal vez sea necesario actualizar las conexiones de datos en los scripts para continuar trabajando correctamente.
- Volver a ejecutar la importación La manera más sencilla de actualizar una conexión consiste en realizar una importación manualmente con la ventana Data Access en la versión actualizada de Analytics. Copie el comando ACCESSDATA desde el log y utilícelo para actualizar su script.
Nota
Antes de conectarse al origen de los datos y volver a ejecutar la importación, borre la caché del conector para limpiar los nombres del conjunto de tablas existentes.
En la ficha Conexiones existentes de la ventana Data Access, junto al nombre del conector, seleccione
> Borrar caché.
- Actualice las especificaciones del campo Es posible que también deba actualizar las especificaciones del campo en el cuerpo del script para alinearas con los cambios en el esquema de la tabla dentro del origen de datos o el controlador ODBC. Algunos cambios posibles son los nombres de campos, los tipos de datos de los campos y la longitud de los campos y los registros.
- Compruebe los resultados de los filtros También debe comprobar los resultados de los filtros que aplique como parte de la importación de datos. Confirme que el filtrado de la importación incluye y excluye correctamente los registros.
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.
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 "AAAA-MM-DD HH:MM:SS"
- Fecha "AAAA-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.