• hive进阶学习的总结


      hive的安装和MySQL的安装以及关联,这里不再赘述,本章主要讲一下hive2的使用以及一些需要注意的问题。

    一.因为现在hive已经不能满足人们更高的需求了,所以hive2成为了主流的应用查询和计算工具。hive将MapReduce的源代码进行封装,

    通过写sql语句将其以MapReduce的方式进行运算。但缺少了执行过程的逻辑性,所以利弊各有。

    1、  现在我们用beeline进行连接jdbc进行操作。

    首先连接hiveserver2,可以后台运行,如果需要看到执行进程,可另外新建窗口连接;然后连接beeline,进入后,我们连接jdbc,默认端口为10000端口———!connect jdbc:hive2://机名:10000

      输入相应设置的连接名和连接密码后,可以正常实用beeline并连接到数据库。

    2.先看看我们有哪些数据库:show databases; 也可建立新的数据库:create database 名;

     实用数据库: use 数据库名;    显示数据表: show tables;或创建。

    3.创建表

    创建表只要学过数据库的问题都不大,额外要会对文本进行考量。

    你要知道所创建的表用来存放哪些数据的;这些数据都是什么类型的;字段之间用什么进行分割的;最后是以什么文本形式存在的。

    create table if not exists emp_basic (
    emp_id int,
    quit_date date
    )
    row format delimited
    fields terminated by ','
    stored as textfile;

      当然,对于文本的定义,可能还会出现array数组、map键值对、集合collection等,都需要我们对其进行规则定力。

    4、内部表和外部表的区别

    正常的建表大都是内部表。外部表的建立有明显特征,创建语句含external,且有固定存储的独立路径 location 。

    区别:内部表---具有处置权,可以进行正常的增删改查。经验用于统计,查询,修改数据等操作;

       外部表---只能进行相应的查询,增加只会独立新的模块,本身不变化。经验用于数据分享。

        这样符合了HDFS的那句话:文件都是   ----   一次写入,多次读取。

    5、分区partition

      分区分桶都有开启的模式,百度即可。

    创建分区表分为静态分区和动态分区。

    静态分区:在创建表的时候就创建好分区,数据依据分区写入。分区单一,需要手动添加。如   

    create table m1(
    id int,
    name string)
    partitionde by(id)
    row format .....

    动态分区:是在传入数据的过程中产生分区,分区自动生成,省去了许多。如

    insert overwrite table par
    partition(sex='man',dt)
    select name, nation, dt
     from par_tab;

    6.分桶bucket

    对于每一个表或者分区,可以进一步细分成桶,桶是对数据进行更细粒度的划分。

    clusterd by(id) into 4 buckets是关键字段,意思是按照哪个列分为几桶。

    查询可以根据分开的桶进行查询,提速查询结果;

  • 相关阅读:
    [JSOI2015]染色问题
    [ZJOI2016]小星星
    [BZOJ4361]isn
    [BZOJ4043/CERC2014]Vocabulary
    [BZOJ3622]已经没有什么好害怕的了
    [BZOJ2958]序列染色
    [SDOI2013]spring
    [Usaco2012 Nov]Concurrently Balanced Strings
    php常用函数集合
    制作item和category的mvc视图总结
  • 原文地址:https://www.cnblogs.com/qianshuixianyu/p/9455762.html
Copyright © 2020-2023  润新知