真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢

這篇文章將為大家詳細(xì)講解有關(guān)Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向上千多家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。

1

使用Apache Hive3.0&SQL來進(jìn)行統(tǒng)一訪問

Apache Hive在上述環(huán)境中扮演著重要角色。更具體一點(diǎn)的說,它可以訪問上述所有系統(tǒng),并提供統(tǒng)一高效的SQL訪問,而且是開箱即用的。這樣做的好處是巨大的:

1.單個(gè)SQL方言和API

2.集中安全控制和審計(jì)跟蹤

3.統(tǒng)一治理

4.能夠合并來自多個(gè)數(shù)據(jù)源的數(shù)據(jù)

5.數(shù)據(jù)獨(dú)立性

設(shè)置和使用Apache Hive作為聯(lián)邦層可簡(jiǎn)化應(yīng)用程序開發(fā)和數(shù)據(jù)訪問。特別是所有數(shù)據(jù)都可以使用SQL進(jìn)行處理,并且可以通過熟悉的JDBC/ODBC接口進(jìn)行訪問。

最重要的事,因?yàn)樗械臄?shù)據(jù)訪問都會(huì)通過Hive,當(dāng)Hive與不同的系統(tǒng)進(jìn)行交互時(shí),它可以提供統(tǒng)一的安全控制(表,行和列訪問控制),數(shù)據(jù)溯源和審計(jì)。

最后,你還可以保證數(shù)據(jù)的獨(dú)立性:如果所有的訪問都被抽象為通過SQL表或視圖,更改存儲(chǔ)或處理引擎則會(huì)比較容易。

2

基于成本優(yōu)化的智能下推

假設(shè)你要執(zhí)行一個(gè)Hive查詢,該查詢通過JDBC連接到后端的RDBMS訪問數(shù)據(jù)。一種天真的想法是將JDBC源視為“啞”(dumb)的存儲(chǔ)系統(tǒng),通過JDBC讀取所有原始數(shù)據(jù)并在Hive中處理它。在這種情況下,實(shí)際我們就忽略了RDBMS本身的查詢功能,然后通過JDBC鏈接抽取了過多的數(shù)據(jù),從而很容易導(dǎo)致性能不佳和系統(tǒng)過載。

出于這個(gè)原因,Hive依靠其storage handler接口和Apache Calcite支持的基于成本的優(yōu)化器(CBO)實(shí)現(xiàn)了對(duì)其他系統(tǒng)的智能下推。特別是,Calcite提供與查詢的邏輯表示中的運(yùn)算符子集匹配的規(guī)則,然后生成在外部系統(tǒng)中等效的表示以執(zhí)行更多操作。Hive在其查詢計(jì)劃器中將計(jì)算推送到外部系統(tǒng),并且依靠Calcite生成外部系統(tǒng)支持的查詢語(yǔ)言。storage handler的實(shí)現(xiàn)負(fù)責(zé)將生成的查詢發(fā)送到外部系統(tǒng),檢索其結(jié)果,并將傳入的數(shù)據(jù)轉(zhuǎn)換為Hive內(nèi)部表示,以便在需要時(shí)進(jìn)一步處理。

這不僅限于SQL系統(tǒng):例如,Apache Hive也可以聯(lián)邦A(yù)pache Druid或Apache Kafka進(jìn)行查詢,正如我們?cè)谧罱牟┪闹兴枋龅?,Druid可以非常高效的處理時(shí)序數(shù)據(jù)的匯總和過濾。因此,當(dāng)對(duì)存儲(chǔ)在Druid中的數(shù)據(jù)源執(zhí)行查詢時(shí),Hive可以將過濾和聚合推送給Druid,生成并發(fā)送JSON查詢到引擎暴露的REST API。另一方面,如果是查詢Kafka上的數(shù)據(jù),Hive可以在分區(qū)或offset上推送過濾器,從而根據(jù)條件讀取topic中的數(shù)據(jù)。

https://hortonworks.com/blog/benchmark-update-apache-hive-druid-integration-hdp-3-0/

3

聯(lián)邦到JDBC源端

storage handler和Calcite適配器的組合非常靈活,功能也非常強(qiáng)大,尤其是將Hive作為不同SQL系統(tǒng)的聯(lián)邦層時(shí)。

Apache Hive3包含了JDBC storage handler的新實(shí)現(xiàn),它可以讓Calcite的JDBC適配器規(guī)則有選擇地將計(jì)算推送到JDBC源端,如MySQL,PostgreSQL,Oracle或Redshift。Hive可以推送各種各樣的操作,包括projections, filters, joins, aggregations, unions, sorting和limit。

更重要的是,Calcite可以根據(jù)JDBC源端的系統(tǒng)調(diào)整行為。 例如,它可以識(shí)別JDBC源端系統(tǒng)不支持查詢中的過濾條件中使用的某個(gè)函數(shù)。在這種情況下,它將在Hive中執(zhí)行它,同時(shí)仍將其余支持的過濾條件推送到JDBC系統(tǒng)。此外,Hive可以使用不同的方言生成SQL,具體取決于JDBC連接后面的數(shù)據(jù)庫(kù)。

另一個(gè)重要特性是JDBC storage handler可以將查詢拆分為多個(gè)子查詢,這些子查詢將并行發(fā)送到執(zhí)行引擎,以加速?gòu)臄?shù)據(jù)源中讀取大量數(shù)據(jù)。

下圖是一個(gè)示例說明了Hive的新JDBC下推功能??梢园l(fā)現(xiàn)當(dāng)生成MySQL和PostgreSQL的查詢SQL語(yǔ)句時(shí)會(huì)有延遲。

Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢

4

接下來的工作:自動(dòng)元數(shù)據(jù)映射

要查詢其他系統(tǒng)中的數(shù)據(jù),用戶只需使用相應(yīng)的storage handler來創(chuàng)建一張Hive外部表,當(dāng)然還包含該外部系統(tǒng)的一些其他信息。例如:如果用戶想在Hive中創(chuàng)建一張來自PostgreSQL數(shù)據(jù)庫(kù)'organization'中的表'item',可以使用以下語(yǔ)句來創(chuàng)建:

Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢

雖然你看這個(gè)建表語(yǔ)句已經(jīng)夠簡(jiǎn)單的了,但是我們對(duì)Hive該功能的期望遠(yuǎn)不止于此。

如上例所示,建表語(yǔ)句還需要指定PostgreSQL中該表的schema。在HIVE-21060中,如果是通過JDBC配置的外部表,希望Hive可以自動(dòng)發(fā)現(xiàn)schema,而不用在建表語(yǔ)句中聲明。

HIVE-21060:

https://jira.apache.org/jira/browse/HIVE-21060

而HIVE-21059中,則是開發(fā)實(shí)現(xiàn)外部的catalog支持。外部catalog允許在metastore中創(chuàng)建一個(gè)新的catalog,這個(gè)catalog會(huì)指向一個(gè)外部的mysql數(shù)據(jù)庫(kù),這樣在這個(gè)catalog之下,所有表都可以自動(dòng)被Hive識(shí)別然后查詢。

HIVE-21059:

https://jira.apache.org/jira/browse/HIVE-21059

5

總結(jié)

聯(lián)邦功能為Hive帶來了很大的靈活性,以下我們具體看看你可以使用它來干什么:

1.Combining best tools for the job:應(yīng)用程序開發(fā)人員可以通過單一界面訪問多個(gè)數(shù)據(jù)處理系統(tǒng)。無需學(xué)習(xí)不同的查詢方言或接口, 無需擔(dān)心數(shù)據(jù)安全和數(shù)據(jù)治理,統(tǒng)統(tǒng)都由Hive負(fù)責(zé)。這極大地簡(jiǎn)化了集成工作。

2.Transform & write-back: 使用該功能,你可以使用Hive SQL轉(zhuǎn)換保存在Hive之外的數(shù)據(jù)。例如,你可以使用Hive查詢Kafka,轉(zhuǎn)換數(shù)據(jù),然后將其回寫到Kafka。

3.Simplifying data-loads:你現(xiàn)在可以直接從Hive查詢其他系統(tǒng),清洗數(shù)據(jù),強(qiáng)化數(shù)據(jù),最后將數(shù)據(jù)合并到Hive表中,而無需部署任何其他工具。這使得ETL變得非常簡(jiǎn)單。

4.Query across multiple systems: 對(duì)于某些ad-hoc查詢或小的報(bào)表,定義ETL處理過程并將數(shù)據(jù)都移動(dòng)到同一個(gè)存儲(chǔ)位置是不現(xiàn)實(shí)的。使用該功能,你只需要編寫一個(gè)查詢SQL跨多個(gè)數(shù)據(jù)源即可。

關(guān)于Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


網(wǎng)站欄目:Apache中怎么使用Hive3實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)聯(lián)邦查詢
標(biāo)題鏈接:http://weahome.cn/article/jpihhp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部