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.
Réponses
Trop de publicités?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.
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';
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.
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.