Hive SQL:DDL建库 建表

这篇具有很好参考价值的文章主要介绍了Hive SQL:DDL建库 建表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive SQL:DDL建库 / 建表

🐘Hive SQL数据库 建库

数据库

  • 在Hive中,默认的数据库叫做default,存储数据位置位于HDFS:/user/hive/warehouse

  • 用户自己创建的数据库存储位 :/user/hive/warehouse/database_name.db

创建数据库

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)
  • COMMENT:数据库的注释说明语句

  • LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.db

  • WITH DBPROPERTIES:用于指定一些数据库的属性配置

  • 创建数据库db1

    create database if not exists db1
    comment "the first db"
    with dbproperties ('createdBy'='rkun18');
    

Hive SQL:DDL建库 建表

使用数据库

use db1
  • 切换当前会话选择哪个数据库进行操作

删除数据库

  • 默认行为RESTRICT,仅在数据库为空时才能删除

  • 删除带表的数据可以使用CASCADE

    DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
    

🐝Hive SQL 数据表 建表

  • 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。

  • 表包含带有数据的记录(行)。

  • 语法框架

    CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
    (col_name data_type [COMMENT col_comment], ... )
    [COMMENT table_comment]
    [ROW FORMAT DELIMITED …];
    
  • []中语法代表可选

数据类型

  • Hive数据类型表示表中列的字段类型
  • 分为两类:原生 、复杂
  • 常用字符串String和数字int

分隔符指定语法

[ROW FORMAT DELIMITED …]
  • 用于指定字段之间相关的分隔符

  • LazySimpleSerDe是Hive默认。包含四种子语法,用于指定字段/元素/集合/map k-v之间换行的分隔符号

    ROW FORMAT DElIMITED
        [FIELDS TERMINATED BY char] #字段
        [COLLECTION ITEMS TERMINATED BY char]#集合
        [MAP KEYS TERMINATED BY char]#map映射
        [LINE TERMINATED BY char]#行数据
    

🦦案例

分隔符

文件archer.txt记录手游《王者荣耀》射手相关信息,包括生命,防御等属性,字段之间分隔符为制表符\t,要求在Hive中建表映射该文件。

archer.txt

1	后羿	5986	1784	396	336	remotely	archer
2	马可波罗	5584	200	362	344	remotely	archer
3	鲁班七号	5989	1756	400	323	remotely	archer
4	李元芳	5725	1770	396	340	remotely	archer
5	孙尚香	6014	1756	411	346	remotely	archer
6	黄忠	5898	1784	403	319	remotely	archer
7	狄仁杰	5710	1770	376	338	remotely	archer
8	虞姬	5669	1770	407	329	remotely	archer
9	成吉思汗	5799	1742	394	329	remotely	archer
10	百里守约	5611	1784	410	329	remotely	archer	assassin

这里使用DataGrip编写

编写SQL语句:

use db1;

create table t_archer(
    id int comment "ID",
    name string comment "名称",
    hp_max int comment "生命",
    mp_max int comment "法力",
    attack_max int comment "物攻",
    defense_max int comment "防御",
    attack_range string comment "范围",
    role_main string comment "主位置",
    role_assist string comment "副手"
)comment "射手信息"
row format delimited
fields terminated by "\t";

创建好之后将txt文件上传至,新建立的文件夹下

[root@node1 ~]# mkdir hivedata
[root@node1 ~]# cd hivedata/
[root@node1 hivedata]# pwd
/root/hivedata
[root@node1 hivedata]# ll
total 4
-rw-r--r-- 1 root root 480 Jun 13 13:23 archer.txt
[root@node1 hivedata]# hadoop fs -put archer.txt /user/hive/warehouse/db1.db/t_archer

Hive SQL:DDL建库 建表

文件team_ace_player.txt记录游戏中最受欢迎的选手信息,字段之间使用\001作为分隔符合,要求在Hive中建表并映射成功该文件。

team_ace_player.txt

1成都AG超玩会一诺
2重庆QGhappyHurt
3DYG久诚
4上海EDG.M浪浪
5武汉eStarProCat
6RNG.M暴风锐
7RW侠渡劫
8TES滔搏迷神
9杭州LGD大鹅伪装
10南京Hero久竞清融

  • 字段:id,team_name,ace_player_name
  • 字段之间分隔符\001,建表时可省略row format,因为hive默认分割符号\001
use db1;

create table t_team_ace_play(
    id int,
    team_name string,
    ace_player_name string
);

建表成功后,将文件上传的对应表文件夹下

[root@node1 ~]# ls
hivedata  nohup.out
[root@node1 ~]#
[root@node1 ~]# cd hivedata/
[root@node1 hivedata]# ls
archer.txt
[root@node1 hivedata]# ls
archer.txt  team_ace_player.txt
[root@node1 hivedata]# hadoop fs -put team_ace_player.txt /user/hive/warehouse/db1.db/t_team_ace_play

Hive SQL:DDL建库 建表文章来源地址https://www.toymoban.com/news/detail-501359.html

到了这里,关于Hive SQL:DDL建库 建表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL四大引擎&建库建表&账号管理

    目录 一. 数据库四大引擎 1.1 引擎查看 1.2 InnoDB引擎 1.3 MyISAM引擎 1.4 MEMORY引擎  1.5 Archive引擎 二. 数据库管理 2.1 元数据库 2.2 数据库的增删改查及使用 2.3 权限相关表  三. 数据表管理 3.1 三大范式 3.2 基本数据类型 优化原则 分类 四. 数据库账号管理 4.1 通用 4.2 不同 4.2.1 MySQ

    2024年02月03日
    浏览(36)
  • 3.Hive SQL数据定义语言(DDL)

    1.1 常见的开发方式 (1) Hive CLI、Beeline CLI Hive自带的命令行客户端 优点:不需要额外安装 缺点:编写SQL环境恶劣,无有效提示,无语法高亮,误操作率高 (2) 文本编辑器 Sublime、Emacs、EditPlus等 有些不支持作为客户端连接Hive服务,但支持SQL语法环境,那就在编辑器中开发

    2024年02月12日
    浏览(48)
  • Hive的基本SQL操作(DDL篇)

    目录 ​编辑 一、数据库的基本操作 1.1 展示所有数据库 1.2 切换数据库 1.3 创建数据库 1.4 删除数据库 1.5 显示数据库信息 1.5.1 显示数据库信息 1.5.2 显示数据库详情 二、数据库表的基本操作 2.1 创建表的操作 2.1.1 创建普通hive表(不包含行定义格式) 2.1.2 创建自定义行

    2024年02月07日
    浏览(39)
  • 微信小程序入门03-搭建权限系统,建库建表

    我们准备零基础搭建一个小程序,小程序分为两部分,一个是用户访问的程序,可以是小程序也可以是H5。另外一个就是管理员使用的管理后台,后台第一个要实现的就是搭建权限系统。为了搭建权限系统,我们先需要梳理概念 我们首先问一下chatgpt如何设计一个权限系统 设

    2024年02月09日
    浏览(42)
  • 一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句

    由于Hive处理好的结果数据要同步到ClickHouse中,因此需要在在海豚调度器中执行ClickHouse的ADS层的建库建表语句 1、直接在海豚中创建执行SQL文件脚本的工作流 (1)第一步,在资源中心上传ADS层的建库建表SQL文件 (2)第二步,在项目里建工作流,添加运行SQL文件的脚本 #! /b

    2024年02月07日
    浏览(45)
  • 建库、建表、修改表、复制表、字符类型、数值类型、枚举类型、日期时间类型、检索目录、数据导入命令、数据导入步骤、数据导出命令、非空、默认值、唯一索引

    1.1 问题 建库练习 建表练习 修改表练习 1.2 方案 在MySQL50主机完成练习。 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:建库练习 库名命名规则: 仅可以使用数字、字母、下划线、不能纯数字 区分字母大小写, 具有唯一性 不可使用MySQL命令或特殊字符 命令操作如下

    2024年01月17日
    浏览(57)
  • 建库、建表、修改表、复制表、字符类型、数值类型、枚举类型、日期时间类型、检索目录、数据导入命令、数据导入步骤、数据导出命令、非空、默认值、唯一索

    Top 案例1:表管理 案例2:数据类型 案例3:数据批量处理 案例4:表头基本约束 1.1 问题 建库练习 建表练习 修改表练习 1.2 方案 在MySQL50主机完成练习。 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:建库练习 库名命名规则: 仅可以使用数字、字母、下划线、不能纯

    2024年02月12日
    浏览(44)
  • MySQL——DQL union合并、limit限制与DDL建表和删表

    一、Union 合并 union:是实现两个查询结果的合并。 例如:当我们查询员工名字为manager 和 salesman的员工名字和 工作? select e.ename,e.job from emp e where e.job=\\\'manager\\\' or e.job = \\\'salesman\\\'; select e.ename,e.job from emp e where e.job in(\\\'manager\\\',\\\'salesman\\\'); 以上两条cmd 命令查询结果是一样的: 但什么的

    2024年02月09日
    浏览(35)
  • hive建表,与插入数据

    思路,hive导入分区表,只能通过临时表导入。 固建立临时表(不分区),导入数据到临时表,创建分区表,通过【insert 分区表 select 临时表】 导入分区表 打开hue或者直接hive ----------------------------- 创建分区表 ----------------------------- 外部表external 以日期进行分区partitioned 数据

    2024年02月10日
    浏览(43)
  • 解决hive建表中文乱码问题

    一、解决hive建表中文乱码问题 问题: 关于中文乱码问题,我们可以从以下几个方面进行考虑: (1)判断hive表的存储格式是否是UTF-8: 如果hive表的存储格式不是UTF-8,也会导致中文乱码。 (2)判断输入的数据,其编码格式是否是中文字符集UTF-8: hive默认使用UTF-8编码,如

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包