`
小网客
  • 浏览: 1211741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hive之内部表和外部表

 
阅读更多

hive的建表语句如下:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  [(col_name data_type [COMMENT col_comment], ...)]
  [COMMENT table_comment]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [SKEWED BY (col_name, col_name, ...) ON ([(col_value, col_value, ...), ...|col_value, col_value, ...]) [STORED AS DIRECTORIES] (Note: Only available starting with Hive 0.10.0)]
  [
   [ROW FORMAT row_format] [STORED AS file_format]
   | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  (Note: Only available starting with Hive 0.6.0)
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]  (Note: Only available starting with Hive 0.6.0)
  [AS select_statement]  (Note: Only available starting with Hive 0.5.0, and not supported when creating external tables.)

如果对存在表cp那么其语句为:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
  LIKE existing_table_or_view_name
  [LOCATION hdfs_path]

此处的外部表和内部表的标示为是否在建表语句中是否有:EXTERNAL

区别如下:

1.内部表的数据存储在hive的hive.metastroe.warehouse.dir下,如果在创建database的时候指定了LOCATION 那么其内部表的数据会在此目录下;外部表仅仅记录数据位置,不对其位置走任何修改;

2.删除表时,如果是外部表那么只删元数据,不损坏其实际hdfs数据;而内部表会删除元数据和实际数据

3.数据源发生变化时外部表的数据也会变化;如果外部hdfs数据被删那么此表数据也就没了;

 

举例:

create EXTERNAL TABLE  IF NOT EXISTS hive.dual(
id STRING COMMENT 'id'
)
STORED AS RCFile 
LOCATION 'hdfs:///hive/dual/';

基于外部数据:

create EXTERNAL TABLE  IF NOT EXISTS hive.book(
ISBN STRING COMMENT 'ISBN',
title STRING COMMENT 'title',
author STRING COMMENT 'Author',
year STRING COMMENT 'Year-Of-Publication',
publisher STRING COMMENT 'Publisher',
img_s STRING COMMENT 'Image-URL-S',
img_m STRING COMMENT 'Image-URL-M',
img_l STRING COMMENT 'Image-URL-L'
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\073' 
STORED AS TEXTFILE
LOCATION 'hdfs:///hive/book/';

 

 

其他:

file_format:

  : SEQUENCEFILE

  | TEXTFILE

  | RCFILE     (Note: Only available starting with Hive 0.6.0)

  | ORC        (Note: Only available starting with Hive 0.11.0)

  | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname

 

row_format:
  : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char] (Note: Only available starting with Hive 0.13)
  | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
0
0
分享到:
评论

相关推荐

    Hive内部表和外部表

    一:内部表和外部表的区别 创建表时使用关键字external创建的表就是外部表,没有使用该关键字创建的表就是内部表。 删除表时(drop table)内部表会删除hdfs对应路径,而外部表不会删除hdfs对应的路径, 删除表无论是...

    Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4

    Hadoop-2.8.0-HA-Hive安装部署与HQL10.hive的基本语法--内部表和外部表.mp4

    kingcall#all-kinds-book#4 Hive—基础—内部表和外部表1

    创建内部表CREATE TABLE ods.u_data (FIELDS TERMINATED BY '\t'当你建表成功并且把数据load 进去之后,你发现数

    HIVE创建库创建表.docx

    掌握HQL创建数据库,掌握HQL创建内部表、外部表、分区表 使用有location 和无location创建HIVE数据库,库名与自己的名字相关; 在数据集目录中选取2个数据文件内部表创建表,选取2个数据文件创建外部表。 使用美国...

    hive搭建及使用入门简介(内含PPT、各种表创建sql及hive搭建使用笔记)

    适用人群:hive学习童鞋,hive方面从业人员 从hive的搭建 到 hive的分区表/内部表/外部表/分桶等sql讲解

    hive-笔记--hive常用用法

    内部表和外部表,导入数据,导出数据,将数据从hive的表中导出到本地磁盘目录中,HIVE的存储文件格式,修改表的分区,多重插入,HIVE的自定义函数功能,使用explode —— 行转列,配合lateral view 列转行方便统计,...

    HIVE 自建落地表

    自建落地表为什么要自建落地表HIVE SQL创建内/外部表、分区表insert overwrite 向分区表插入数据 为什么要自建落地表 1、公司的大数据资源非常紧张, 2、导数逻辑很复杂; 3、日常导数要求时效性高; 4、部门数仓的...

    hive原理1介绍

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据...Hive中包含以下数据模型:Table内部表,External Table外部表,Partition分区,Bucket桶。Hive默认可以直接加载文本文件,还支持sequence file 、RCFile。

    Hadoop原理与技术Hive操作实验

    1:创建内部表 (1):start-all.sh,启动Hadoop所有进程 (2):初始化元数据库生成metastore (3):启动hive (4):把linus上面的rg.txt放到hdfs下 (5):show databases;显示所有数据库 (6):新建数据库...

    hive操作命令大全.txt

    # 内部表转外部表 alter table table_name set TBLPROPROTIES ('EXTERNAL'='FALSE');# 外部表转内部表 # 表结构修改 # 重命名表 use xxxdb; alter table table_name rename to new_table_name; # 增加字段 ...

    BigData-Interview:

    发一条内推消息,社招、实习生欢迎投递 字节跳动校招内推码: 3UWFMRS 投递链接: 社招: 大数据面试题汇总与答案...hive 内部表和外部表的区别 hive中 sort by / order by / cluster by / distribute by 的区别 hive的me

    大数据与人工智能-fy.docx

    Hive针对内部表和外部表的区别是 [单选题] A.创建内部表的同时,会将数据挪到数据仓库指定的位置(正确答案) B.删除内部表时只删除源数据 C.创建内部表时,只记录数据指定的路径 D.删除外部表时删除表中数据和源数据...

    云数据库方案设计(1).doc

    与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),...

    云数据库方案设计.doc

    与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),...

    大数据应用测试经验总结.pdf

    ⼤数据应⽤测试经验总结 ⼤数据应⽤测试经验总结 ⼤数据应⽤测试... show tables like 'h*' 创建表 内部表:CREATE TABLE page_view if not exists(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRIN

    OozieWorkflow

    Oozie管道可自动将数据下载和提取到配置单元表 动作1-执行脚本bash,该脚本将下载和存储昨天的数据。 安排作业每天运行。 行动2-将数据存储在HDFS的... 动作4-将数据从covid_ext复制到先前创建的Hive分区内部表covid中

    云数据库方案设计.docx

    云数据库方案设计 云数据库的云化改造 面向云化环境,数据库在多个方面需要进行改造,... 云数据集成 3.1 与RDS的数据集成 数据库使用外部表技术,可以访问RDS中的其他数据。 支持多种格式的数据; 支持访问和更新数据

    2017最新大数据架构师精英课程

    106_hive beeline-外部表-内部标 107_hive 分区表-桶表 108_hive word count 109_hive连接查询-union查询-load数据 110_hbase概述 111_zk架构-集群搭建-容灾演练avi 112_zk API-观察者-临时节点-序列节点-leader选举...

Global site tag (gtag.js) - Google Analytics