删除Hive外部表而不删除数据

时间:2016-11-23 09:23:51

标签: hadoop hive hortonworks-data-platform

目标是销毁Hive架构,但保留数据。

给定一个Hive外部表,例如使用脚本1创建,可以使用脚本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;

2 个答案:

答案 0 :(得分:7)

仅使用此语句(不带alter table):

# Doctrine Configuration
doctrine:
    dbal:
        driver:   pdo_mysql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8
        # if using pdo_sqlite as your database driver:
        #   1. add the path in parameters.yml
        #     e.g. database_path: "%kernel.root_dir%/data/data.db3"
        #   2. Uncomment database_path in parameters.yml.dist
        #   3. Uncomment next line:
        #     path:     "%database_path%"

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: false
        mappings:
            FOSUserBundle: ~
            AppBundle:
                type: annotation
                dir: "%kernel.root_dir%/../src/AppBundle/Libraries/Data"
                prefix: AppBundle\Libraries\Data

答案 1 :(得分:0)

我们可以避免这个陡峭的Boz因为我们会丢弃外部表它会掉线  将删除HDFS架构中可用的数据。 脚本2:删除外部表(丢弃数据)

ALTER TABLE     external_hive_table 设置TBLPROPERTIES(     ' EXTERNAL' =' FALSE&#39);

DROP TABLE external_hive_table