Est-il possible d'importer des données dans la table Hive sans copier les données
J'ai des fichiers journaux stockés en tant que texte dans HDFS. Lorsque je charge les fichiers journaux dans un tableau de la Ruche, tous les fichiers sont copiés.
Puis-je éviter d'avoir toutes mes données de texte stocké deux fois?
EDIT: je le charge via la commande suivante
LOAD DATA INPATH '/user/logs/mylogfile' INTO TABLE `sandbox.test` PARTITION (day='20130221')
Alors, je peux trouver exactement le même fichier dans:
/user/hive/warehouse/sandbox.db/test/day=20130220
Je suppose qu'il a été copié.
source d'informationauteur Mad Echet
Vous devez vous connecter pour publier un commentaire.
utiliser une table externe:
si vous souhaitez utiliser le partitionnement avec une table externe, vous serez responsable de la gestion de la partition répertoires.
l'emplacement spécifié doit être un hdfs répertoire..
Si vous déposez une table externe de la ruche ne VA PAS supprimer la source de données.
Si vous souhaitez gérer vos fichiers raw, l'utilisation des tables externes. Si vous voulez de la ruche pour le faire, la ruche de stocker à l'intérieur de son entrepôt de chemin.
Je peux dire, au lieu de copier des données à votre application java directement à HDFS, ces fichiers dans le système de fichiers local, et de les importer dans HDFS par ruche à l'aide de commande suivante.
Avis de la
LOCAL
Vous pouvez utiliser la commande alter table de partition instruction pour éviter la duplication des données.
De la ruche (au moins lors de l'exécution dans le vrai mode de cluster) ne peut pas se référer à des fichiers externes dans le système de fichiers local. La ruche peut importer automatiquement les fichiers lors de la création de la table ou de l'opération de chargement. La raison derrière cela peut être que la Ruche s'exécute MapReduce en interne pour en extraire les données. MapReduce lit de la SF en tant que bien que les écritures de retour à la SF et fonctionne même en mode distribué. Ainsi, si le fichier est stocké dans le système de fichiers local, il ne peut pas être utilisé par les infrastructures.