Hive

Hive

0
推荐
54
浏览

【老贝伏枥】 数据库窗口函数-windows function

几乎常用的数据库都具备了SQL常用的窗口函数,比如比较常见的row_number() over()。尤其在hive数据库,灵活使用窗口函数能快速实现代码逻辑并提高执行效率。下面就依次分析几个常用函数的用途。1、排序:ROW_NUMB...

贝克汉姆 发表了文章 • 2018-09-30 22:02

0
推荐
78
浏览

【hive常用函数一】日期函数

使用hive进行数据处理的过程种,遇到不少问题,总结之前的一些开发经验,把之前的一些处理技巧mark一下:使用通用的哑表dual作为测试表用。1、时间戳转换日期格式转换时间戳只能精确到秒(即长度只有10位,而不是...

brucelu 发表了文章 • 2018-09-27 22:18

0
推荐
84
浏览

hive 调度

这个方法适用于存在多个hql脚本,想要统一调度,或者多个hql存在依赖关系的场景逻辑简述:四类文件 1、pkg.sh文件(1个pkg.sh文件),用来调度rpt.sh文件,在linux crontab -e 调度中添加这个文件,用...

liliwu 发表了文章 • 2018-09-11 21:11

7
推荐
392
浏览

实现Hive查询操作HBase中的数据

今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。首先不了解HBase的亲可以看一下我之前写过的一片博文:《白话解说:SQL与NoSQL》https://ask.hello...

马修 发表了文章 • 2018-08-27 19:54

6
推荐
279
浏览

大数据环境-快速安装使用

安装大数据环境的技术博文、甚至视频课在网上有太多太多啦。还是有很多小伙伴很头疼环境安装配置,怎么安装怎么配置,总有出错的地方,都其中最头疼的莫过于Linux系统的操作。认识一个做数据的朋友,他习惯于wind...

马修 发表了文章 • 2018-08-21 14:54

推荐
浏览


k3ho8p 发表了文章 •

推荐
浏览


ecsqfj 发表了文章 •

推荐
浏览


ckmtbv 发表了文章 •

推荐
浏览


ckmtbv 发表了文章 •

推荐
浏览


uudvxe 发表了文章 •

推荐
浏览


ggud76 发表了文章 •

推荐
浏览


ecsqfj 发表了文章 •

推荐
浏览


m4wtm9 发表了文章 •

推荐
浏览


wreqy0 发表了文章 •

条新动态, 点击查看
SQuirrel Sql Client ,这个可以在Windows下对hive进行操作。或者 下载Windows下的Hadoop,然后解压就行
SQuirrel Sql Client ,这个可以在Windows下对hive进行操作。或者 下载Windows下的Hadoop,然后解压就行
Bob

Bob 回答了问题 • 2016-12-29 16:53 • 2 个回复 不感兴趣

请问spark sql 是否支持对hive 外表的插入操作

赞同来自:

可以操作
可以操作
beeline -u "jdbc:hive2://172.16.18.87:10001/default;transportMode=http;httpPath=cliservice" -n spark -e"create \
ta... 显示全部 »
beeline -u "jdbc:hive2://172.16.18.87:10001/default;transportMode=http;httpPath=cliservice" -n spark -e"create \
table insurance_dm.accident_analysis_beeline as select imei,longitude,latitude,data_date,time from dsp_dw.cw_location_trace_new \
where data_date >= 20161210 and longitude > 119.710 and longitude <119.719 and latitude > 37.000 \
and latitude <37.009;"
 
直接写脚本读就是了。如果要在Spark里面读取Hive表,需要在spark中启用hive支持,然后在Spark的conf目录中加入hive的hive-site.xml文件,就能直接使用sql("select * from hivetable")操作了。当然要读取hbase中的数据,建议使用hbase-rdd这样一个开源的插件
regan

regan 回答了问题 • 2017-03-02 10:44 • 1 个回复 不感兴趣

hive查询中毫秒转换为日期用哪个函数?

赞同来自:

日期函数UNIX时间戳转日期函数: from_unixtime语法:   from_unixtime(bigint unixtime[, string format])

返回值: string

说明: 转化UNIX时间戳(从1970-01-01 00:00... 显示全部 »
日期函数UNIX时间戳转日期函数: from_unixtime语法:   from_unixtime(bigint unixtime[, string format])

返回值: string

说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式

举例:

Hive>   select from_unixtime(1323308943,’yyyyMMdd’) from dual;

20111208

获取当前UNIX时间戳函数: unix_timestamp语法:   unix_timestamp()

返回值:   bigint

说明: 获得当前时区的UNIX时间戳

举例:

hive>   select unix_timestamp() from dual;

1323309615

日期转UNIX时间戳函数: unix_timestamp语法:   unix_timestamp(string date)

返回值:   bigint

说明: 转换格式为“yyyy-MM-dd HH:mm:ss“的日期到UNIX时间戳。如果转化失败,则返回0。

举例:

hive>   select unix_timestamp(’2011-12-07 13:01:03′) from dual;

1323234063

指定格式日期转UNIX时间戳函数: unix_timestamp语法:   unix_timestamp(string date, string pattern)

返回值:   bigint

说明: 转换pattern格式的日期到UNIX时间戳。如果转化失败,则返回0。

举例:

hive>   select unix_timestamp(’20111207 13:01:03′,’yyyyMMdd HH:mm:ss’) from dual;

1323234063

日期时间转日期函数: to_date语法:   to_date(string timestamp)

返回值:   string

说明: 返回日期时间字段中的日期部分。

举例:

hive>   select to_date(’2011-12-08 10:03:01′) from dual;

2011-12-08

日期转年函数: year语法:   year(string date)

返回值: int

说明: 返回日期中的年。

举例:

hive>   select year(’2011-12-08 10:03:01′) from dual;

2011

hive>   select year(’2012-12-08′) from dual;

2012

日期转月函数: month语法: month   (string date)

返回值: int

说明: 返回日期中的月份。

举例:

hive>   select month(’2011-12-08 10:03:01′) from dual;

12

hive>   select month(’2011-08-08′) from dual;

8

日期转天函数: day语法: day   (string date)

返回值: int

说明: 返回日期中的天。

举例:

hive>   select day(’2011-12-08 10:03:01′) from dual;

8

hive>   select day(’2011-12-24′) from dual;

24

日期转小时函数: hour语法: hour   (string date)

返回值: int

说明: 返回日期中的小时。

举例:

hive>   select hour(’2011-12-08 10:03:01′) from dual;

10

日期转分钟函数: minute语法: minute   (string date)

返回值: int

说明: 返回日期中的分钟。

举例:

hive>   select minute(’2011-12-08 10:03:01′) from dual;

3

日期转秒函数: second语法: second   (string date)

返回值: int

说明: 返回日期中的秒。

举例:

hive>   select second(’2011-12-08 10:03:01′) from dual;

1

日期转周函数: weekofyear语法:   weekofyear (string date)

返回值: int

说明: 返回日期在当前的周数。

举例:

hive>   select weekofyear(’2011-12-08 10:03:01′) from dual;

49

日期比较函数: datediff语法:   datediff(string enddate, string startdate)

返回值: int

说明: 返回结束日期减去开始日期的天数。

举例:

hive>   select datediff(’2012-12-08′,’2012-05-09′) from dual;

213

日期增加函数: date_add语法:   date_add(string startdate, int days)

返回值: string

说明: 返回开始日期startdate增加days天后的日期。

举例:

hive>   select date_add(’2012-12-08′,10) from dual;

2012-12-18

日期减少函数: date_sub语法:   date_sub (string startdate, int days)

返回值: string

说明: 返回开始日期startdate减少days天后的日期。

举例:

hive>   select date_sub(’2012-12-08′,10) from dual;

2012-11-28
贝克汉姆

贝克汉姆 回答了问题 • 2018-07-15 15:33 • 1 个回复 不感兴趣

hive里的with cube有啥优化方案没有,求思路

赞同来自:

先把最大粒度的查询结果 放到临时表
再做with cube
roll up等操作
先把最大粒度的查询结果 放到临时表
再做with cube
roll up等操作
hive -e 'SELECT * from test_table'
hive -e 'SELECT * from test_table'
Bob

Bob 回答了问题 • 2017-03-14 13:22 • 1 个回复 不感兴趣

数据仓库从MySQL向大数据平台迁移的方案

赞同来自:

数据仓库建议选择使用hive,用hql语句也能完成update delete的操作。
如果仓库是在hive上,那原来的ETL操作 都改为使用hql脚本吧。这个查询语言是类似mysql的语法。
 
迁移的优先级建议先搬迁底层原始数据、然后建立ETL清洗规则,最后... 显示全部 »
数据仓库建议选择使用hive,用hql语句也能完成update delete的操作。
如果仓库是在hive上,那原来的ETL操作 都改为使用hql脚本吧。这个查询语言是类似mysql的语法。
 
迁移的优先级建议先搬迁底层原始数据、然后建立ETL清洗规则,最后搬DW数据。
在搬迁底层数据时建议你hive原始表与mysql的原始表保持结构一致。
用下面的方式试一试~IP=$1
PORT=$2
DB=$3
USERNAME=$4
PASSWORD=$5
TABLE=$6
HIVE_DB=$7
HIVE_TABLE=$8
HDFS_LOCATION=$9
PARTITION_COLUMN=${10}
CO... 显示全部 »
用下面的方式试一试~IP=$1
PORT=$2
DB=$3
USERNAME=$4
PASSWORD=$5
TABLE=$6
HIVE_DB=$7
HIVE_TABLE=$8
HDFS_LOCATION=$9
PARTITION_COLUMN=${10}
CON_DATE=${11}
#format 2017-01-09
n_day=${12}
t_day=`date --date=$n_day '+%s'`
yesterday=$(date -d"yesterday $n_day" '+%s')



HIVE_DB_TABLE=$HIVE_DB.$HIVE_TABLE
MYSQL_JDBC=jdbc:mysql://$IP:$PORT/$DB
PARTITION_PATH=$HDFS_LOCATION/$n_day

echo "--------------------"
echo "--jdbc:mysql://$IP:$PORT/$DB"
echo "--username/password:$USERNAME/$PASSWORD"
echo "--mysql table:$TABLE"
echo "--hive table:$HIVE_DB.$HIVE_TABLE"
echo "--store hdfs:$HDFS_LOCATION"
echo "--partition column:$PARTITION_COLUMN"
echo "--partition path:$PARTITION_PATH"
echo "--increment date column:$CON_DATE"
echo "--schedule date:$n_day"

echo "-----start export------"

echo "select sql: select * from $TABLE where $CON_DATE >= '$yesterday'  and $CON_DATE < '$t_day' and 1=1"
 
sqoop import --connect $MYSQL_JDBC --table $TABLE --username $USERNAME  --password $PASSWORD  -m 10 --append  --hive-import --hive-overwrite --hive-database xxx_dw --hive-table can_schedule_list --hive-partition-key data_date --hive-partition-value $n_day --fields-terminated-by "\0001" --where "$CON_DATE>='$yesterday' and $CON_DATE<'$t_day'
并不是越多越好,你可以这样理解,hive的分区只是一个map的key,很显然要根据key寻找value,其时间复杂度为O(n),key越多遍历找key的时间越长,因此并不是越多越好~
如果你说的是hive以多个字段分区,hive内部只是按这几个字段组建了多个层... 显示全部 »
并不是越多越好,你可以这样理解,hive的分区只是一个map的key,很显然要根据key寻找value,其时间复杂度为O(n),key越多遍历找key的时间越长,因此并不是越多越好~
如果你说的是hive以多个字段分区,hive内部只是按这几个字段组建了多个层级的目录。也不是层级目录越多越好,遍历目录的时间复杂度也是O(n)
MarsJ

MarsJ 回答了问题 • 2017-03-27 16:11 • 1 个回复 不感兴趣

hive 日期格式转换

赞同来自:

以空格分隔取子串,例如取出最后4个长度的为年,然后case when判断出具体的 月、日。或者写UDF去转换,你可以看一下Hive课程中的视频(https://edu.hellobi.com/course/136),有UDF部分,也有日志分析,日志分析就是讲的... 显示全部 »
以空格分隔取子串,例如取出最后4个长度的为年,然后case when判断出具体的 月、日。或者写UDF去转换,你可以看一下Hive课程中的视频(https://edu.hellobi.com/course/136),有UDF部分,也有日志分析,日志分析就是讲的时间转换,但是不是你这种格式。
regan

regan 回答了问题 • 2017-03-31 11:01 • 1 个回复 不感兴趣

hive的启动问题。

赞同来自:

MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.trans... 显示全部 »
MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure: org.apache.thrift.transport.TTransportException: java.net.ConnectException: 拒绝连接 (Connection refused) at org.apache.thrift.transport.TSocket.open(TSocket.java:226)
连接meta  data库连接不上, 检查下你的 hive-site中的 配置吧
<property>  
    <name>javax.jdo.option.ConnectionURL</name>  
    <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>  
    <description>JDBC connect string for a JDBC metastore</description>  
  </property>  
 <property>  
    <name>javax.jdo.option.ConnectionPassword</name>  
    <value>123</value>  
    <description>password to use against metastore database</description>  
  </property>  
<property>  
    <name>javax.jdo.option.ConnectionUserName</name>  
    <value>spark</value>  
    <description>Username to use against metastore database</description>  
  </property>  
select
month,
sum(sales) month_sales,--每月的数量
LAG(sum(sales),1,sum(sales)) over(order by month) pre_month_bal, --上个月数量... 显示全部 »
select
month,
sum(sales) month_sales,--每月的数量
LAG(sum(sales),1,sum(sales)) over(order by month) pre_month_bal, --上个月数量
sum(sum(sales)) over(partition by year order by month) year_bal_month, --年内总数量
LAST_VALUE(sum(sales)) over(partition by year order by month rows between current row and unbounded following) sales_of_last_month_of_year,
--年内最后一个月x数量

sum(sales) over(partition by year order by month rows between unbounded preceding and current row) sales_of_acc_year
--逐月累计
from table
GeorgeYao

GeorgeYao 回答了问题 • 2017-05-22 17:25 • 2 个回复 不感兴趣

mysql的date类型对应hive的哪个类型

赞同来自:

可以参考这个博文,理解一下:http://m.blog.csdn.net/article/details?id=52075058
可以参考这个博文,理解一下:http://m.blog.csdn.net/article/details?id=52075058
导出文本文件 直接上传hdfs
导出文本文件 直接上传hdfs
MySQL字符集有很多设置的,比如Server,db。。逐一尝试
MySQL字符集有很多设置的,比如Server,db。。逐一尝试
0
投票
1
回答
1042
浏览
0
投票
4
已解决
3587
浏览

hadoop、python、Oracle 哪个前景好?

WindyQin 回复了问题 • 2016-11-02 11:40
3
推荐
1135
浏览

Congos+Hive项目记录(一)

大数据现在已经成为企业牛逼的标配,hadoop成为了这个标配的代名词。现把日常点滴记录:一、使用jdbc方式连接cognos和hive,参考:https://ask.hellobi.com/blog/hql15/3572二、使用odbc方式连接步骤如下:1、安...

华青莲 发表了文章 • 2016-07-13 11:05

9
推荐
2432
浏览

Hive与HBase的集成实践

注:若需转载,请注明出处!Hive与HBase集成实践大数据平台搭建 hive-2.0.0 hbase 1.1.3环境说明CentOS 6.7Hadoop 2.7.2Hive 2.0.0HBase 1.1.31. 具体步骤1. 拷贝jar包首先删除$HIVE_HOME/lib下HBase和...

MarsJ 发表了文章 • 2016-05-30 20:13

4
推荐
1227
浏览

Hive安装及使用攻略

让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。现在硬件越来越便宜,一台非品牌服务器,2颗24核CPU,配48G内存,2T的硬盘,已经...

张丹 发表了文章 • 2016-04-05 19:47

0
投票
1
已解决
347
浏览
0
投票
1
回答
205
浏览
0
投票
1
回答
363
浏览
0
投票
1
已解决
405
浏览
0
投票
1
已解决
1336
浏览
0
推荐
54
浏览

【老贝伏枥】 数据库窗口函数-windows function

几乎常用的数据库都具备了SQL常用的窗口函数,比如比较常见的row_number() over()。尤其在hive数据库,灵活使用窗口函数能快速实现代码逻辑并提高执行效率。下面就依次分析几个常用函数的用途。1、排序:ROW_NUMB...

贝克汉姆 发表了文章 • 2018-09-30 22:02

0
推荐
78
浏览

【hive常用函数一】日期函数

使用hive进行数据处理的过程种,遇到不少问题,总结之前的一些开发经验,把之前的一些处理技巧mark一下:使用通用的哑表dual作为测试表用。1、时间戳转换日期格式转换时间戳只能精确到秒(即长度只有10位,而不是...

brucelu 发表了文章 • 2018-09-27 22:18

0
推荐
84
浏览

hive 调度

这个方法适用于存在多个hql脚本,想要统一调度,或者多个hql存在依赖关系的场景逻辑简述:四类文件 1、pkg.sh文件(1个pkg.sh文件),用来调度rpt.sh文件,在linux crontab -e 调度中添加这个文件,用...

liliwu 发表了文章 • 2018-09-11 21:11

7
推荐
392
浏览

实现Hive查询操作HBase中的数据

今天主要给大家讲解一下,如何使用Hive来查询及操作HBase里面的数据,也就是实现二者的数据互通互导,相互操作。首先不了解HBase的亲可以看一下我之前写过的一片博文:《白话解说:SQL与NoSQL》https://ask.hello...

马修 发表了文章 • 2018-08-27 19:54

6
推荐
279
浏览

大数据环境-快速安装使用

安装大数据环境的技术博文、甚至视频课在网上有太多太多啦。还是有很多小伙伴很头疼环境安装配置,怎么安装怎么配置,总有出错的地方,都其中最头疼的莫过于Linux系统的操作。认识一个做数据的朋友,他习惯于wind...

马修 发表了文章 • 2018-08-21 14:54

推荐
浏览


k3ho8p 发表了文章 •

推荐
浏览


ecsqfj 发表了文章 •

推荐
浏览


ckmtbv 发表了文章 •

推荐
浏览


ckmtbv 发表了文章 •

推荐
浏览


uudvxe 发表了文章 •

推荐
浏览


ggud76 发表了文章 •

推荐
浏览


ecsqfj 发表了文章 •

推荐
浏览


m4wtm9 发表了文章 •

推荐
浏览


wreqy0 发表了文章 •

推荐
浏览


pbjq5s 发表了文章 •

  Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。