1. Importation/exportation parallèle
2. Connecteurs pour toutes les principales bases de données SGBDR
3. Importer les résultats de la requête SQL
4. Charge incrémentielle
5. Pleine charge
6. Intégration de la sécurité Kerberos
7. Charger les données directement dans Hive/HBase
8. Compression
9. Prise en charge d'Accumulo
Que 2. Qu'est-ce que l'importation Sqoop ? Expliquez son but.
Rép. Alors qu'il s'agit d'importer des tables de SGBDR vers HDFS, nous utilisons
l'outil d'importation Sqoop. Généralement, on peut considérer que chaque ligne
d'un tableau est un enregistrement dans HDFS. De plus, lorsque nous parlons de
fichiers texte, tous les enregistrements sont là sous forme de données texte.
Cependant, lorsque nous parlons d'Avro et de fichiers de séquence, tous les
enregistrements sont ici sous forme de données binaires. Pour être plus précis, il
importe des tables individuelles du SGBDR vers HDFS.
Que 3. Quel est le format de fichier par défaut pour importer des données à
l'aide d'Apache Sqoop ?
Nous pouvons dire que le format de fichier de séquence est un format de fichier
binaire. Leurs enregistrements sont stockés dans des types de données spécifiques
aux enregistrements personnalisés qui sont affichés comme classes Java. De plus,
Sqoop crée automatiquement ces types de données et les manifeste sous forme de
classes Java.
Que 4. Comment importer des objets volumineux (objets BLOB et CLOB) dans Apache
Sqoop ?
Rép. Cependant, l'importation directe d'objets BLOB et CLOB volumineux n'est pas prise en
charge par la commande d'importation Apache Sqoop. Ainsi, afin d'importer des objets
volumineux comme I Sqoop, les importations basées sur JDBC doivent être utilisées sans
l'argument direct de l'utilitaire d'importation.
Que 5. Comment pouvez-vous exécuter une requête SQL de forme libre dans Sqoop
pour importer les lignes de manière séquentielle ?
Rép.En utilisant l'option -m 1 dans la commande d'importation Sqoop, nous pouvons le faire.
Fondamentalement, il ne créera qu'un seul tâche MAPREDUCE qui importera ensuite les
lignes en série.
Que 6. Apache Sqoop a-t-il une base de données par défaut ?
Que 7. Comment allez-vous lister toutes les colonnes d'une table à l'aide d'Apache
Sqoop ?
Rép.Puisque pour lister toutes les colonnes, nous n'avons aucune commande directe comme
sqoop-list-columns. Donc, indirectement, nous pouvons y parvenir en récupérant les colonnes
des tables souhaitées et en les redirigeant vers un fichier pouvant être consulté manuellement
contenant les noms de colonnes d'une table particulière.
Que 8. Si les données sources sont mises à jour de temps en temps, comment
synchroniserez-vous les données importées par Sqoop dans HDFS?
i) append
Basiquement, nous devrions utiliser l'importation incrémentielle avec l'option append. Même
si la table est mise à jour en continu avec de nouvelles lignes et des valeurs d'ID de ligne
croissantes. En particulier, lorsque les valeurs de certaines colonnes sont vérifiées (les
colonnes à vérifier sont spécifiées à l'aide de –check-column) et s'il découvre une valeur
modifiée pour ces colonnes, seule une nouvelle ligne sera insérée.
ii) lastmodified
Cependant, dans ce type d'importation incrémentielle, la source a une colonne de date qui est
vérifiée. Tous les enregistrements qui ont été mis à jour après la dernière importation en
fonction de la dernière colonne modifiée dans la source, les valeurs seraient mises à jour.
Rép. Pour importer des données SGBDR, nous utilisons des commandes de contrôle
d'importation
–columns<col,col……>
Que 10. Comment pouvons-nous importer des données à partir d'une ligne ou d'une
colonne particulière ? Quels sont les types de destination autorisés dans la commande
d'importation Sqoop ?
–columns<col1,col2……>
–where
–query
Par example:
sqoop import –connect jdbc:mysql://db.one.com/corp –table INTELLIPAAT_EMP –where
“start_date> ’2016-07-20’ ”
sqoopeval –connect jdbc:mysql://db.test.com/corp –query “SELECT * FROM
intellipaat_emp LIMIT 20”
sqoop import –connect jdbc:mysql://localhost/database –username root –password aaaaa –
columns “name,emp_id,jobtitle”
Cependant, dans les services suivants, Sqoop prend en charge les données importées :
1. HDFS
2. Hive
3. Hbase
4. Hcatalog
5. Accumulo
1) Mode (incrémental) Il montre comment Sqoop déterminera quelles sont les nouvelles
lignes. En outre, il a la valeur Append ou Last Modified.
2) Col (Check-column) Fondamentalement, il spécifie la colonne qui doit être examinée pour
trouver les lignes à importer.
Rép. Cependant, nous utilisons le paramètre -compress -code pour obtenir le fichier de sortie
d'une importation sqoop dans des formats autres que .gz comme .bz2.
Que 14. Les requêtes SQL de forme libre peuvent-elles être utilisées avec la commande
d'importation Sqoop ? Si oui, comment peuvent-ils être utilisés ?
Rép. Dans Sqoop, nous pouvons utiliser des requêtes SQL avec la commande import.
Fondamentalement, nous devons utiliser la commande import avec les options de requête -e et
- pour exécuter des requêtes SQL de forme libre. Mais notez que la valeur –target dir doit être
spécifiée lors de l'utilisation des options –e et –query avec la commande import.
Rép.Essentiellement, Sqoop Éval permet d'exécuter des exemples de requêtes SQL sur la
base de données et de prévisualiser les résultats sur la console. De plus, il est utile de savoir
quelles données nous pouvons importer ou si les données souhaitées sont importées ou non.
Rép. Dans l'instruction d'importation sqoop, en utilisant la clause WHERE, nous ne pouvons
importer qu'un sous-ensemble de lignes.
Que 17. Quelles sont les limites de l'importation directe de tables SGBDR dans
Hcatalog ?
Rép.En utilisant l'option –hcatalog –database avec la –hcatalog –table, nous pouvons importer
directement des tables SGBDR dans Hcatalog. Cependant, il y a une limitation à cela, c'est
qu'il ne prend pas en charge plusieurs arguments comme -as-Avro file, -direct, -as-
sequencefile, -target-dir , -export-dir.
Que 18. Quel est l'avantage d'utiliser l'option –password-file plutôt que l'option -P tout
en empêchant l'affichage du mot de passe dans l'instruction d'importation sqoop ?
Rép. Dans un script sqoop, nous pouvons utiliser l'option –password-file. Alors que l'option
-P lit à partir de l'entrée standard, empêchant l'automatisation.
Rép. En utilisant n'importe quel SQL, Sqoop peut importer des données à partir d'une requête
de base de données relationnelle plutôt que d'utiliser uniquement des paramètres de nom de
table et de colonne.
Que 21. Le pilote JDBC est-il suffisant pour connecter sqoop aux bases de données ?
Rép. Non. pour se connecter à une base de données, Sqoop a besoin à la fois de JDBC et d'un
connecteur.
Rép. La division d'entrée est définie pendant l'exécution d'une tâche Hadoop, elle divise les
fichiers d'entrée en morceaux et attribue également chaque division à un mappeur à traiter.
Rép. Fondamentalement, la commande Codegen génère du code pour interagir avec les
enregistrements de la base de données.
Rép. La commande d'aide dans Hadoop sqoop répertorie généralement les commandes
disponibles
Que 27. Quelle est l'importance de la clause split-by dans l'exécution de tâches
d'importation parallèles dans sqoop ?
Rép.Un outil que Sqoop héberge un référentiel de métadonnées partagé est ce que nous
appelons sqoop metastore. De plus, plusieurs utilisateurs et/ou utilisateurs distants peuvent
définir et exécuter des jobs enregistrés (créés avec le job sqoop) définis dans ce métastore. De
plus, avec l'argument –meta-connect, les clients doivent être configurés pour se connecter au
métastore dans sqoop-site.xml.
Rép. L'outil de fusion combine deux ensembles de données où les entrées d'un ensemble de
données doivent écraser les entrées d'un ensemble de données plus ancien en préservant
uniquement la version la plus récente des enregistrements entre les deux ensembles de
données.
Que 30. Comment pouvez-vous voir la liste des tâches stockées dans le métastore sqoop ?
Rép. N'importe où, cela signifie que nous pouvons héberger une base de données de
métastore à l'intérieur ou à l'extérieur du cluster Hadoop.
Que 33. Donnez la commande sqoop pour voir le contenu du travail nommé myjob?
Que 34. Comment pouvez-vous contrôler le mappage entre les types de données SQL et
les types Java ?
Que 35. Est-il possible d'ajouter un paramètre lors de l'exécution d'un travail
enregistré ?
Rép. Oui, en utilisant l'option –exec, nous pouvons ajouter un argument à un travail enregistré
à runtime.sqoop job –exec jobname — — newparameter
Rép. Pour spécifier les valeurs de ligne de commande dans un fichier et les utiliser dans les
commandes sqoop, nous utilisons le fichier d'options dans sqoop. Par exemple, la valeur du
paramètre -connect et la valeur du nom d'utilisateur doivent être stockées dans un fichier et
utilisées encore et encore avec différentes commandes sqoop. .
Que 37. Comment éviter d'importer des tables une par une lors de l'importation d'un
grand nombre de tables à partir d'une base de données ?
Rép. Pour contrôler le nombre de mappeurs exécutés par une commande sqoop, nous utilisons
le paramètre –num-mappers. De plus, nous devrions commencer par choisir un petit nombre
de tâches de carte, puis augmenter progressivement, car le choix d'un nombre élevé de
mappeurs au départ peut ralentir les performances du côté de la base de données.
Que 39. Quelle est l'extension par défaut des fichiers produits à partir d'une importation
sqoop à l'aide du paramètre –compress ?
Rép. .gz
Rép. Nous utilisons le paramètre -compress -code pour obtenir le fichier de sortie d'une
importation sqoop dans des formats autres que .gz comme .bz2.
Que 41. Quel est l'inconvénient d'utiliser le paramètre –direct pour un chargement plus
rapide des données par sqoop ?
Rép. Les utilitaires natifs utilisés par les bases de données pour prendre en charge une charge
plus rapide ne fonctionnent pas pour les formats de données binaires comme SequenceFile.
Que 42. Comment allez-vous mettre à jour les lignes déjà exportées ?
Rép.Fondamentalement, pour mettre à jour les lignes existantes, nous pouvons utiliser le
paramètre –update-key. De plus, une liste de colonnes séparées par des virgules est utilisée
qui identifie de manière unique une ligne. Toutes ces colonnes sont utilisées dans la clause
WHERE de la requête UPDATE générée. Toutes les autres colonnes du tableau seront
utilisées dans la partie SET de la requête.
Que 43. Quelles sont les commandes de base dans Apache Sqoop et ses utilisations ?
1. Codegen- Il aide à générer du code pour interagir avec les enregistrements de la base
de données.
2. Créer-hive-table- Il est utile d'importer une définition de table dans une ruche
3. Eval- Il aide à évaluer l'instruction SQL et à afficher les résultats
4. Exporter - Il est utile d'exporter un répertoire HDFS dans une table de base de données
5. Aide - Il est utile de lister les commandes disponibles
6. Importer - Il est utile d'importer une table d'une base de données vers HDFS
7. Import-all-tables - Il permet d'importer des tables d'une base de données vers HDFS
8. List-databases- Cela aide à répertorier les bases de données disponibles sur un serveur
9. List-tables - Il est utile de répertorier les tables dans une base de données
10. Version- Il aide à afficher les informations de version
Que 44. Comment le mot Sqoop est-il venu? Sqoop est quel type d'outil et l'utilisation
principale de sqoop ?
Rép.Cela signifie valider les données copiées. Importez ou exportez en comparant le nombre
de lignes de la source ainsi que la copie de publication cible. De même, nous utilisons cette
option pour comparer le nombre de lignes entre la source et la cible juste après l'importation
des données dans HDFS. De plus, alors que lors des importations, toutes les lignes sont
supprimées ou ajoutées, Sqoop suit ce changement. Met également à jour le fichier journal.
Rép.Dans Sqoop, valider les données copiées est l'objectif principal de la validation.
Fondamentalement, importez ou exportez Sqoop en comparant le nombre de lignes de la
source ainsi que la copie de publication cible.
Que 48. Qu'est-ce que Sqoop Import Mainframe Tool et son objectif ?
Rép.Fondamentalement, un outil que nous utilisons pour importer tous les ensembles de
données séquentiels dans un ensemble de données partitionné (PDS) sur un mainframe vers
HDFS est Sqoop Import Mainframe. Cet outil est ce que nous appelons l'outil d'importation
mainframe. De plus, un PDS s'apparente à un répertoire sur les systèmes ouverts. De même,
dans un jeu de données, les enregistrements ne peuvent contenir que des données de
caractères. De plus, ici, les enregistrements seront stockés sous forme de champ de texte
unique avec l'intégralité de l'enregistrement.
Rép. Discutons donc de toutes les différences sur la base des fonctionnalités.
b. Type de chargement
Apache Sqoop – Fondamentalement, la charge Sqoop n'est pas pilotée par des événements.
Apache Flume – Ici, le chargement des données est entièrement piloté par les événements.
c. Quand utiliser
Apache Sqoop - Cependant, si les données sont disponibles dans Teradata, Oracle, MySQL,
PostreSQL ou toute autre base de données compatible JDBC, cela est considéré comme un
ajustement idéal. Apache Flume - Alors que nous déplaçons la majeure partie des données en
streaming à partir de sources comme JMS ou les répertoires de spooling, c'est le meilleur
choix.
e. Architecture
Apache Sqoop – Fondamentalement, il a une architecture basée sur des connecteurs.
Cependant, cela signifie que les connecteurs savent très bien se connecter aux différentes
sources de données. Aussi pour récupérer les données en conséquence. Apache Flume -
Cependant, il a une architecture basée sur des agents. Fondamentalement, cela signifie que le
code écrit dans Flume est que nous appelons un agent qui peut être responsable de la
récupération des données.