等值連接(連接條件是等號):
```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno=d.deptno;
```
不等值連接(連接條件不是等號):
```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno between 1 and 10;
```
```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno=d.deptno;
```
不等值連接(連接條件不是等號):
```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno between 1 and 10;
```
2018-06-17
to_date('2018-6-17'):取出一個字符串中的年月日部分
year('2018-6-17'):取出一個字符串中的年
month('2018-6-17'):取出一個字符串中的月
day('2018-6-17'):取出一個字符串中的日
weekofyear('2018-6-17'):本周是一年中的第幾周
datediff('2018-6-17', '2019-6-17'):兩個日期相差的天數
date_add('2018-6-17', 2):在一個日期上加上多少天
date_sub('2018-6-17', 2):在一個日期上減去多少天
year('2018-6-17'):取出一個字符串中的年
month('2018-6-17'):取出一個字符串中的月
day('2018-6-17'):取出一個字符串中的日
weekofyear('2018-6-17'):本周是一年中的第幾周
datediff('2018-6-17', '2019-6-17'):兩個日期相差的天數
date_add('2018-6-17', 2):在一個日期上加上多少天
date_sub('2018-6-17', 2):在一個日期上減去多少天
2018-06-17
數學函數:
round(number, n):對number進行四舍五入操作,并保留n位小數
ceil(number):向上取整
floor(number):向下取整
字符函數:
lower(str):把字符串轉為小寫
upper(str):把字符串轉為大寫
length(str):字符串的長度
concat(str1, str2):字符串拼接
substr(str, start[, length]):截取子串
trim(str):去掉字符串收尾的空格
lpad(str, length, mark):左填充
rpad(str, length, mark):右填充
round(number, n):對number進行四舍五入操作,并保留n位小數
ceil(number):向上取整
floor(number):向下取整
字符函數:
lower(str):把字符串轉為小寫
upper(str):把字符串轉為大寫
length(str):字符串的長度
concat(str1, str2):字符串拼接
substr(str, start[, length]):截取子串
trim(str):去掉字符串收尾的空格
lpad(str, length, mark):左填充
rpad(str, length, mark):右填充
2018-06-17
在 Hive 中,大部分 HQL 查詢語句都會被轉換為 MapReduce 作業進行執行,但也有小部分查詢不會被轉換,如select * from tb_name;,因為 Hive 里的數據是直接存儲在 HDFS 中的,當查詢所有的信息,只需要把 HDFS 中該表的所有信息讀取出來即可,沒有必要轉換成 MR 作業。MR 作業需要編譯和任務下發等一系列操作,所以速度會慢一些。
2018-06-17
# Hive 數據查詢
查詢語法:
SELECT [ALL|DISTINCT] select_expr, select_expr ...
FROM tb_reference
[WHERE where_condition]
[GROUP BY col_list]
[CLUSTER BY col_list
|[DISTRIBUTE BY col_list] [SORT BY col_list]
|[ORDER BY col_list]]
[LIMIT number]
- DISTRIBUTE BY:指定分發器(partitioner),多reduce可用
查詢語法:
SELECT [ALL|DISTINCT] select_expr, select_expr ...
FROM tb_reference
[WHERE where_condition]
[GROUP BY col_list]
[CLUSTER BY col_list
|[DISTRIBUTE BY col_list] [SORT BY col_list]
|[ORDER BY col_list]]
[LIMIT number]
- DISTRIBUTE BY:指定分發器(partitioner),多reduce可用
2018-06-17
參數說明:
--connect:指定JDBC數據庫連接地址,jdbc:mysql://127.0.0.1:3306/test
--user、--password:指定JDBC數據庫連接用戶名和密碼
--table:指定RDBMS中的表名
-columns:指定導入RDBMS中表的哪些列
-m:指定導入時MR的進程數
--target-dir:指定數據導入到 HDFS 時的目錄
--hive-import:數據到 Hive 中
--hive-table:指定數據導入到 Hive 時的表名
--where:使用 where 條件,來過濾一些數據
--query:使用査詢語句
--connect:指定JDBC數據庫連接地址,jdbc:mysql://127.0.0.1:3306/test
--user、--password:指定JDBC數據庫連接用戶名和密碼
--table:指定RDBMS中的表名
-columns:指定導入RDBMS中表的哪些列
-m:指定導入時MR的進程數
--target-dir:指定數據導入到 HDFS 時的目錄
--hive-import:數據到 Hive 中
--hive-table:指定數據導入到 Hive 時的表名
--where:使用 where 條件,來過濾一些數據
--query:使用査詢語句
2018-06-17
注意:最新的穩定版本是1.4.7,Sqoop 依賴于 JDK 和 Hadoop 環境。
在官網下載最新的穩定版本:
wget http://mirrors.shu.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
解壓:tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
配置環境變量:
export SQOOP_HOME=/bigdata/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$SQOOP_HOME/bin:$PATH
在官網下載最新的穩定版本:
wget http://mirrors.shu.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
解壓:tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
配置環境變量:
export SQOOP_HOME=/bigdata/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$SQOOP_HOME/bin:$PATH
2018-06-17
hive2.0之后的版本,打開hive服務器接口的代碼是:hive --service hiveserver2。這是個坑。
2018-05-21
最新回答 / weixin_慕慕3242689
以前是通過hivecli連接HiveServer?,?缺點是HiveServer 不能處理多個客戶端,比如你的HiveServer裝在A機器,就必須到A機器上連接訪問。所以就出現了HiveServer2,可以在任意機器上使用beeline通過JDBC方式連接。并且beeline不是直接連接的HiveServer2,二十訪問的zookeeper,zookeeper中記錄著多個HiveServer2地址,就算其中一個HiveServer2掛掉,也不妨礙訪問。
2018-04-16