自學(xué)sql容易嗎 hive和sparksql的區(qū)別?
hive和sparksql的區(qū)別?過(guò)去,hive是用來(lái)建立數(shù)據(jù)倉(cāng)庫(kù)的,因此對(duì)hive管理的數(shù)據(jù)查詢(xún)有很大的需求。Hive、shark和sparlsql可以查詢(xún)Hive數(shù)據(jù)。Shark使用hive的SQ
hive和sparksql的區(qū)別?
過(guò)去,hive是用來(lái)建立數(shù)據(jù)倉(cāng)庫(kù)的,因此對(duì)hive管理的數(shù)據(jù)查詢(xún)有很大的需求。Hive、shark和sparlsql可以查詢(xún)Hive數(shù)據(jù)。Shark使用hive的SQL語(yǔ)法解析器和優(yōu)化器,修改executor,使其物理執(zhí)行過(guò)程在spark上運(yùn)行;spark-SQL使用自己的語(yǔ)法解析器、優(yōu)化器和executor,spark-SQL還擴(kuò)展了接口,不僅支持hive數(shù)據(jù)查詢(xún),還支持多數(shù)據(jù)源的數(shù)據(jù)查詢(xún)。
hive sql與sql區(qū)別?
主要區(qū)別如下:
1。配置單元不支持等效聯(lián)接
·對(duì)于SQL中的兩個(gè)內(nèi)聯(lián)表,它可以寫(xiě)成:
·select*from dual a,dual b where a.key=b.key
;在配置單元中,它應(yīng)該是
·select*from dual a join dual b on a.key=b.key
而不是傳統(tǒng)格式:
select t1.a1 as C1,t2.b1 as c2 from t1,t2
其中t1.a2=T2。B2
2,分號(hào)字符
·分號(hào)是SQL語(yǔ)句的結(jié)束標(biāo)記,在hiveql中也有使用,但是在hiveql中,分號(hào)的識(shí)別不是很聰明,例如:
·從dual中選擇concat(key,concat(”,key))。·但是當(dāng)hiveql解析語(yǔ)句時(shí),它提示:
失?。航馕鲥e(cuò)誤:第0行:-1函數(shù)規(guī)范中輸入不匹配“<eof>”。·解決方法是使用分號(hào)八進(jìn)制ASCII碼進(jìn)行轉(zhuǎn)義,因此上面的語(yǔ)句應(yīng)該寫(xiě)成:
·select concat(key,concat(“073”,key))from dual
3,is[not]null
·null表示SQL中的空值。值得注意的是,在hiveql中,如果string type字段為空字符串,即長(zhǎng)度為0,則應(yīng)計(jì)算null的判斷結(jié)果為false。
4。Hive不支持將數(shù)據(jù)插入到現(xiàn)有的表或分區(qū)中,
只支持覆蓋和重寫(xiě)整個(gè)表
Hive是基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)設(shè)施。
它提供了一系列可用于數(shù)據(jù)提取、轉(zhuǎn)換和加載(ETL)的工具,ETL是一種可以存儲(chǔ)、查詢(xún)和分析Hadoop中存儲(chǔ)的大規(guī)模數(shù)據(jù)的機(jī)制。Hive定義了一種簡(jiǎn)單的類(lèi)似SQL的查詢(xún)語(yǔ)言HQL,它允許熟悉SQL的用戶(hù)查詢(xún)數(shù)據(jù)。同時(shí),這種語(yǔ)言還允許熟悉MapReduce的開(kāi)發(fā)人員開(kāi)發(fā)定制的mapper和reducer,以處理內(nèi)置mapper和reducer無(wú)法完成的復(fù)雜分析工作。Hive采用類(lèi)SQL查詢(xún)模式,將SQL查詢(xún)轉(zhuǎn)換成MapReduce作業(yè),在Hadoop集群上執(zhí)行
功能點(diǎn):Hive:1,數(shù)據(jù)存儲(chǔ)
2,數(shù)據(jù)清理spark:1,數(shù)據(jù)清理2,流計(jì)算Hive可以通過(guò)HQL模式讀取Hive數(shù)據(jù)進(jìn)行數(shù)據(jù)清理spark可以通過(guò)spark SQL或spark core清理數(shù)據(jù),并且可以讀取數(shù)據(jù)源包,如JDBC、hive、elasticsearch、文件等,因此spark可以替代hive的數(shù)據(jù)清洗功能,hive也可以作為數(shù)據(jù)源。蜂巢的優(yōu)點(diǎn)在于1。大數(shù)據(jù)存儲(chǔ),2。MapReduce操作通過(guò)SQL降低大數(shù)據(jù)的使用門(mén)檻spark的優(yōu)點(diǎn)有:1?;趦?nèi)存的MapReduce運(yùn)算速度快。流計(jì)算(基準(zhǔn)產(chǎn)品:Flink、storm)