web-dev-qa-db-ja.com

データを削除せずにHive外部テーブルを削除する

目標はHiveスキーマを破棄することですが、データは下に保持します。

たとえばスクリプト1で作成されたHive外部テーブルを指定すると、スクリプト2でドロップできます。これにより、データが削除されます(/user/me/data/フォルダーが削除されます)。このフォルダは、他のプロジェクトで使用するために残しておく必要があります。

長い検索ではこれまで何も得られません...

スクリプト1:外部テーブルを作成する

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");

スクリプト2:外部テーブルのドロップ(データのドロップ)

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

DROP TABLE external_Hive_table;

編集:スクリプト3:外部テーブルを削除(データを保持)

 DROP TABLE external_Hive_table;
8

このステートメントのみを使用してください(alter tableなし):

DROP TABLE external_Hive_table;
9
facha

iF WE are drop external table it drop drop data will be available in HDFS schema is deleted。Script 2:外部テーブルの削除(データの削除)

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

DROP TABLE external_Hive_table

1
K Rakesh patra