sqoop importer les données de plusieurs tables
Nous sommes à l'aide de Cloudera CDH 4 et nous sommes en mesure d'importer les tables de nos bases de données Oracle dans notre HDFS entrepôt comme prévu. Le problème est que nous avons 10 de millier de tables à l'intérieur de nos bases de données et sqoop prend uniquement en charge l'importation d'une table à la fois.
Quelles options sont disponibles pour l'importation de plusieurs tables dans HDFS ou la Ruche? Par exemple, quelle serait la meilleure façon de l'importation de 200 tableaux à partir d'oracle dans HDFS ou de la Ruche à la fois?
La seule solution que j'ai vu jusqu'à présent est de créer un sqoop travail pour chaque importation de table et ensuite exécuter individuellement. Depuis Hadoop est conçu pour fonctionner avec un vaste ensemble de données, il semble comme il devrait y avoir une meilleure façon.
OriginalL'auteur Danny Westfall | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
En supposant que le sqoop de configuration pour chaque tableau est le même, vous pouvez lister toutes les tables que vous souhaitez importer, puis itérer sur eux le lancement de sqoop emplois (idéalement de les lancer en mode asynchrone). Vous pouvez exécuter les opérations suivantes pour récupérer la liste des tables à partir d'Oracle:
SELECT owner, table_name FROM dba_tables
référenceSqoop offre une option pour importer toutes les tables. Cochez cette lien. Il y a quelques limitations.
Modifier sqoop code source et recompiler pour vos besoins. Le sqoop codebase est bien documenté et joliment arrangé.
OriginalL'auteur Jit B
U pouvez utiliser le bouton "importer toutes les tables" option pour charger toutes les tables dans HDFS à la fois .
si nous voulons exclure certaines tables à charger dans hdfs, nous pouvons utiliser "--exclude-tables " option
Ex:
Si nous voulons stocker dans un répertoire spécifié alors u peut utiliser "--entrepôt-dir " option
Ex:
OriginalL'auteur Kumar Reddy Basapuram
--target-dir n'est pas une option valide lors de l'utilisation de l'importation-toutes les tables.
Pour importer toutes les tables de répertoire particulier, l'Utilisation --entrepôt-dir au lieu de --target-dir.
Exemple:
$ sqoop à l'importation-toutes-les tables-se connecter jdbc:mysql://localhost/films-nom d'utilisateur root --mot de passe xxxxx --entrepôt-dir '/utilisateur/cloudera/sqoop/allMoviesTables' -m 1
OriginalL'auteur Santosh Singh
Vous pouvez probablement importer les données de plusieurs tables : http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_literal_sqoop_import_all_tables_literal
OriginalL'auteur SSaikia_JtheRocker
La meilleure option est de faire de mon script shell
Préparer un inputfile qui dispose d'une liste de DBNAME.TABLENAME 2)Le script shell aura ce fichier comme entrée, itérer, ligne par ligne, et de les exécuter sqoop déclaration pour chaque ligne.
OriginalL'auteur vinayak_narune
Vous pouvez utiliser Sqoop "
import-all-tables
" pour importer toutes les tables dans la base de données. Cela a aussi un autre paramètre,--exclude-tables
, avec lequel vous pouvez exclure certains de la table que vous ne souhaitez pas importer dans la base de données.Remarque:
--exclude-tables
ne fonctionne qu'avec l'importation-toutes-les tableaux de commande.OriginalL'auteur grepIt