web-dev-qa-db-fra.com

Déposer la table externe Hive SANS supprimer les données

L'objectif est de détruire un schéma Hive tout en conservant les données.

Avec une table externe Hive, créée par exemple avec le script 1, elle peut être supprimée avec le script 2. Cette opération supprime les données (supprime le dossier /user/me/data/). Ce dossier doit rester pour une utilisation dans d'autres projets.

Une longue recherche ne rapporte rien jusqu'à présent ...

Script 1: Créer une table externe

CREATE EXTERNAL TABLE external_Hive_table(
    column1 STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY
    '\t'
STORED AS TEXTFILE
LOCATION
   '/user/me/data/'
TBLPROPERTIES (
    "skip.header.line.count"="1");

Script 2: Supprimer une table externe (données supprimées)

ALTER TABLE
    external_Hive_table
SET TBLPROPERTIES (
    'EXTERNAL'='FALSE');

DROP TABLE external_Hive_table;

Edit: Script 3: Supprimer une table externe (conserver les données)

 DROP TABLE external_Hive_table;
6
Laurens Koppenol

Utilisez uniquement cette instruction (sans alter table):

DROP TABLE external_Hive_table;
7
facha

nous pouvons éviter ce Boz raide car SI WE supprimons une table externe, les données disponibles dans le schéma HDFS seront supprimées. Script 2: Supprimer une table externe ( déposer des données)

ALTER TABLE External_Hive_table SET TBLPROPERTIES ( 'EXTERNAL' = 'FALSE');

DROP TABLE external_Hive_table

1
K Rakesh patra