Vidéo: Rob Thomas, IBM | Think 2018 2024
L'un des premiers cas d'utilisation de Hadoop dans l'entreprise était un moteur de transformation programmatique utilisé pour prétraiter les données liées à un entrepôt de données. Essentiellement, ce cas d'utilisation tire parti de la puissance de l'écosystème Hadoop pour manipuler et appliquer des transformations aux données avant il est chargé dans un entrepôt de données.
Bien que le moteur de transformation actuel soit nouveau (c'est Hadoop, donc les transformations et les flux de données sont codés dans Pig ou MapReduce, entre autres langues), l'approche elle-même a été utilisée avec les processus Extract, Transform, Load (ETL).
Pensez à l'évolution des bases de données OLTP et ROLAP. De nombreuses organisations disposant de bases de données opérationnelles ont également déployé des entrepôts de données. Comment les services informatiques peuvent-ils extraire les données de leurs bases de données opérationnelles dans leurs entrepôts de données? (Rappelez-vous que les données opérationnelles ne sont généralement pas sous une forme qui se prête à l'analyse.)
La réponse est ETL, et à mesure que l'utilisation et l'importance des entrepôts de données augmentaient, les étapes du processus devenaient bien comprises. développé. En outre, un certain nombre de sociétés de logiciels ont commencé à proposer des solutions ETL intéressantes afin que les départements informatiques puissent minimiser leur propre développement de code personnalisé.
Le processus ETL de base est assez simple: vous E extrayez des données d'une base de données opérationnelle, T les transformez en la forme dont vous avez besoin pour votre analyse et outils de reporting, puis vous L ajoutez ces données dans votre entrepôt de données.
Une variante commune à ETL est ELT - Extract, Load et Transform. Dans le processus ELT, vous effectuez des transformations (contrairement à ETL) après en chargeant les données dans le référentiel cible. Cette approche est souvent utilisée lorsque la transformation bénéficie grandement d'un moteur de traitement SQL très rapide sur des données structurées. (Les bases de données relationnelles peuvent ne pas exceller dans le traitement des données non structurées, mais elles effectuent un traitement très rapide des données structurées - devinez quoi? -.)
Si les données que vous transformez sont destinées à un entrepôt de données et que plusieurs de ces transformations peuvent être effectuées en SQL, vous pouvez choisir d'exécuter les transformations dans l'entrepôt de données lui-même. L'ELT est particulièrement attrayante si l'essentiel de vos compétences réside dans l'outillage basé sur SQL.
Hadoop étant désormais en mesure de traiter les requêtes SQL, les charges de travail ETL et ELT peuvent être hébergées sur Hadoop. La figure montre les services ETL ajoutés à l'architecture de référence.
Si vous avez déployé une zone d'atterrissage basée sur Hadoop, vous disposez de presque tout ce dont vous avez besoin pour utiliser Hadoop comme moteur de transformation.Vous envoyez déjà des données de vos systèmes opérationnels dans Hadoop à l'aide de Sqoop, qui couvre l'étape d'extraction. À ce stade, vous devrez implémenter votre logique de transformation dans les applications MapReduce ou Pig. Une fois les données transformées, vous pouvez charger les données dans l'entrepôt de données à l'aide de Sqoop.
L'utilisation de Hadoop comme moteur de transformation de données augmente également les possibilités. Si votre entrepôt de données ne modifie pas ses données (uniquement pour les rapports), vous pouvez simplement conserver les données que vous générez avec le processus de transformation. Dans ce modèle, les données ne circulent que de gauche à droite sur la figure, où les données sont extraites des bases de données opérationnelles, transformées dans la zone de réception, puis chargées dans l'entrepôt de données.
Avec toutes les données transformées déjà dans la zone d'atterrissage, il n'est pas nécessaire de le recopier dans Hadoop - à moins, bien sûr, que les données ne soient modifiées dans l'entrepôt.