hivesql怎么获取上一个月月份

hivesql怎么获取上一个月月份,第1张

hivesql sql — 获取指定hive表或指定文件所hive表DDL按区则默认执行近7区DDL同table支持符合sql语则表达式表匹配则提示用户选择(使用file则自关闭该交互功能)。

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。另外一个是Windows注册表文件。

依赖第三方组件: Meta store(mysql),hdfs,MapReduce

hive:

Client客户端 CLI、JDBC

Driver连接客户端与服务端的桥梁

SQL Pareser解析器,将SQL转换为抽象语法树AST

1将HQL语句转换为Token

2对Token进行解析,生成AST

Physical Plan编译器将AST编译生成逻辑执行计划

Query Optimizer优化器,对逻辑执行计划进行优化

1将AST转换为QueryBlock

2将QueryBlock转换为OperatorTree

3OperatorTree进行逻辑优化

4生成TaskTree

5TaskTree执行物理优化

Execution执行器把逻辑执行计划转换成可以运行的物理计划

1获取MR临时工作目录

3定义Mapper和Reducer

2定义Partitioner

4实例化Job

5提交Job

1以Antlr定义的语法规则,对SQL完成词法解析,将SQL转换为AST

2遍历AST,抽象出查询基本组成单元QueryBlock。

3遍历QueryBlock,将其转换为OperatorTree,逻辑执行单元

4利用逻辑优化器对OperatorTree进行逻辑优化。

5遍历OperatorTree转换为TaskTree,将逻辑执行计划转化为物理执行计划

6使用物理优化器对TaskTree进行物理优化

7生成最终的执行计划,提交执行

$HIVE_HOME/bin/hive可以进入客户端

$HIVE_HOME/bin/hive -e "{SQL语句}"可以执行SQL语句

$HIVE_HOME/bin/hive -f {SQL文件名sql}可以执行sql文件

开启hiveserver2服务,可以通过JDBC提交SQL

创建Driver

创建OptionsProcessor

初始化log4j

标准输入输出以及错误输出流的定义,后续需要输入 SQL 以及打印控制台信息

解析输入的参数,包含"-e -f -v -database"

读取输入的sql

按照";"分割的方式解析

解析单行SQL

遇到为"quit"或者"exit"退出

遇到为"source"开头,执行 SQL 文件,读取文件并解析

如果命令以"!"开头,则表示用户需要执行 shell命令

以上三种都不是的情况下执行SQL,进行SQL解析

获取当前系统时间

获取系统结束时间

编译SQL语句

SQL生成AST,构建词法解析器,将关键词替换为TOKEN,进行语法解析,生成最终AST

处理AST,转换为QueryBlock然后转换为OperatorTree,对Operator进行逻辑优化,然后转换为任务树,然后进行物理优化。

根据任务树构建MrJob

添加启动任务,根据是否可以并行来决定是否并行启动Task

设置MR任务的InputFormat、OutputFormat 等等这些 MRJob 的执行类

构建执行MR任务的命令

向yarn提交任务

打印头信息

获取结果集并获取抓取到的条数

打印SQL执行时间及数据条数

Hive中给的时间戳函数不多,加上公司的数据仓库还不完全支持。

在计算5天前的时间戳的时候,我的第一次写法是:

但是后来发现这样写行不通,主要问题是date_sub这个函数只返回日期,没有时间。

后来发现可以直接用当时的时间戳减去5天的秒数,真的是2了,这个之前没想到。

以上就是关于hivesql怎么获取上一个月月份全部的内容,包括:hivesql怎么获取上一个月月份、hive核心组件及流程(一)、Hive SQL计算5天前的时间戳等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9594089.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存