hive创建表的语法参考如下网址:Create/Drop/Truncate Table

1.创建基础表

在这个网页里详细记录了创建表的每个语法,下面就一一来看这些创建表的语法内容:

CREATE  TABLE [IF NOT EXISTS] [db_name.]table_name    ``[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]``[COMMENT table_comment][ROW FORMAT row_format] [LOCATION hdfs_path]

其中db_name指的是hive中数据库的名称,默认是default,第二行是定义表的列名称及列描述,第三行是表的描述。以常用的日志为例来创建一张hive的表:

create table IF NOT EXISTS default.log_test (
ip string COMMENT 'client ip address',
user string ,
request_url string COMMENT 'client request url'
) COMMENT 'Test access log';

hive中的表需要映射到hdfs文件中,所以需要定义文件中的每一行之间的分隔符,每一列之间的分隔符。增加行分隔符的语句如下:

ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '

这句的意思是以空格来分隔行数据,那么这一行中的数据只要遇到一个空格就可以划分为一个数据。这里的分隔符可以是其他字符,比如",","#","|"等,一般只要用数据文件中可以区分每一行中的不同数据即可。

列与列直接的分隔符通常是以换行符来区分,可以用如下的语句来指定:

`COLLECTION ITEMS TERMINATED BY 'n'

通常列与列直接的分隔符是不需要写的。

[STORED AS file_format]是指定文件的类型,保存在hive中的文件的类型有多种,一般简单就保存为文本格式,即TEXTFILE,但是企业中一般不使用这种格式来保存数据,主要是因为文本格式占的空间比较大,不利于大数据分析。企业中一般使用ORC和PARQUET两种文件类型来保存,具体的会在后面讲解。

通过[LOCATION hdfs_path]可以在创建表的时候指定该表映射到到hdfs的文件路径,默认是映射到/user/hive/warehouse目录下。

完整的建表语句如下:

create table IF NOT EXISTS default.log_test (
ip string COMMENT 'client ip address',
user string , 0
request_url string COMMENT 'client request url'
) COMMENT 'Test access log'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
location '/user/hadoop/warehouse/log_test'
STORED AS TEXTFILE ;

2.创建子表

[AS select_statement]这个语句是用来通过查询已有的表来创建一张新表,这样可以根据已有的表来创建子表,对于数据分析和优化都是有很大的好处的。相应的创建语句如下:

create table IF NOT EXISTS default.log_test_sl as select ip,user from default.log_test;

3.创建相同结构的表

另外一种创建表的方式如下:

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

由于日志是每天都会产生的,而且每天的日志格式都是一样的,我们没有必要每次都创建相同的表,上面这种创建表的方式就是根据已经存在的表来创建新的表,而新的表和已经存在的表表结构是一样的,但是数据可以映射到不同的hdfs文件上。

create table IF NOT EXISTS default.log_test_like like default.log_test;

hive外部表改为内部表_Hive基础之创建表相关推荐

  1. hive根据已有表创建新表_Hive基础之创建表

    1.创建基础表 在这个网页里详细记录了创建表的每个语法,下面就一一来看这些创建表的语法内容: CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ``[ ...

  2. hive外部表改为内部表_3000字揭秘Greenplum的外部数据加载——外部表

    外部表是greenplum的一种数据表,它与普通表不同的地方是:外部表是用来访问存储在greenplum数据库之外的数据.如普通表一样,可使用SQL对外部表进行查询和插入操作.外部表主要用于Green ...

  3. mysql 更改建表语句_MySql:如何通过Sql语句创建表,更改表?,这几步你要了解...

    mysql在网站开发中,越来越多人使用了,因为方便部署,方便使用. 我们在平时使用中,通常都是通过客户端软件去创建表和更改表,比如用 Navicat.很多人都不会用sql语句去创建表,或者语法忘记了. ...

  4. mysql 导入创建表空间_说说在 Oracle11g 中如何创建表空间、创建用户并授权以及导入与导出数据...

    假设 Oracle11g 已在本机安装成功. 1 创建表空间 打开 sqlplus 工具:开始-->所有程序--> Oracle –OraDb11g_home1-->应用程序开发-- ...

  5. 数据库创建(利用写好的数据库表生成创建表的sql语句+利用生成的数据库创建表加同步数据sql)

    一.利用写好的数据库表生成创建表的sql语句 1.简单创建一个数据库,并建一个表,并编辑数据. a.建库 b.建表 c.编辑表,保存时输入表名 d.刷新一下,出来了 e.转存导出sql文件. 二.利用 ...

  6. sqlserver2008 R2数据库-不允许表修改保存,阻止保存要求重新创建表的更改

    在SQL Server 2008 R2zhong创建完表后,经常需要更改表的设计,有事会提示"不允许保存更改,您所做的更改要求删除并重新创建以下表"错误.原因在SQL Server ...

  7. hive外部表改为内部表_hive内部表外部表介绍

    未被external修饰的是内部表(managed table),被external修饰的为外部表(external table): 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: ...

  8. html创建表单用设么,如何使用HTML创建表单的发送

    HTML除了显示字符和图像的语言以外,其实还具有创建简单表单的功能,本篇文章就来给大家分享关于如何使用HTML格式创建发送表单. 我们先来解释一下表单元素:表单元素是创建提交表单的必要元素. 基本格式 ...

  9. 在python中用sql创建表_Python Pandas to_sql,如何用主键创建表?

    免责声明:这个答案更具实验性和实用性,但也许值得一提. 我发现类pandas.io.sql.SQLTable已命名参数键,如果为其指定字段名称,则此字段将成为主键: 不幸的是,你不能只从DataFra ...

  10. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令

    应用场景 1.将ETL操作的数据存入HBase 2.Hbase作为Hive的数据源 构建低延迟的数据仓库 Hive表映射至Hbase Hbase上有表 -> 外部表 创建Hive表映射HBase ...

最新文章

  1. 游戏开发--开源软件7--xith3D(java 3D引擎)
  2. Android 为什么要有handler机制?handler机制的原理
  3. IIS没有.net版本选择标签问题
  4. html5中在canvas上绘图
  5. 机器学习在金融风控实践经验
  6. Z-BlogPHP 1.7 Tenet 正式版源码
  7. 吴恩达深度学习2.3练习_Improving Deep Neural Networks_Tensorflow
  8. IFTT-意大利金融交易税
  9. LTCC带通滤波器设计
  10. 测绘类(遥感)投稿期刊(卓越期刊、EI、CSCD、核心期刊)汇总,内附投稿链接
  11. wps小技巧,wps删除空白页怎么删?
  12. 产品必备-用户故事模板
  13. office word ppt 无法打开, 一直处于安全模式,无法解除
  14. 3、TM4之GPIO的输入输出
  15. android好用的文件管理器,安卓哪种文件管理器好用 三款文件管理器横向评测
  16. 构建共线矩阵的两种惊艳操作
  17. 如何用sql语句对性别的 约束条件让它只能填 男 或 女
  18. python爬表情包_教你用Python来爬取表情包网站的所有表情图片
  19. 浅谈GFS之---读写文件流程
  20. 深入了解电容(二):电容的参数指标解释

热门文章

  1. LOJ2424「NOIP2015」子串
  2. html+css基础-3-flex,浏览器内核,HTML5新特性
  3. git学习笔记-(3-linux基本命令)
  4. opa847方波放大电路_我现在用lm358做了一个放大3倍的放大电路,输出大概3~4v,要带负载50Ω。带150的时候没事,但50就波形消失...
  5. oracle unlimit权限,有关UNLIMITED TABLESPACE权限
  6. js微信监听返回_Node.js入门
  7. python可视化计算器_Python tkinter实现简单加法计算器代码实例
  8. 矩阵乘法公式c语言,c语言矩阵相乘
  9. StanfordDB class自学笔记 (7) SQL
  10. mysql事物超时回滚_查询超时和事务回滚的处理办法