hive--数据仓库 (2)

  做统计的时候少统计,把我们的数据放在多个文件夹里边,我们统计时候,可以指定分区,这样范围就会小一些,这样就减少了运行的时间。

1.1.10 Hive 的所有跟数据相关的概念

db: myhive,   table: student     元数据:hivedb

Hive的元数据指的是 myhive 和 student等等的库和表的相关的各种定义信息,该元数据都是存储在mysql中的:

myhive是hive中的一个数据库的概念,其实就是HDFS上的一个文件夹,跟mysql没有多大的关系;

myhive是hive中的一个数据库,那么就会在元数据库hivedb当中的DBS表中存储一个记录,这一条记录就是myhive这个hive中数据的相关描述信息。

hive中创建一个库,就相当于是在hivedb中DBS(数据库)中插入一张表, 并且在HDFS上建立相应的目录—主目录;

hive中创建一个表,就相当于在hivedb中TBLS(数据库中的表)表中插入一条记录,并且在HDFS上项目的库目录下创建一个子目录;

一个hive数据仓库就依赖于一个RDBMS(关系数据库管理系统)中的一个数据库,一个数据库实例对应于一个Hive数据仓库;

存储于该hive数据仓库中的所有数据的描述信息,都统统存储在元数据库hivedb中。

Hive元数据 :描述和管理这些block信息的数据,由namenode管理,一定指跟 hivedb相关,跟mysql相关;

Hive源数据-- block块: HDFS上的对应表的目录下的文件HDFS上的数据和元数据。

1.1.11 源数据与元数据

myhive 和  hivedb的区别:

myhive是hive中的数据库: 用来存储真实数据—源数据;

hivedb是mysql中的数据库: 用来多个类似myhive库的真实数据的描述数据—元数据;

1.1.12 Hive基本命令整理

创建表:CREATE TABLE pokes (foo INT, bar STRING);
        Creates a table called pokes with two columns, the first being an integer and the other a string

创建一个新表,结构与其他一样
hive> create table new_table like records;

创建分区表:
hive> create table logs(ts bigint,line string) partitioned by (dt String,country String);

加载分区表数据:
hive> load data local inpath '/home/hadoop/input/hive/partitions/file1' into table logs partition (dt='2001-01-01',country='GB');

展示表中有多少分区:
hive> show partitions logs;

展示所有表:
hive> SHOW TABLES;
        lists all the tables
hive> SHOW TABLES '.*s';

lists all the table that end with 's'. The pattern matching follows Java regular
expressions. Check out this link for documentation

显示表的结构信息
hive> DESCRIBE invites;
        shows the list of columns

更新表的名称:
hive> ALTER TABLE source RENAME TO target;

添加新一列
hive> ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
删除表:
hive> DROP TABLE records;
删除表中数据,但要保持表的结构定义
hive> dfs -rmr /user/hive/warehouse/records;

从本地文件加载数据:
hive> LOAD DATA LOCAL INPATH '/home/hadoop/input/ncdc/micro-tab/sample.txt' OVERWRITE INTO TABLE records;

显示所有函数:
hive> show functions;

查看函数用法:
hive> describe function substr;

查看数组、map、结构
hive> select col1[0],col2['b'],col3.c from complex;

其他同oracle相同

1.1.13 hive环境搭建

hive的元数据是存放在mysql中的,首先需要安装mysql数据库;然后修改hive配置文件,主要是数据库用户、密码、hadoop文件存放的路径等等。--请看mysql的环境搭建

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydpz.html