热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hive创建表语法详解

本文详细介绍了在Hive中创建表的基本语法,包括临时表、外部表的创建方法,以及如何设置表的各种属性和约束条件。

Hive中的表创建语句允许用户定义数据结构、存储位置、文件格式等关键信息。以下是创建表的基本语法及其详细说明:



 1 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [database_name.]table_name
2 [(column_name data_type [column_constraint_specification] [COMMENT column_comment], ... [constraint_specification])]
3 [COMMENT table_comment]
4 [PARTITIONED BY (column_name data_type [COMMENT column_comment], ...)]
5 [CLUSTERED BY (column_name, column_name, ...) [SORTED BY (column_name [ASC|DESC], ...)] INTO number_of_buckets BUCKETS]
6 [SKEWED BY (column_name, column_name, ...) ON ((column_value, column_value, ...), (column_value, column_value, ...), ...)
7 [STORED AS DIRECTORIES]]
8 [
9 [ROW FORMAT row_format]
10 [STORED AS file_format]
11 | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
12 ]
13 [LOCATION 'hdfs_path']
14 [TBLPROPERTIES (property_name=property_value, ...)]
15 [AS select_statement];
16
17 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [database_name.]table_name
18 LIKE existing_table_or_view_name
19 [LOCATION 'hdfs_path'];


其中,data_type 可以是基本类型或复杂类型,具体如下:



  • Primitive Types: 包括 TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT, DOUBLE, STRING, BINARY, TIMESTAMP, DECIMAL, DATE, VARCHAR, CHAR。

  • Complex Types: 包括 ARRAY, MAP, STRUCT, UNIONTYPE


row_format 定义了行的格式,支持 DELIMITED 和 SERDE 两种方式。DELIMITED 方式用于指定字段分隔符、集合项分隔符、映射键分隔符、行分隔符等;SERDE 方式则通过自定义序列化/反序列化类来处理数据格式。


file_format 指定了表的数据存储格式,包括 SEQUENCEFILE, TEXTFILE, RCFILE, ORC, PARQUET, AVRO, JSONFILE 等。不同的文件格式适用于不同类型的数据处理需求。


column_constraint_specificationconstraint_specification 允许为列定义约束,如主键、唯一性、非空、默认值等,这些约束有助于确保数据的一致性和完整性。


推荐阅读
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • 本文探讨了在执行SQL查询时遇到的因字符集不同而导致查询结果差异的问题,特别是涉及中文字符时。文章分析了在不同字符集设置下,SQL查询结果的变化,并提供了详细的解决方案。 ... [详细]
  • Kafka 示例项目中 Log4j 的配置与调试
    本文详细介绍了如何在 Kafka 源码中的示例项目配置 Log4j,以确保能够正确记录日志信息,帮助开发者更好地理解和调试代码。 ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • 本文介绍了如何处理在使用 aiohttp 进行 HTTPS 请求时遇到的 SSL 证书验证错误,包括忽略证书验证和使用自定义证书的方法。 ... [详细]
  • 利用Selenium框架解决SSO单点登录接口无法返回Token的问题
    针对接口自动化测试中遇到的SSO单点登录系统不支持通过API接口返回Token的问题,本文提供了一种解决方案,即通过UI自动化工具Selenium模拟用户登录过程,从浏览器的localStorage或sessionStorage中提取Token。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 本文详细解析了在Oracle数据库操作中遇到的ORA-01846错误,该错误通常出现在尝试使用NEXT_DAY函数处理日期时,因客户端和服务器端字符集不匹配导致的问题。文章不仅提供了错误的具体表现,还深入分析了错误原因,并给出了多种解决方案。 ... [详细]
  • 本文介绍了如何在三台CentOS 7.5虚拟机上通过Docker部署RabbitMQ集群,包括环境准备、容器创建、集群配置及故障处理等内容。 ... [详细]
  • 本文探讨了在Java应用中,由于对象间循环引用导致重写toString方法时出现StackOverflowError的具体情况,并提供了有效的解决方案。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • Linux 存储堆栈架构图
    本文提供了一张清晰的Linux存储堆栈架构图,并对比了多种iSCSI后端解决方案,如LIO和STGT。文中还提供了详细的资源链接,帮助读者深入了解这些技术。 ... [详细]
  • 万事起于配置开发环境
    万事起于配置开发环境 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
author-avatar
手机用户2602914827
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有