118 votes

Différence entre les tables internes de Hive et les tables externes ?

Quelqu'un peut-il me dire quelle est la différence entre la table externe de Hive et les tables internes. Je sais que la différence se fait lors de la suppression de la table. Je ne comprends pas ce que vous voulez dire par les données et les métadonnées sont supprimées dans les tables internes et seulement les métadonnées sont supprimées dans les tables externes. Quelqu'un peut-il m'expliquer en termes de nœuds s'il vous plaît.

1voto

Urvishsinh Mahida Points 709

Gardez également à l'esprit que Hive est un entrepôt de données volumineuses. Lorsque vous voulez supprimer une table, vous ne voulez pas perdre des gigaoctets ou des téraoctets de données. Générer, déplacer et copier des données à cette échelle peut prendre beaucoup de temps. Lorsque vous supprimez une table "gérée", le répertoire de stockage met également ses données à la poubelle. Lorsque vous supprimez une table "externe", seule la définition du schéma du méta-magasin du répertoire de stockage est supprimée. Les données sur le hdfs restent.

1voto

anubhav Points 242

Le meilleur cas d'utilisation d'une table externe dans le répertoire de stockage est lorsque vous voulez créer la table à partir d'un fichier CSV ou texte.

1voto

Noel John Points 11

Les deux sites Interne y Externe Les tables appartiennent à HIVE . La seule différence étant la propriété des données. Les commandes permettant de créer les deux tables sont présentées ci-dessous. Seule une commande supplémentaire EXTERNAL Le mot clé intervient en cas de création de table externe. Les deux tables peuvent être créé/supprimé/modifié en utilisant Déclarations SQL .

En cas de Tableaux internes Dans le cas d'un tableau, le tableau et les données qu'il contient sont tous deux gérés par l'Office. HIVE . C'est-à-dire que nous pouvons ajouter/supprimer/modifier toute donnée utilisant HIVE . Lorsque nous DROP la table, avec la table, les données seront également supprimées.

Par exemple, : CREATE TABLE tweets (text STRING, words INT, length INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

En cas de Tableaux externes , seule la table est gérée par HIVE . Les données présentes dans ces tableaux peuvent provenir de n'importe quel emplacement de stockage, par exemple HDFS . Nous ne pouvons pas ajouter/supprimer/modifier les données de ces tableaux. Nous ne pouvons utiliser les données de ces tableaux qu'en utilisant SÉLECTIONNER déclarations. Lorsque nous DROP la table, seule la table est supprimée et non les données qu'elle contient. C'est pourquoi il est dit que seul méta-données est supprimé. Lorsque nous créons EXTERNAL tableaux, nous devons mentionner l'emplacement des données.

Par exemple, : CREATE EXTERNAL TABLE tweets (text STRING, words INT, length INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '/user/hive/warehouse/tweets';

0voto

user5080458 Points 1

Le répertoire de stockage ne stocke que les méta-données dans le métastore et les données originales en dehors du répertoire de stockage lorsque nous utilisons une table externe nous pouvons donner l'emplacement ' ' par ces données originales ne seront pas affectées lorsque nous abandonnons la table.

0voto

Sayat Stb Points 58

Lorsqu'il y a déjà des données dans HDFS, une table Hive externe peut être créée pour décrire ces données. Elle est appelée EXTERNAL parce que les données de la table externe sont spécifiées dans les propriétés LOCATION au lieu du répertoire par défaut de l'entrepôt.

Lorsque vous conservez des données dans les tables internes, Hive gère entièrement le cycle de vie de la table et des données. Cela signifie que les données sont supprimées dès que la table interne est abandonnée. Si la table externe est supprimée, les métadonnées de la table sont supprimées mais les données sont conservées. La plupart du temps, il est préférable d'utiliser une table externe pour éviter de supprimer par erreur les données en même temps que les tables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X