OSDC 2011 - Des ETL pour drupal

2,953 views
2,855 views

Published on

Drupal devient une solution de gestion de contenu de plus en plus populaire, et les développeurs sont souvent confrontés à des problématiques d'import ou synchronisation massifs de contenu. Le schéma très hétérogène de stockage des données par les modules Drupal fait qu'il n'est souvent pas souhaitable d'utiliser un ETL "classique" lors de ces imports mais bien de partir sur les APIs propres aux composants du CMS. Plusieurs modules existent, chacun avec son approche, ses avantages et ses inconvénients.

Dans cette présentation, nous vous présenterons les différentes méthodes utilisées au quotidien par les équipes d'Alter Way, notamment à travers les deux modules les plus complets : Feeds et le framework Migrate.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,953
On SlideShare
0
From Embeds
0
Number of Embeds
1,143
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OSDC 2011 - Des ETL pour drupal

  1. 1. AlterWayopérateur de services open source Des ETL pour Drupal Open World Forum / Open Source Developer’s Conference 24 sept 2011 Rodolfo Ripado
  2. 2. Qui suis-je ? Rodolfo Ripado • Lead Développeur Drupal chez AlterWay Solutions • Membre enthousiaste de la communauté Drupal • (Co)auteur de 2 modules Drupal • Je cuisine régulièrement des données diverses à la sauce Drupal. • Contact : rodolfo.ripado@alterway.frOWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  3. 3. Pourquoi des ETL pour Drupal ?• Le CMS Drupal est de plus en plus utilisé pour la refonte de gros sites d’entreprise.• Les développeurs ont souvent à faire à des imports complexes de contenu.• Un site moyen atteint facilement 150-200 tables.• Drupal est modulaire : les schémas des différents modules sont très hétérogènes et interdépendants.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  4. 4. T.O.C.• Qu’attendons-nous d’un ETL pour Drupal ?• Les ETL pour Drupal• Le module Feeds• Le module Migrate• Conclusion : quel outil pour vos besoins ?OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  5. 5. Qu’attendons-nous d’un ETL Drupal ?Les essentiels.• Extract : • support des formats habituels (SQLs, XMLs, CSV).• Transform : • accès simple aux données • possibilité de les combiner, re-encoder, etc ...• Load : • support des objets du core de Drupal (nodes, taxonomy terms) • support des différents types de champs et propriétés des objets • enregistrement en utilisant les APIs Drupal • node_save(), taxonomy_term_save(), etc ...OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  6. 6. Qu’attendons-nous d’un ETL Drupal ?Les bonus.• Bonus habituels d’un bon module Drupal • Développeurs actifs et réactifs. • Richesse de l’éco-système (plugins, patches, etc). • Code de qualité, APIs claires. • Documentation abondante.• Fonctionnalités secondaires importantes : • Rollback, Mise à jour de contenus existants. • Support de la Batch API, des imports via le Cron et/ou via Drush. • Configuration via l’interface graphique.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  7. 7. AlterWayopérateur de services open source Feeds
  8. 8. Feeds : généralités• Au début il y avait FeedAPI • Moteur d’agrégation de contenus RSS, ATOM, CSV, iCal. • Développé rapidement pour les besoins de la distribution Managing News. • Entièrement refait à neuf autour de 2009.• Feeds : framework d’import de contenu dans Drupal • Très flexible (une API simple et bien documentée) • Configuration via GUI. • Intégration à Features. • Nombreux goodies ... • Maintenu par des “Drupal Rock Stars” : @alex_b, @davereed.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  9. 9. AlterWayopérateur de services open source Démo de Feeds
  10. 10. Feeds : architecture• Un Feeds Importer est un objet avec 3 composantes : • Fetcher : extrait les données d’une source et les convertit en string • Parser : analyse la string et construit un tableau PHP • Avec support de valeurs multiples • Processor • Construit/récupère un objet Drupal (node, terme, user). • Remplit l’objet avec des valeurs par défaut ou les valeurs importées. • Enregistre l’objet avec l’API Drupal.• Gestion des ressources machine. • Intégration à la Batch API : import par étapes. • Possibilité d’importer via le Cron (via job_scheduler).OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  11. 11. Feeds : API• Ajout de composants via la plugin API de ctools.• Les hooks : • hook_feeds_after_parse(FeedsSource $source, FeedsParserResult $result) • cf. Feeds Tamper (http://drupal.org/project/feeds_tamper) • hook_feeds_after_import(FeedsSource $source) • hook_feeds_after_clear(FeedsSource $source)• Les alter : • hook_feeds_processor_targets_alter(&$targets, $entity_type, $bundle_name) • Ajouter de nouveaux champs à feeds, changer les existants.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  12. 12. Feeds : les + et les -• Les + : • Facilement configurable, intégration facile des nouvelles classes à l’interface grafique. • Ecosystème riche et actif : • Parseurs XPath, LDAP, RSS • Mappers pour une grande partie des champs disponibles • De nombreux addons pour affiner son import sans coder. • Un système de log de messages intégré.• Les - : • Le code n’est pas toujours bien commenté. • Utilisation de la Batch API : peu performant lors de gros imports. • Gestion des ressources très limitée, aucune gestion de la mémoire.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  13. 13. AlterWayopérateur de services open source Migrate
  14. 14. Migrate : généralités• Développé par Cyrve, start-up américaine spécialisée dans les problématiques d’imports massifs (maintenant Acquia) : • The Examiner.com • The economist• Moshe Weitzman : Mr Drush.• Migrate : un outil robuste pour dévelopeurs et chefs de projet.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  15. 15. AlterWayopérateur de services open source Démo de Migrate
  16. 16. Migrate : architecture• Tout se passe dans les classes Migration : • Définition de l’équipe technique, de la source et de la destination. • Ajout des mappings des champs : • Option Callback : permet de filter les valeurs avant l’import. • Option SourceMigration : permet de retrouver les identifiants d’objets précédemment importés. • Gestion de valeurs multiples.• Modèle de migrations successives et interdépendantes.• Gestion dynamique des ressources machine : • Intégration à la Batch API et surtout à Drush. • Calcul des timeouts et des limites de mémoire à la volée.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  17. 17. Migrate : API• La customisation se fait par l’implémentation de classes dérivées de BaseMigration, MigrateSource, MigrateDestination, MigrateFieldHandler, ...• Quelques méthodes : • sourceClass->prepareRow($row) • destinationClass->prepare($entity, $row) • destinationClass->complete($entity, $row) • et beaucoup beaucoup plus ...• Support natif de mises à jour de contenu, des valeurs multiples, node/user references.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  18. 18. Migrate : les + et les -• Les + : • Prise en charge native de structures de données complexes. • Très performant grâce à sa gestion des ressources à la volée. • Intégration à Drush (migrations/mises à jour “scriptables”). • Interface grafique orientée reporting. • De nombreux exemples disponibles, prise en main aisée pour le dévelopeur PHP moyen.• Les - : • Il faut coder ... • Relativement jeune, donc écosystème un peu limité. • cf. migrate_extras (http://drupal.org/project/migrate_extras)OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  19. 19. Conclusion• D’autres modules spécialisés dans l’import d’utilisateurs Drupal existent : user_import, user import framework.• Feeds et Migrate sont conçus pour des migrations, imports, synchronisation de données complexes et d’une grande variété de sources.• Feeds : • (Presque) sans coder, on peu gérer des cas très variés. • Spécialisé dans l’agrégation de flux XML/RSS, etc ...• Migrate : • Un must pour des imports complexes et/ou massifs qui nécessitent du code spécifique.OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal
  20. 20. Me joindre• Mail : rodolfo.ripado@alterway.fr ggaspaio@gmail.com• Drupal.Org : gaspaio• MERCI !OWF/OSDC 2011 - 24 sept 2011 ALTER WAY - Des ETL avec Drupal

×