Mi objetivo es producir un método rápido, confiable y automatizado para acceder a datos de solo lectura contenidos en varias fuentes de datos de archivos planos muy grandes ( CSV , ancho fijo y documentos XML) usando Drupal 7 que se puede consultar usando el Views 3 módulo. Preferiría usar módulos ya disponibles, pero construir un módulo personalizado también es una opción.
Para ayudar a descartar módulos y métodos no adecuados para la tarea, aquí están las estadísticas de los archivos con los que estoy trabajando:
- Importación anual: archivo CSV de 8,500,000 líneas . (Purgado y recargado anualmente. Tiene clave primaria).
- Importación semanal: archivo de ancho fijo de 350,000 líneas. (Purgado y recargado semanalmente. Sin clave primaria ).
- Importación por hora: archivo CSV de 3.400 líneas . (Me gustaría actualizar y sincronizar con la mayor frecuencia posible, pero no más de cada 20 minutos. Tiene clave principal)
- Importación diaria: archivo XML de 200 elementos. (Purgado y recargado diariamente. Tiene clave primaria)
La conversión entre los tres formatos no es un problema y se puede hacer si mejora el rendimiento de importación o permite que haya mejores herramientas disponibles. ( AWK para Fixed Width a CSV , etc.) La automatización de recuperación y conversión es fácil a través de los scripts cron y sh , pero aún necesita automatizar la integración de Drupal 7. El uso de tablas personalizadas también es posible siempre que las vistas puedan hacer referencia a los datos mediante relaciones.
¿Cuál sería la mejor práctica para lograr este tipo de integración de datos con Drupal 7? Además, ¿estoy omitiendo detalles importantes con respecto a los datos o lo que estoy tratando de lograr?
Aquí hay algunos proyectos que estoy buscando para encontrar una solución. Me gustaría ampliar esto para ayudar a otros a decidir qué ruta tomar al trabajar con importaciones de datos más grandes.
Importar datos a nodos:
- Feeds (actualmente Alpha para D7)
Los feeds importarán los datos de manera confiable. La velocidad es razonable para las fuentes de datos más pequeñas, pero es demasiado lenta para las tablas de más de 300k.
Automatización disponible usando cron y Job Scheduler (Actualmente Alpha para D7).
No tener un índice o clave única disponible en los datos de origen hace que esto sea difícil de usar. Es más rápido que los feeds, pero aún así es lento para importar tablas muy grandes.
La automatización está disponible a través de drush y cron.
Tablas personalizadas en lugar de nodos
- Módulo de datos (actualmente Alpha para D7)
El módulo de datos parece muy prometedor, pero en este momento es muy defectuoso para D7. Los requisitos de automatización y velocidad de importación se cumplirían fácilmente utilizando datos, pero falta confiabilidad. La integración de vistas (el enlace es para D6) parece muy prometedora.
- Asistente de tabla (no disponible para D7)
Se agregó esto como referencia. No hay un candidato D7 en este momento, pero podría servir como punto de partida para un módulo personalizado.
- Esquema de vistas (Abandonado, solo D6)
Se agregó esto como referencia. Esto parece haber sido absorbido por Table Wizard en Drupal 6. Nuevamente, agregado solo como referencia.
- Importador (RC2 para D7)
Parece requerir el Asistente de tabla (solo D6) para la integración de Vistas . Se agregó como referencia, pero no cumple con el requisito de Vistas.
@MPD: se agregaron "Tablas personalizadas" como una posible solución y módulos ampliados. Gracias por esta adición