Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
12 KiB
| layout | title | parent |
|---|---|---|
| default | Especificación Técnica del Servicio de Diagnóstico de Datos Estructurados | Spanish (Beta) |
Especificación Técnica del Servicio de Diagnóstico de Datos Estructurados
Beta Translation: This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
Descripción General
Esta especificación describe un nuevo servicio invocable para diagnosticar y analizar datos estructurados dentro de TrustGraph. El servicio extrae la funcionalidad de la herramienta de línea de comandos tg-load-structured-data existente y la expone como un servicio de solicitud/respuesta, lo que permite el acceso programático a las capacidades de detección de tipos de datos y generación de descriptores.
El servicio admite tres operaciones principales:
- Detección de Tipo de Datos: Analiza una muestra de datos para determinar su formato (CSV, JSON o XML).
- Generación de Descriptores: Genera un descriptor de datos estructurados de TrustGraph para una muestra de datos y tipo dados.
- Diagnóstico Combinado: Realiza la detección de tipo y la generación de descriptores en secuencia.
Objetivos
Modularización del Análisis de Datos: Extrae la lógica de diagnóstico de datos de la CLI en componentes de servicio reutilizables. Habilitar el Acceso Programático: Proporciona acceso basado en API a las capacidades de análisis de datos. Admitir Múltiples Formatos de Datos: Maneja los formatos de datos CSV, JSON y XML de manera consistente. Generar Descriptores Precisos: Produce descriptores de datos estructurados que mapean con precisión los datos de origen a los esquemas de TrustGraph. Mantener la Compatibilidad Inversa: Garantiza que la funcionalidad existente de la CLI continúe funcionando. Habilitar la Composición de Servicios: Permite que otros servicios aprovechen las capacidades de diagnóstico de datos. Mejorar la Capacidad de Pruebas: Separa la lógica de negocio de la interfaz de la CLI para una mejor prueba. Admitir el Análisis por Flujo: Permite el análisis de muestras de datos sin cargar archivos completos.
Antecedentes
Actualmente, el comando tg-load-structured-data proporciona una funcionalidad completa para analizar datos estructurados y generar descriptores. Sin embargo, esta funcionalidad está estrechamente acoplada a la interfaz de la CLI, lo que limita su reutilización.
Las limitaciones actuales incluyen: Lógica de diagnóstico de datos incrustada en el código de la CLI. Sin acceso programático a la detección de tipos y la generación de descriptores. Difícil de integrar las capacidades de diagnóstico en otros servicios. Capacidad limitada para componer flujos de trabajo de análisis de datos.
Esta especificación aborda estas deficiencias mediante la creación de un servicio dedicado para el diagnóstico de datos estructurados. Al exponer estas capacidades como un servicio, TrustGraph puede: Permitir que otros servicios analicen datos de forma programática. Admitir canalizaciones de procesamiento de datos más complejas. Facilitar la integración con sistemas externos. Mejorar la mantenibilidad mediante la separación de responsabilidades.
Diseño Técnico
Arquitectura
El servicio de diagnóstico de datos estructurados requiere los siguientes componentes técnicos:
-
Procesador del Servicio de Diagnóstico Maneja las solicitudes de diagnóstico entrantes. Orquesta la detección de tipos y la generación de descriptores. Devuelve respuestas estructuradas con los resultados del diagnóstico.
Módulo:
trustgraph-flow/trustgraph/diagnosis/structured_data/service.py -
Detector de Tipo de Datos Utiliza la detección algorítmica para identificar el formato de datos (CSV, JSON, XML). Analiza la estructura de datos, los delimitadores y los patrones de sintaxis. Devuelve el formato detectado y las puntuaciones de confianza.
Módulo:
trustgraph-flow/trustgraph/diagnosis/structured_data/type_detector.py -
Generador de Descriptores Utiliza el servicio de prompts para generar descriptores. Invoca prompts específicos del formato (diagnose-csv, diagnose-json, diagnose-xml). Mapea los campos de datos a los campos del esquema de TrustGraph a través de las respuestas del prompt.
Módulo:
trustgraph-flow/trustgraph/diagnosis/structured_data/descriptor_generator.py
Modelos de Datos
StructuredDataDiagnosisRequest
Mensaje de solicitud para operaciones de diagnóstico de datos estructurados:
class StructuredDataDiagnosisRequest:
operation: str # "detect-type", "generate-descriptor", or "diagnose"
sample: str # Data sample to analyze (text content)
type: Optional[str] # Data type (csv, json, xml) - required for generate-descriptor
schema_name: Optional[str] # Target schema name for descriptor generation
options: Dict[str, Any] # Additional options (e.g., delimiter for CSV)
RespuestaDiagnósticoDatosEstructurados
Mensaje de respuesta que contiene los resultados del diagnóstico:
class StructuredDataDiagnosisResponse:
operation: str # The operation that was performed
detected_type: Optional[str] # Detected data type (for detect-type/diagnose)
confidence: Optional[float] # Confidence score for type detection
descriptor: Optional[Dict] # Generated descriptor (for generate-descriptor/diagnose)
error: Optional[str] # Error message if operation failed
metadata: Dict[str, Any] # Additional metadata (e.g., field count, sample records)
Estructura del descriptor
El descriptor generado sigue el formato de descriptor de datos estructurados existente:
{
"format": {
"type": "csv",
"encoding": "utf-8",
"options": {
"delimiter": ",",
"has_header": true
}
},
"mappings": [
{
"source_field": "customer_id",
"target_field": "id",
"transforms": [
{"type": "trim"}
]
}
],
"output": {
"schema_name": "customer",
"options": {
"batch_size": 1000,
"confidence": 0.9
}
}
}
Interfaz de Servicio
El servicio expondrá las siguientes operaciones a través del patrón de solicitud/respuesta:
-
Operación de Detección de Tipo Entrada: Muestra de datos Procesamiento: Analizar la estructura de datos utilizando la detección algorítmica Salida: Tipo detectado con una puntuación de confianza
-
Operación de Generación de Descriptores Entrada: Muestra de datos, tipo, nombre del esquema de destino Procesamiento: Llamar al servicio de solicitud con el ID de solicitud específico del formato (diagnóstico-csv, diagnóstico-json o diagnóstico-xml) Pasar la muestra de datos y los esquemas disponibles a la solicitud Recibir el descriptor generado de la respuesta de la solicitud Salida: Descriptor de datos estructurados
-
Operación de Diagnóstico Combinado Entrada: Muestra de datos, nombre de esquema opcional Procesamiento: Utilizar la detección algorítmica para identificar el formato primero Seleccionar la solicitud específica del formato basada en el tipo detectado Llamar al servicio de solicitud para generar el descriptor Salida: Tanto el tipo detectado como el descriptor
Detalles de Implementación
El servicio seguirá las convenciones del servicio TrustGraph:
-
Registro de Servicio Registrarse como tipo de servicio
structured-diagUtilizar temas estándar de solicitud/respuesta Implementar la clase base FlowProcessor Registrar PromptClientSpec para la interacción con el servicio de solicitud -
Gestión de la Configuración Acceder a las configuraciones del esquema a través del servicio de configuración Almacenar en caché los esquemas para mejorar el rendimiento Manejar las actualizaciones de configuración de forma dinámica
-
Integración de Solicitudes Utilizar la infraestructura existente del servicio de solicitud Llamar al servicio de solicitud con los ID de solicitud específicos del formato:
diagnose-csv: Para el análisis de datos CSVdiagnose-json: Para el análisis de datos JSONdiagnose-xml: Para el análisis de datos XML Las solicitudes están configuradas en la configuración de la solicitud, no codificadas de forma rígida en el servicio Pasar los esquemas y las muestras de datos como variables de la solicitud Analizar las respuestas de la solicitud para extraer los descriptores -
Manejo de Errores Validar las muestras de datos de entrada Proporcionar mensajes de error descriptivos Manejar los datos incorrectos de forma elegante Manejar las fallas del servicio de solicitud
-
Muestreo de Datos Procesar tamaños de muestra configurables Manejar los registros incompletos de forma adecuada Mantener la coherencia del muestreo
Integración de la API
El servicio se integrará con las API existentes de TrustGraph:
Componentes Modificados:
tg-load-structured-data CLI: Refactorizado para utilizar el nuevo servicio para las operaciones de diagnóstico
Flow API: Extendido para admitir solicitudes de diagnóstico de datos estructurados
Nuevos Puntos Finales del Servicio:
/api/v1/flow/{flow}/diagnose/structured-data: Punto final de WebSocket para solicitudes de diagnóstico
/api/v1/diagnose/structured-data: Punto final REST para el diagnóstico sincrónico
Flujo de Mensajes
Client → Gateway → Structured Diag Service → Config Service (for schemas)
↓
Type Detector (algorithmic)
↓
Prompt Service (diagnose-csv/json/xml)
↓
Descriptor Generator (parses prompt response)
↓
Client ← Gateway ← Structured Diag Service (response)
Consideraciones de seguridad
Validación de entrada para prevenir ataques de inyección Límites de tamaño en muestras de datos para prevenir DoS Sanitización de descriptores generados Control de acceso a través de la autenticación TrustGraph existente
Consideraciones de rendimiento
Almacenar en caché las definiciones de esquema para reducir las llamadas al servicio de configuración Limitar los tamaños de muestra para mantener un rendimiento receptivo Utilizar procesamiento en streaming para grandes muestras de datos Implementar mecanismos de tiempo de espera para análisis de larga duración
Estrategia de pruebas
-
Pruebas unitarias Detección de tipo para varios formatos de datos Precisión de la generación de descriptores Escenarios de manejo de errores
-
Pruebas de integración Flujo de solicitud/respuesta del servicio Recuperación y almacenamiento en caché del esquema Integración de la CLI
-
Pruebas de rendimiento Procesamiento de grandes muestras Manejo de solicitudes concurrentes Uso de memoria bajo carga
Plan de migración
- Fase 1: Implementar el servicio con la funcionalidad principal
- Fase 2: Refactorizar la CLI para que utilice el servicio (mantener la compatibilidad con versiones anteriores)
- Fase 3: Agregar puntos finales de la API REST
- Fase 4: Descartar la lógica integrada de la CLI (con un período de aviso)
Cronograma
Semana 1-2: Implementar el servicio principal y la detección de tipo Semana 3-4: Agregar la generación de descriptores y la integración Semana 5: Pruebas y documentación Semana 6: Refactorización de la CLI y migración
Preguntas abiertas
¿Debería el servicio admitir formatos de datos adicionales (por ejemplo, Parquet, Avro)? ¿Cuál debería ser el tamaño máximo de la muestra para el análisis? ¿Deben almacenarse en caché los resultados del diagnóstico para solicitudes repetidas? ¿Cómo debe manejar el servicio los escenarios de esquemas múltiples? ¿Deben los ID de las indicaciones ser parámetros configurables para el servicio?
Referencias
Especificación del descriptor de datos estructurados
Documentación de carga de datos estructurados
tg-load-structured-data implementación: trustgraph-cli/trustgraph/cli/load_structured_data.py