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