草庐IT

hive常用的授权命令

创建角色createrolerole_name;例子:createroleabc_read_role;删除角色droprolerole_name;例子:droproleabc_read_role;显示所有角色showroles;把整个库授权给某一个角色查询权限(给所有权限,把select替换成all)grantselectondatabasedbname_dbtorole_name;例子:grantselectondatabaseabc_dbtoabc_read_role;把某一个表授权给某一个角色查询权限(给所有权限,把select替换成all)grantselectontabletable

Hive执行计划之只有map阶段SQL性能分析和解读

目录目录概述1.不带函数操作的select-from-where型简单SQL1.1执行示例1.2运行逻辑分析1.3伪代码解释2.带普通函数和运行操作符的普通型SQL执行计划解读2.1执行计划解读2.2伪代码解释逻辑概述可能所有的SQLboy刚接触SQL语句的时候都是selectxxxfromxxxwherexxx。在hive中,我们把这种语句称为select-from-where型语句,也可称为简单SQL,这类简单SQL是特指不含有变转换函数,聚合函数,开窗函数和连接操作的SQL语句。这类SQL主要特征是只有map阶段,没有reduce阶段。本文分析一下这类简单SQL执行计划和性能,让我们从最

mySQL和Hive的区别

SQL和HQL的区别整体1、存储位置:Hive在Hadoop上;Mysql将数据存储在设备或本地系统中;2、数据更新:Hive不支持数据的改写和添加,是在加载的时候就已经确定好了;数据库可以CRUD;3、索引:Hive无索引,每次扫描所有数据,底层是MR,并行计算,适用于大数据量;MySQL有索引,适合在线查询数据;4、执行:Hive底层是MapReduce;MySQL底层是执行引擎;5、可扩展性:Hive:大数据量;MySQL:相对就很少了。SQL执行顺序:from->where->groupby->having->select->orderby->limit语法内容SQLHive非等值连接

Apache Hive SQL DQL

HiveSQL--DQL-Selectselect语法树SELECT[ALL|DISTINCT]select_expr,select_expr,...FROMtable_referenceJOINtable_otherONexpr[WHEREwhere_condition][GROUPBYcol_list[HAVINGcondition]][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBY|ORDERBYcol_list]][LIMITnumber]不管是写select语句还是看select语句,==from关键字==及后面的表是最重要;其后面的表

Hive架构简述及工作原理

一、什么是Hive?  Hive是基于Hadoop的一个数据仓库管理工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL(HQL)查询功能。本质是将SQL转换为MapReduce程序(默认)。  直接使用HadoopMapReduce处理数据所面临的问题:学习成本高,MapReduce实现复杂查询功能开发难度大,使用Hive接口采用类SQL语法,提供快速开发的能力避免了去写MapReduce,减少开发人员的学习成本功能。二、Hive架构及组件用户接口:包括CLI、JDBC/ODBC、WebGUI。其中,CLI(commandlineinterface)为Shell命令行;JDBC/O

大数据Doris(三十八):Spark Load 导入Hive数据

文章目录SparkLoad导入Hive数据一、SparkLoad导入Hive非分区表数据1、在node3hive客户端,准备向Hive表加载的数据2、启动Hive,在Hive客户端创建Hive表并加载数据3、在Doris中创建Hive外部表4、创建Doris表5、创建SparkLoad导入任务6、SparkLoad任务查看7、查看Doris结果二、SparkLoad导入Hive分区表数据1、在node3hive客户端,准备向Hive表加载的数据2、创建Hive分区表并,加载数据3、创建Doris分区表4、创建SparkLoad导入任务5、SparkLoad任务查看6、查看Doris结果Spar

hive表新增字段,指定新增字段位置,删除字段

背景:项目中,客户使用hive内表,由于逻辑变更,原hive表结构需要调整,新增字段。一、新增字段遇到hive表新增字段,以往建表都是建外表,直接drop后,重新创建。由于这次全部使用内表创建的,所以使用addcolumn功能新增字段。altertabledatabase.table_nameaddcolumns(col_typestringcomment'类型');但是发现,如果已经存在记录的情况下覆盖写入,新添加的字段任然为NUll。如果是新的记录,则可以写入。注意:如果创建的是分区表,则在添加新字段时,必须要带上cascade,否则该字段无法进入数据。根本原因是元数据中带分区表的元数据和

Hive SQL常用函数

一、日期函数1、将时间戳转化为日期from_unixtime(bigintunixtime,stringformat)举例:from_unixtime(1237573801,‘yyyy-MM-ddHH:mm:ss’)常用stringformat格式‘yyyy-MM-ddHH:mm:ss’年月日时分秒格式‘yyyy-MM-ddHH:mm’年月日时分格式‘yyyy-MM-ddHH’年月日时格式‘yyyy-MM-dd’年月日格式2、将日期转化为时间戳unix_timestamp(stringdate)举例:unix_timestamp(‘2020-01-0106:06:00’,‘yyyy-MM-dd

mysql - 动态分区 + 在 HIVE 上创建为

我正在尝试使用CREATEAS和HiveCLI上的动态分区从另一个表创建一个新表。我正在从Hive官方wiki学习,那里有这个例子:CREATETABLET(keyint,valuestring)PARTITIONEDBY(dsstring,hrint)ASSELECTkey,value,ds,hr+1hr1FROMsrcpartWHEREdsisnotnullAndhr>10;但是我收到了这个错误:FAILED:SemanticException[Error10065]:CREATETABLEASSELECTcommandcannotspecifythelistofcolumnsfo

mysql - 动态分区 + 在 HIVE 上创建为

我正在尝试使用CREATEAS和HiveCLI上的动态分区从另一个表创建一个新表。我正在从Hive官方wiki学习,那里有这个例子:CREATETABLET(keyint,valuestring)PARTITIONEDBY(dsstring,hrint)ASSELECTkey,value,ds,hr+1hr1FROMsrcpartWHEREdsisnotnullAndhr>10;但是我收到了这个错误:FAILED:SemanticException[Error10065]:CREATETABLEASSELECTcommandcannotspecifythelistofcolumnsfo