Archivar sus archivos de entrada en Data Services

La mayoría de sus procesos de ETL probablemente dependen de bases de datos. Pero a veces es necesario integrar archivos planos o documentos Excel en su extracción. Y usted puede tener la obligación de mantener estos archivos almacenados en algún lugar, por ejemplo, debido a las políticas de la empresa o auditoría. Lamentablemente Data Services carece de capacidades de explorador de archivos. No puede renombrar, copiar o eliminar un archivo directamente en su disco duro local. Entonces, ¿qué opciones quedan para usted para administrar los archivos que desea archivar?

Uso de nombres de archivos dinámicos

La solución más fácil es utilizar nombres de archivos dinámicos - con esto quiero decir usando un archivo de origen cuyo nombre variará con el tiempo. Por ejemplo "2011-01 .xls", "2011-02 .xls", etc. En este caso específico no hay necesidad de seguir pasos adicionales para archivar sus archivos: simplemente déjelos donde están. La pregunta sigue siendo: ¿cómo gestionar un nombre de archivo dinámico en Data Services? La respuesta es bastante simple: use una variable para su nombre de archivo (vea la imagen abajo).

Recuerde que tiene que declarar la variable en la ventana "Variables and Parameters" (ver imagen abajo), así como inicializarla en un script para que coincida con su nombre de archivo real.

Me gustaría compartir con usted un consejo interesante sobre el uso de un nombre de variable para un nombre de archivo: si desea crear un archivo de entrada en Data Services basado en un archivo real, primero seleccione el mismo documento que desea archivar y Importar su esquema (nombres de columnas), después de lo cual reemplazar el nombre del archivo con su variable. Recuerde que puede comprobar de antemano si un archivo ya existe utilizando la función "file_exists ()" en una secuencia de comandos de Data Services.

Uso de nombres de archivo fijos

Por otra parte, también puede encontrarse en una situación en la que no puede obligar a los usuarios (o los programas) a dar a los archivos de entrada diferentes nombres. Entonces, ¿cómo manejas una situación en la que cada día / mes / trimestre y cada archivo 'Data.xls' se crea dentro de un directorio?

Idealmente, sería conducido a extraer los datos del archivo, ya partir de ahí renombrar el archivo con el día / mes / trimestre actual, y posiblemente moverlo a una carpeta de archivo. Pero como ya he mencionado, no hay función incorporada en los servicios de datos que le permite cambiar el nombre de un archivo. Esta es la razón por la que tenemos que crear un pequeño script ejecutable (un archivo por lotes .bat) que recuerde a otro script desde Data Services.

La secuencia de comandos de Servicios de datos debería tener el siguiente aspecto:

Exec ('C: Source_file_directoryarchiving.bat', $ G_new_file_name, 0);

El primer parámetro es una ruta de cadena al archivo ejecutable, el segundo parámetro es una cadena que representa una lista de parámetros que se enviarán al ejecutable (aquí se utiliza una variable para enviar el nuevo nombre de archivo), y el tercer parámetro es Un indicador que determina la forma en que los Servicios de Datos actuarán en caso de error (puede encontrar los diferentes valores en la Guía de Referencia de Servicios de Datos según su versión).

¿Qué pondremos en el archivo ejecutable? Una línea simple hará:

Mover "C: Directorio_de_archivo_de_fuente_datos.xls" "C: Archivar_directorio% 1 .xls"

Como ya habrás adivinado, el '% 1' es un marcador de posición para el primer parámetro transmitido (aquí $ G_new_file_name).

Si tiene problemas de autorización (normalmente debido a un error 50306), quizás desee comprobar el usuario de su servicio DS y si tiene derechos sobre las carpetas accedidas. También puede intentar el siguiente truco: reemplace "C:" con \ server_nameC $.

Como hemos visto aquí, la gestión de archivos de entrada archivados es posible cualquiera que sea la configuración de su nombre de archivo (fijo o dinámico). Si tiene preguntas a este respecto, o si desea compartir su experiencia o sugerencias, deje un comentario.

EspañolEnglish