`
cumtheima
  • 浏览: 255948 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hive学习总结(9)—数据库创建、表创建、加载数据

    博客分类:
  • Hive
阅读更多

--创建数据库

create database if not exists sopdm

comment ‘this is test database’

with dbproperties(‘creator’=’gxw’,’date’=’2014-11-12’)     --数据库键值对属性信息

location ‘/my/preferred/directory’;

 

 

--查看数据库的描述信息和文件目录位置路径信息

describe database sopdm;

--查看数据库的描述信息和文件目录位置路径信息(加上数据库键值对的属性信息)

describe database extended sopdm;

 

--删除数据库

drop database if exists sopdm;

--级联删除数据库(当数据库还有表时,级联删除表后在删除数据库),默认是restrict

drop database if exists sopdm cascade;

 

--修改数据库

--只能修改数据库的键值对属性值。数据库名和数据库所在的目录位置不能修改

alter database sopdm set dmproperties(‘edited-by’=’gaoxianwei’);

 

--创建表

--其中tblproperties作用:按照键值对的格式为表增加额外的文档说明,也可用来表示数据库连接的必要的元数据信息

--hive会自动增加二个表属性:last_modified_by(最后修改表的用户名)last_modified_time(最后一次修改的时间)

create table if not exists sopdm.test1(name string comment ‘姓名’,salary float comment ‘薪水’)

comment ‘这是一个测试的表

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

--查看和列举表的tblproperties属性信息

show tblproperties table_name;

 

 

--使用like在创建表的时候,拷贝表模式(而无需拷贝数据)

create table if not exists sopdm.test2 like sopdm.test1;

 

 

--查看表的详细结构信息(也可以显示表是管理表,还是外部表。还有分区信息)

describe extended sopdm.test1;

--使用formatted信息更多些,可读性更强

describe formatted sopdm.test1;

 

 

--创建外部表

--删除表时,表的元数据会被删除掉,但是数据不会被删除

--如果数据被多个工具(如pig等)共享,可以创建外部表

create external table if not exists sopdm.test1(

name string comment ‘姓名’,

salary float comment ‘薪水’)

comment ‘这是一个测试的表

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

 

--分区表

create table if not exists sopdm.test1(

name string comment ‘姓名’,

salary float comment ‘薪水’)

comment ‘这是一个测试的表

partitioned by(country string,state string)

STORED AS rcfile

tblproperties(‘creator’=’me’,’created_at’=’2014-11-13 09:50:33’)

location ‘/user/hive/warehouse/sopdm.db/test1’

 

 

--查看表中存在的所有分区

show partitions table_name;

--查看表中特定分区

show partitions table_name partition(country=’US’);

 

 

--可以在表载入数据的时候创建分区

load data local inpath ‘${env:HOME/employees}’

into table employees

partition(country=’US’,state=’CA’);

 

 

--删除表

drop table if exists table_name;

 

 

--修改表-表重命名

alter table old_table_name rename to new_table_name;

 

--增加分区

alter table table_name add if not exists partition(year=2011,month=1,day=1)

location ‘/logs/2011/01/01’;

 

--修改分区存储路径

alter table table_name partition(year=2011,month=1,day=2)

set location ‘/logs/2011/01/02’;

 

--删除某个分区

alter table table_name drop if exists partition(year=2011,month=1,day=2);

 

--修改列信息

alter table table_name

change column old_name new_name int

comment ‘this is comment’

after severity;         --字段移到severity字段之后(移动到第一个位置,使用first关键字)

 

--增加列

alter table table_name add columns(app_name string comment ‘application name’);

 

--删除或者替换列

alter table table_name replace columns(hms int comment ‘hhh’);

 

--修改表属性

alter table table_name set tblproperties(‘notes’=’this is a notes’);

 

--修改存储属性

alter table table_name partition(year=2011,month=1,day=1) set fileformat sequencefile;

 

--指定新的SerDe,并指定SerDe属性

alter table table_name

set serde “com.example.JSONSerDe”

with serdeproperties(‘prop1’=‘value1’, ‘prop2’=‘value2’);

 

--增加执行钩子”——当表中存储的文在hive之外被修改了,就会触发钩子的执行

alter table table_name touch partition(year=2012,month=1,day=1);

 

--将分区内的文件打成hadoop压缩包文件,只会降低文件系统中的文件数,减轻NameNode的压力,而不会减少任何的存储空间

--使用unarchive替换archive起到反向操作

alter table table_name archive partition(year=2012,month=1,day=1);

 

--防止分区被删除和被查询(使用enable替代disable可以起到反向的操作目的)

alter table table_name partition(year=2012,month=1,day=1) disable no_drop;

alter table table_name partition(year=2012,month=1,day=1) disable offline;

 

 

--向管理表中装载数据

-- inpath为一个目录,而且这个路径下不可以包含任何文件夹

load data local inpath ‘${env:HOME}/table_name’

overwrite into table table_name

partition(country=’US’);

 

 

--通过查询语句向表中插入数据

--overwrite是覆盖,into是追加

insert overwrite table table_name

partition(country=’US’)

select * from table_name2 tn where tn.cnty=’US’

 

 

--高效方式-查询语句插入多个分区

from table_name2 tn

insert overwrite table table_name

partition(country=’US’,state=’OR’)

         select * where tn.cnty=’US’ and tn.st=’OR’

insert overwrite table table_name

partition(country=’US’,state=’CA’)

         select * where tn.cnty=’US’ and tn.st=’CA’

 

 

--动态插入分区

--hive根据select语句最后2列确定分区字段countrystate的值(根据位置

insert overwrite table table_name

partition(country,state)

select …,se.cnty,se.st

from employees se;

 

--动态和静态分区结合

--country为静态分区,state为动态分区(静态分区必须在动态分区之前)

insert overwrite table table_name

partition(country=‘US’,state)

select …,se.cnty,se.st

from employees se

where se.cnty=’US’;

 

 

--单个查询语句中创建表并加载数据

create table table_name1

as select name,salary,address from table_name2 where state=’CA’;

 

 

--导出数据——拷贝文件

--如果数据文件恰好是用户需要的格式,那么只需要简单的拷贝文件或文件夹就可以。

hadoop fs –cp source_path target_path

 

 

--导出数据

insert overwrite local directory ‘/tmp/employees’

select name,salary,address from employees se where se.state=’CA’

 

--导出数据到多个输出文件夹

from employees se

insert overwrite local directory ‘/tmp/or_employees’

         select * se where se.cty=’US’ and se.st=’OR’

insert overwrite local directory ‘/tmp/ca_employees’

         select * se where se.cty=’US’ and se.st=’CA’

 

3
1
分享到:
评论

相关推荐

    基于Hadoop的数据仓库Hive学习指南.doc

    Hive将结构化的数据文件映射为数据库表,提供了类似于SQL的查询语言HiveQL,便于数据分析。 2. **Hive的出现原因**:Hive的诞生是为了应对SQL技术人员在Hadoop上进行大数据分析的需求,以及传统数据库格式向Hadoop...

    《Hive数据仓库案例教程》教学大纲.pdf

    Hive作为一个基于Hadoop的数据仓库工具,它的主要功能是将结构化的数据文件映射为数据库表,并提供SQL-like查询功能,方便用户对大规模数据进行批处理分析。 课程内容分为十一个章节,涵盖了从基础理论到实际操作的...

    kettle 从oracle数据库导数据到hive 表

    1. **新建转换**:在 Kettle 中创建一个新的转换,用于从 Oracle 数据库抽取数据至 Hive 表。 - **配置 Hadoop 连接**:指定 Hadoop 集群的主机名(例如:192.168.0.180)、Hive 数据库名称(例如:jykj)、端口号...

    hive的学习资料

    从外部文件系统加载数据到 Hive 表。 2.6 Insert 包括插入数据、写入文件系统、插入顺序和初始值设定。 2.7 Cli Hive 命令行选项、交互式 Shell 命令及资源调用。 **3. Hive 其他操作** 包括 Limit、Top k、...

    Hive学习总结及应用.pdf

    《Hive学习总结及应用》 Hive,作为大数据处理领域的重要工具,是构建在Hadoop生态系统之上的一种数据仓库工具,旨在提供SQL-like查询语言(HiveQL)以简化对大规模分布式数据集的操作。它的核心功能是将结构化的...

    hive环境搭建和建表加载数据

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。下面详细地介绍这些知识点。 首先,Hive环境搭建是使用Hive之前必须完成的步骤。搭建过程中,首先需要下载...

    电影票房数据分析-hive代码

    知识点3:Hive表创建 在Hive中,创建表需要指定表名、字段名、字段类型等信息。在该资源中,我们创建了多个表,包括moviecleaned、top10_boxoffice、boxoffice_national_day、day_max_boxoffice等,每个表的字段...

    hadoop Hive学习配套数据

    在学习过程中,你可以通过创建表、加载数据、执行查询、分析结果,从而提升对Hive的理解。 总结来说,Hadoop Hive学习配套数据是一个宝贵的资源,它可以帮助你在实践中掌握Hive的各种特性和用法。通过对这些数据库...

    项目实战——Spark将Hive表的数据写入ElasticSearch(Java版本)

    在从Hive加载数据到Spark后,可能需要对数据进行清洗、转换和格式化,以适应ElasticSearch的索引结构。这可以通过Spark DataFrame的操作来完成,例如选择字段、过滤记录、聚合数据等。 4. **ElasticSearch数据导入...

    jdbc连接hive数据库的驱动jar包

    Hive JDBC驱动的使用不仅限于基本的查询操作,还可以执行DML(数据操纵语言)语句如INSERT、UPDATE和DELETE,以及DDL(数据定义语言)语句来创建或修改表结构。此外,Hive JDBC还支持事务管理和元数据查询,为Java...

    02hive学习总结及应用.pdf

    【Hive 学习总结及应用】 Hive 是一个基于 Hadoop 的数据仓库工具,它提供了 SQL-like 的查询语言——HiveQL,使得用户能够方便地处理存储在 HDFS 上的大规模数据集。Hive 旨在简化数据ETL(提取、转换、加载)流程...

    HIVE创建库创建表.docx

    首先,创建Hive数据库分为两种情况,即使用`location`和不使用`location`。当使用`location`关键字时,我们可以指定数据库在HDFS上的存储位置,例如创建名为`location_hyy_db`的数据库并设置自定义的位置`spe_db_db`...

    13-Hive基本操作1

    使用`CREATE DATABASE`语句可以创建新的Hive数据库。例如,`CREATE DATABASE DB`将创建一个名为DB的新数据库。如果希望避免因数据库已存在而引发的错误,可以使用`IF NOT EXISTS`关键字,如`CREATE DATABASE IF NOT...

    阿里巴巴Hive学习笔记.docx

    《阿里巴巴Hive学习笔记》是基于阿里巴巴内部分享的资料,主要涵盖了Hive的基本结构、与Hadoop的关系、元数据库管理以及基本操作等方面,为初学者提供了深入理解Hive的全面指南。 1. **Hive结构** - **Hive架构**...

    用于Hive学习的数据

    通过实际操作这些数据,学习者可以掌握如何创建Hive表、加载数据、执行SQL查询以及进行数据清洗和分析。 在提供的压缩包子文件中: 1. **guilivideo.rar**:这可能是一个包含视频访问记录的压缩文件,通常这些记录...

    基于 Hive的数据分析案例 -MM聊天软件数据分析

    在 Hive 中,我们首先创建数据库 db_msg,然后创建表 tb_msg_source,表结构包括消息发送时间、发件人信息、发件人手机型号、手机系统、地理位置等字段。然后,我们使用 load 语句将数据加载到 tb_msg_source 表中。...

    hive介绍 安装 和 mysql 数据库的安装

    ### Hive介绍 Hive是一种构建在Hadoop之上的数据仓库工具,主要用来进行数据提取、...总结来说,数据仓库更注重于历史数据的存储和分析,而数据库更侧重于日常事务处理。两者在架构设计、性能优化等方面存在明显差异。

    PDPS数据库创建脚本

    9. **脚本自动化**:为了方便重复部署或升级,数据库创建脚本通常会设计成自动化执行的形式,通过shell脚本或自动化工具如Ansible、Jenkins等进行操作。 10. **错误处理和日志记录**:在执行脚本过程中,错误处理和...

    9_大数据分析之hive学习.zip

    学习Hive,你需要掌握如何创建表、加载数据、执行查询以及导出结果。例如,创建分区表能优化查询性能,而JOIN操作则用于合并不同表中的数据。 Hive的函数应用是其功能强大的体现。内置函数涵盖了数学运算、字符串...

    Hive学习笔记

    此外,Hive还支持视图创建、数据加载、查询执行等功能,极大地方便了数据的管理和分析。 #### HIVE UDF与优化技巧 Hive的用户定义函数(UDF)和用户定义表函数(UDTF)为数据处理提供了高度定制化的解决方案。例如,`...

Global site tag (gtag.js) - Google Analytics