mercados-pecuarios-apps-etl-configs
v0.1.0
Published
Aplicación de consola para la consulta de los documentos de configuración y opciones de los flujos de datos para las plataformas del proyecto Mercados Pecuarios
Downloads
7
Readme
ETL Configs App - Mercados Pecuarios
Aplicación de consola para la consulta de los documentos de configuración y opciones de los flujos de datos para las plataformas del proyecto Mercados Pecuarios.
Requisitos Previos
- Node.js (versión 14.0 o superior)
- npm (incluido con Node.js)
- Acceso a credenciales de Google Cloud (archivo de cuenta de servicio)
Instalación
1. Instalar Dependencias
Una vez clonado el repositorio, navega a la carpeta del proyecto e instala las dependencias:
npm install2. Vincular la Aplicación Globalmente
Para poder ejecutar el comando mp-dataflows desde cualquier ubicación, vincula la aplicación:
npm linkEste comando registra el ejecutable mp-dataflows en tu sistema, permitiéndote ejecutarlo desde cualquier terminal.
Configuración de Variables de Entorno
La aplicación requiere la configuración de variables de entorno para funcionar correctamente. Crea un archivo .env en la raíz del proyecto con las siguientes variables:
Variables Obligatorias
GOOGLE_APPLICATION_CREDENTIALS: Ruta al archivo JSON de credenciales de la cuenta de servicio de Google Cloud
GOOGLE_APPLICATION_CREDENTIALS=/ruta/al/gcloud-service-account.jsonNODE_ENV: Establece el entorno de ejecución
NODE_ENV=developmentGCLOUD_PROJECT: Identificador del proyecto en Google Cloud
GCLOUD_PROJECT=mercadospecuarios
Variables Opcionales
- ETL_CONFIGS_COLLECTION: Nombre de la colección en Firestore donde se almacenan las configuraciones (por defecto:
etl-dataflow-configurations)ETL_CONFIGS_COLLECTION=etl-dataflow-configurations
Ejemplo de Archivo .env
GOOGLE_APPLICATION_CREDENTIALS=./gcloud-service-account.json
NODE_ENV=development
GCLOUD_PROJECT=mercadospecuarios
ETL_CONFIGS_COLLECTION=etl-dataflow-configurationsEjecución de la Aplicación
Ejecutar Directamente
npm startO si has vinculado la aplicación globalmente:
mp-dataflows [comando] [opciones]Ver Versión y Ayuda
mp-dataflows --version
mp-dataflows --helpComandos Disponibles
1. get-all - Obtener Todas las Configuraciones
Obtiene una lista de todas las configuraciones de los flujos de datos registradas en la base de datos.
Sintaxis
mp-dataflows get-all [opciones]Opciones
-o, --offset <offset>: Desplazamiento de registros (número de página). Predeterminado:0-l, --limit <limit>: Límite de registros por consulta. Predeterminado:100-s, --save: Descarga y almacena los archivos de configuración localmente en formato JSON-p, --path <path>: Ruta de la carpeta donde se colocarán los archivos descargados. Predeterminado:files
Ejemplos
Listar las primeras 50 configuraciones:
mp-dataflows get-all --limit 50Obtener configuraciones con paginación (página 2, 100 registros por página):
mp-dataflows get-all --offset 100 --limit 100Descargar y guardar todas las configuraciones localmente en la carpeta exports:
mp-dataflows get-all --save --path exportsCombinar opciones:
mp-dataflows get-all --limit 50 --save --path ./config-files2. get - Obtener Configuración por ID
Obtiene la información completa de una configuración específica a partir de su identificador único.
Sintaxis
mp-dataflows get <id> [opciones]Argumentos
<id>: Identificador único en la base de datos de la configuración de flujo de datos (obligatorio)
Opciones
-s, --save: Descarga y almacena el archivo de configuración localmente en formato JSON-p, --path <path>: Ruta de la carpeta donde se colocará el archivo descargado. Predeterminado:files
Ejemplos
Obtener información de una configuración específica:
mp-dataflows get mi-flujo-datos-01Descargar y guardar la configuración localmente:
mp-dataflows get mi-flujo-datos-01 --saveGuardar en una carpeta personalizada:
mp-dataflows get mi-flujo-datos-01 --save --path ./mis-configuracionesEstructura de las Configuraciones
Las configuraciones de flujo de datos contienen la siguiente información:
- id: Identificador único de la configuración
- name: Nombre descriptivo del flujo de datos
- description: Descripción detallada del flujo
- ingest: Array de tareas de ingesta de datos
- worker: Tipo de worker que realiza la ingesta
- options: Opciones específicas para la ingesta
- description: Descripción de la tarea
- operations: Array de operaciones a realizar sobre los datos
- worker: Tipo de worker que realiza la operación
- options: Opciones específicas para la operación
- description: Descripción de la operación
Solución de Problemas
Error: GOOGLE_APPLICATION_CREDENTIALS no configurado
Solución: Verifica que la variable de entorno GOOGLE_APPLICATION_CREDENTIALS está correctamente establecida y que el archivo JSON de credenciales existe en la ruta especificada.
Error: No se puede conectar a Firestore
Solución:
- Verifica que las credenciales de Google Cloud son válidas
- Confirma que
GCLOUD_PROJECTestá correctamente configurado - Asegúrate de tener acceso a la base de datos Firestore del proyecto
Error: Colección no encontrada
Solución: Verifica que la variable ETL_CONFIGS_COLLECTION está correctamente establecida y que la colección existe en Firestore.
Comando no reconocido
Solución: Si después de ejecutar npm link el comando mp-dataflows no se reconoce, intenta:
- Ejecutar
npm linkde nuevo - Abrir una nueva terminal
- En Windows, es posible que necesites ejecutar la terminal como administrador
Dependencias Principales
- @gamariverib/mercados-pecuarios-libs-etl-dataflow: Librería principal del proyecto ETL
- @google-cloud/firestore: Cliente para interactuar con Firestore
- commander: Framework para construir aplicaciones CLI
- inquirer: Librería para crear prompts interactivos
- cli-table3: Generador de tablas para la terminal
- colors: Colorización de texto en la terminal
Licencia
Apache License 2.0
Autor
José Gamaliel Rivera Ibarra
Email: [email protected]
Sitio Web: https://gamarivera.dev
