Hive建表以及导入数据
目录
一:内部表和外部表
1:外部表
2:外部表
3:外部表和内部表区别
二:上传数据方式
一:内部表和外部表
1:外部表
内部表基础建表语句一:(默认指定文件类型为TextFile,HDFS路径为/user/hive/warehouse/库/下)
格式:
create table 表名
(
字段名1 字段类型1,
字段名2 字段类型2,
...
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符'; // 必选指定列之间的分隔符
分隔符与真实数据不一样能读出来数据把第一行数据当成一个字段 其他为null
内部表基础建表语句二:(HDFS路径为/user/hive/warehouse/库/下)
格式:
create table 表名
(
字段名1 字段类型1,
字段名2 字段类型2,
...
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符
STORED AS file_format;
概述:
STORED AS:指定具体的从HDFS获取数据的格式,格式不匹配无法获取(默认为TextFile)
内部表基础建表语句三:(HDFS路径默认为/user/hive/warehouse/库/下)
格式:
create table 表名
(
字段名1 字段类型1,
字段名2 字段类型2,
...
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符
STORED AS file_format
location 'HDFS路径';
概述:
location:表示指定hive数据在hdfs的路径, 如果路径不存在会自动创建,存在就直接绑定(并且可以读取下面的数据),不能通过hdfs路径判断是否是hive表
两张表可以绑定同一个路径 看所在位置要从建表详情
注意:
默认情况下 删除表会把数据也删除(先有数据再有表也会将数据删除)
2:外部表
外部表external(不将数据与表进行绑定)
格式:
create external table 表名
(
字段名1 字段类型1,
字段名2 字段类型2,
...
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '分隔符' // 必选指定列之间的分隔符
STORED AS file_format
location 'HDFS路径';
注意:
删除外部表不会删除HDFS上的数据
加载数据(上传到hive表)
为什么建表选择外部表
可以避免删除表的时候将数据删除,避免数据丢失。
3:外部表和内部表区别
1,外部表的路径可以自定义,内部表的路径需要在 hive/warehouse/目录下
2,删除表后,普通表数据文件和表信息都删除。外部表仅删除表信息
二:上传数据方式
上传数据方式1:
格式:
hadoop dfs -put linux路径 hdfs路径
上传数据方式2:(直接在hive命令行操作)
格式:
dfs -put linux路径 hdfs路径
优点:比在hadoop操作hdfs快的多
上传数据方式3:(直接在hive命令行操作)
格式:
load data inpath '/HDFS路径' into table 表名(自动找到hdfs的路径)
注意:对于hive来说是加载
对于HDFS来说是移动
简单来说就是将hdfs上的数据mv到了表目录中
上传数据方式4:(直接在hive命令行操作)
格式:
load data local inpath '/HDFS路径' into 表名(自动找到hdfs的路径)
注意:从本地上传数据 不是mv相当于put
从本地复制
上传数据方式5:(直接在hive命令行操作)
格式:
create table 表名 as 查询语句
注意:只能创建内部表
注意新建表不允许是外部表。
select后面表需要是已经存在的表,建表同时会加载数据。
会启动mapreduce任务去读取源表数据写入新表
上传数据方式6:(直接在hive命令行操作)
格式:
insert [overwriter] into 表名 查询语句 追加
insert overwrite table 表名 查询语句 覆盖
注意:数据对数据,会有格式的转化
注意:
1,如果建表语句没有指定存储路径,不管是外部表还是内部表,存储路径都是会默认在hive/warehouse/xx.db/表名的目录下。
加载的数据如果在HDFS上会移动到该表的存储目录下。注意是移动,移动,移动。不是复制
2,删除外部表,文件不会删除,对应目录也不会删除
Hive建表以及导入数据相关推荐
- hive建表语句_Hive数据如何同步到MaxCompute之实践讲解
摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute.MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的 ...
- Hive建表及插入数据浅析
通过已有表创建新表(仅创建表结构) create table new_table like old_table; 通过已有表创建新表,并复制已有表数据 create table new_table a ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- CC00053.pbpositions——|HadoopPB级数仓.V11|——PB数仓.v11|核心交易分析|DIM层建表|加载数据|
一.DIM层建表加载数据:DIM层建表加载数据概述 ### --- 首先要确定哪些是事实表.哪些是维表.绿色的是事实表,灰色的维表~~~ 用什么方式处理维表,每日快照.拉链表? ~~~ 小表使用每日快 ...
- hive建表与mysql建表的区别
现在大数据时代我们一般企业里都会将数据存储在hadoop这样的分布式系统里,我们可以编写hive-sql对数据进行分析,但是一般的业务系统是基于mysql这样的关系型数据库来进行可视化的,所以将hiv ...
- 【Hive】Hive建表基本语法及解释
Hive建表基本语法 CREATE [EXTERNAL] TABLE [IF NOT EXIST] table_name [(col_name data_type [COMMENT COL_COMME ...
- hive建表的标准格式及其建表属性详解1
Hive建表是学习使用hive的第一步,然后才能基于表对hive数据仓库进行操作.学习建表前,首先要知道hive表的构建属性 ,知道哪些属性是固定的,哪些属性是可以定制的等等. 一.标准hql建表语法 ...
- Hive建表高阶语句、Hive视图
Hive建表高阶语句.Hive视图 Hive建表高阶语句 - CTAS and WITH 创建临时表 Hive视图(Views) 视图概述 应用场景 Hive视图操作 Hive侧视图(Lateral ...
- 数据库-表中导入数据-insert
表中导入数据 在表中导入数据的方式有两种 第一种:将以上数据整理成SQL语句,insert into pet.... 第二种:通过加载文件的方式将数据导入到表中 1.创建一个pet.txt的文件(注: ...
最新文章
- 从根因入手,更有效率,效果也更好
- mysql隔离级别 简书_InnoDB 事务隔离级别(Mysql篇)
- Python环境下的数据库编程
- wxWidgets:常用对话框演示
- Java GUI中实现文件拷贝
- docker 部署nginx 使用keepalived 部署高可用
- [Qt入门]模态和非模态对话框创建
- h3c的gpu安装linux系统,h3c服务器u盘安装linux系统安装
- jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
- Leetcode刷题记录[java]——561 Array Partition I
- ps文字换行_零基础一周内熟悉使用PS基础工具【Photoshop教程二】
- idea卡顿的解决方法_《王者荣耀》卡顿及无法下载资源解决方法说明 5周年祈愿活动出错了怎么办...
- 一文看懂网卡驱动原理及移植方法
- js动态添加元素时绑定onclick函数
- 文本摘要 ACL2021
- virtualbox中linux设置NAT和Host-Only上网(实现双机互通同时可上外网)
- 使用fswebcam报错Error selecting input 0 VIDIOC_S_INPUT: Device or resource busy或者使用metion监控,画面为灰色
- [Java]保留数值后2位的几种方法
- TOP 云平台虚拟机内外网互通
- android studio manifest merger failed,android studio 引用第三方工程Manifest merger failed