Mon objectif est de produire une méthode rapide, fiable et automatisée pour accéder aux données en lecture seule contenues dans plusieurs très grandes sources de données de fichiers plats ( CSV , Fixed Width et XML docs) en utilisant Drupal 7 qui peut être interrogé à l'aide de Views 3 module. Je préférerais utiliser des modules déjà disponibles, mais la construction d'un module personnalisé est également une option.
Pour vous aider à exclure les modules et méthodes non adaptés à la tâche, voici les statistiques sur les fichiers avec lesquels je travaille:
- Importation annuelle: fichier CSV de 8 500 000 lignes . (Purgé et rechargé chaque année. Dispose d'une clé primaire.)
- Importation hebdomadaire: fichier à largeur fixe de 350 000 lignes. (Purgé et rechargé chaque semaine. Pas de clé primaire .)
- Importation horaire: fichier CSV de 3 400 lignes . (Voudrait mettre à jour et synchroniser aussi souvent que possible, mais pas plus que toutes les 20 minutes. Dispose d'une clé primaire)
- Importation quotidienne: fichier XML de 200 éléments. (Purgé et rechargé quotidiennement. Dispose d'une clé primaire)
La conversion entre les trois formats n'est pas un problème et peut être effectuée si elle améliore les performances d'importation ou permet de mettre à disposition de meilleurs outils. ( AWK pour Fixed Width en CSV , etc.) L'automatisation de la récupération et de la conversion est facile via les scripts cron et sh , mais doit encore automatiser l'intégration de Drupal 7. L'utilisation de tableaux personnalisés est également possible tant que vews peut référencer les données à l'aide de relations.
Quelle serait la meilleure pratique pour réaliser ce type d'intégration de données avec Drupal 7? De plus, est-ce que je laisse de côté des détails importants concernant les données ou ce que j'essaie d'accomplir?
Voici quelques projets que j'examine actuellement pour trouver une solution. Je voudrais développer cela pour aider les autres à décider de la route à suivre lors de l'utilisation d'importations de données plus importantes.
Importation de données dans des nœuds:
- Flux (actuellement Alpha pour D7)
Les flux importeront les données de manière fiable. La vitesse est raisonnable pour les petites sources de données, mais elle est trop lente pour les tables de 300k +.
Automatisation disponible avec cron et Job Scheduler (actuellement Alpha pour D7).
Le fait de ne pas avoir d'index ou de clé unique disponible dans les données source rend cette utilisation difficile. Il est plus rapide que les flux, mais reste lent à importer les très grandes tables.
L'automatisation est disponible via drush et cron.
Tables personnalisées au lieu de nœuds
- Module de données (actuellement Alpha pour D7)
Le module Data semble très prometteur, mais est très bogué pour D7 pour le moment. Les exigences d'automatisation et de vitesse d'importation seraient facilement satisfaites à l'aide des données, mais la fiabilité fait défaut. L' intégration des vues (lien est pour D6) semble très prometteuse.
- Assistant de table (non disponible pour D7)
Ajouté ceci pour référence. Il n'y a pas de candidat D7 à ce stade, mais pourrait servir de point de départ pour un module personnalisé.
- Schéma des vues (abandonné, D6 uniquement)
Ajouté ceci pour référence. Cela semble avoir été absorbé par l'assistant de table dans Drupal 6. Encore une fois, ajouté uniquement pour référence.
- Importateur (RC2 pour D7)
Semble nécessiter l' assistant de table (D6 uniquement) pour l' intégration des vues . Ajouté pour référence, mais ne répond pas aux exigences de vues.
@MPD - Ajout de "tables personnalisées" comme solution possible et extension des modules. Merci pour cet ajout.