Tutoriel Sqoop : Qu'est-ce qu'Apache Sqoop ? Architecture et exemple

Quโ€™est-ce que SQOOP dans Hadoop ?

ApacheSQOOP (SQL-to-Hadoop) est un outil conรงu pour prendre en charge l'exportation et l'importation en masse de donnรฉes vers HDFS ร  partir de magasins de donnรฉes structurรฉs tels que des bases de donnรฉes relationnelles, des entrepรดts de donnรฉes d'entreprise et des systรจmes NoSQL. Il s'agit d'un outil de migration de donnรฉes basรฉ sur une architecture de connecteurs qui prend en charge les plugins pour fournir une connectivitรฉ aux nouveaux systรจmes externes.

Un exemple de cas d'utilisation de Hadoop Sqoop est une entreprise qui exรฉcute une importation Sqoop nocturne pour charger les donnรฉes de la journรฉe ร  partir d'un SGBDR transactionnel de production dans un Ruche entrepรดt de donnรฉes pour une analyse plus approfondie.

Ensuite, dans ce didacticiel Apache Sqoop, nous dรฉcouvrirons lโ€™architecture Apache Sqoop.

Squoop Architecture

Tout l'existant Systรจmes de gestion de bases de donnรฉes sont conรงus avec SQL norme ร  lโ€™esprit. Cependant, chaque SGBD diffรจre dans une certaine mesure en ce qui concerne le dialecte. Cette diffรฉrence pose donc des dรฉfis en matiรจre de transferts de donnรฉes entre les systรจmes. Les connecteurs Sqoop sont des composants qui aident ร  surmonter ces dรฉfis.

Le transfert de donnรฉes entre Sqoop Hadoop et le systรจme de stockage externe est rendu possible grรขce aux connecteurs de Sqoop.

Sqoop dispose de connecteurs pour travailler avec une gamme de bases de donnรฉes relationnelles populaires, notamment MySQL, PostgreSQL, Oracle, SQL Server et DB2. Chacun de ces connecteurs sait interagir avec son SGBD associรฉ. Il existe รฉgalement un connecteur JDBC gรฉnรฉrique pour se connecter ร  toute base de donnรฉes prenant en charge Javale protocole JDBC de. De plus, Sqoop Big data fournit des MySQL et PostgreSQL des connecteurs qui utilisent des API spรฉcifiques ร  la base de donnรฉes pour effectuer efficacement des transferts en masse.

Squoop Architecture
Squoop Architecture

En plus de cela, Sqoop dans le big data dispose de divers connecteurs tiers pour les magasins de donnรฉes, allant des entreprises aux entrepรดts de donnรฉes (y compris Netezza, Teradata et Oracle) vers les magasins NoSQL (tels que Couchbase). Cependant, ces connecteurs ne sont pas fournis avec le bundle Sqoop ; ceux-ci doivent รชtre tรฉlรฉchargรฉs sรฉparรฉment et peuvent รชtre ajoutรฉs facilement ร  une installation Sqoop existante.

Pourquoi avons-nous besoin de Sqoop ?

Le traitement analytique ร  l'aide de Hadoop nรฉcessite le chargement d'รฉnormes quantitรฉs de donnรฉes provenant de diverses sources dans des clusters Hadoop. Ce processus de chargement massif de donnรฉes dans Hadoop, ร  partir de sources hรฉtรฉrogรจnes, puis de leur traitement, comporte un certain nombre de dรฉfis. Maintenir et garantir la cohรฉrence des donnรฉes et garantir une utilisation efficace des ressources sont quelques facteurs ร  prendre en compte avant de sรฉlectionner la bonne approche pour le chargement des donnรฉes.

Problรจmes majeurs:

1. Chargement des donnรฉes ร  l'aide de scripts

L'approche traditionnelle consistant ร  utiliser des scripts pour charger des donnรฉes n'est pas adaptรฉe au chargement de donnรฉes en masse dans Hadoop ; cette approche est inefficace et prend beaucoup de temps.

2. Accรจs direct aux donnรฉes externes via l'application Map-Reduce

Fournir un accรจs direct aux donnรฉes rรฉsidant sur des systรจmes externes (sans chargement dans Hadoop) pour les applications de rรฉduction de cartes complique ces applications. Cette approche nโ€™est donc pas rรฉalisable.

3. En plus d'avoir la capacitรฉ de travailler avec d'รฉnormes donnรฉes, Hadoop peut travailler avec des donnรฉes sous plusieurs formes diffรฉrentes. Ainsi, pour charger des donnรฉes aussi hรฉtรฉrogรจnes dans Hadoop, diffรฉrents outils ont รฉtรฉ dรฉveloppรฉs. Squoop et Buse sont deux de ces outils de chargement de donnรฉes.

Ensuite, dans ce didacticiel Sqoop avec des exemples, nous dรฉcouvrirons la diffรฉrence entre Sqoop, Flume et HDFS.

Sqoop contre Flume contre HDFS dans Hadoop

Squoop Buse HDFS
Sqoop est utilisรฉ pour importer des donnรฉes ร  partir de sources de donnรฉes structurรฉes telles que le SGBDR. Flume est utilisรฉ pour dรฉplacer des donnรฉes de streaming en masse vers HDFS. HDFS est un systรจme de fichiers distribuรฉ utilisรฉ par l'รฉcosystรจme Hadoop pour stocker des donnรฉes.
Sqoop a une architecture basรฉe sur des connecteurs. Les connecteurs savent comment se connecter ร  la source de donnรฉes respective et rรฉcupรฉrer les donnรฉes. Flume a une architecture basรฉe sur des agents. Ici, un code est รฉcrit (appelรฉ ยซ agent ยป) qui se charge de rรฉcupรฉrer les donnรฉes. HDFS a une architecture distribuรฉe dans laquelle les donnรฉes sont rรฉparties sur plusieurs nล“uds de donnรฉes.
HDFS est une destination pour l'importation de donnรฉes ร  l'aide de Sqoop. Les donnรฉes circulent vers HDFS via zรฉro ou plusieurs canaux. HDFS est une destination ultime pour le stockage de donnรฉes.
Le chargement des donnรฉes Sqoop n'est pas pilotรฉ par des รฉvรฉnements. Le chargement des donnรฉes du canal peut รชtre pilotรฉ par un รฉvรฉnement. HDFS stocke simplement les donnรฉes qui lui sont fournies par quelque moyen que ce soit.
Afin d'importer des donnรฉes ร  partir de sources de donnรฉes structurรฉes, il faut utiliser uniquement les commandes Sqoop, car ses connecteurs savent comment interagir avec les sources de donnรฉes structurรฉes et en rรฉcupรฉrer des donnรฉes. Afin de charger des donnรฉes en streaming telles que des tweets gรฉnรฉrรฉs sur Twitter ou des fichiers journaux d'un serveur Web, Flume doit รชtre utilisรฉ. Les agents Flume sont conรงus pour rรฉcupรฉrer des donnรฉes en streaming. HDFS possรจde ses propres commandes shell intรฉgrรฉes pour y stocker des donnรฉes. HDFS ne peut pas importer de donnรฉes en streaming

Rรฉsumez cet article avec :