新聞中心
?今天的數(shù)據(jù)驅(qū)動(dòng)型企業(yè)不僅需要針對(duì)實(shí)時(shí)數(shù)據(jù)作出快速響應(yīng)要,而且還必須執(zhí)行復(fù)雜的查詢以解決復(fù)雜的業(yè)務(wù)問(wèn)題。

隨州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,隨州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為隨州上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的隨州做網(wǎng)站的公司定做!
例如,客戶個(gè)性化系統(tǒng)需要將歷史數(shù)據(jù)集與實(shí)時(shí)數(shù)據(jù)流結(jié)合起來(lái),以便立即向客戶提供最相關(guān)的產(chǎn)品建議。提供關(guān)鍵任務(wù)的實(shí)時(shí)業(yè)務(wù)觀察能力的運(yùn)營(yíng)分析系統(tǒng)也必須如此,例如,在線支付供應(yīng)商需要監(jiān)測(cè)其全球范圍內(nèi)的交易,以發(fā)現(xiàn)可能預(yù)示金融欺詐的異常情況。
或者想象一個(gè)網(wǎng)上學(xué)習(xí)平臺(tái)需要為學(xué)區(qū)客戶和內(nèi)部客戶團(tuán)隊(duì)提供關(guān)于學(xué)生和教師使用情況的最新洞察力?;蛘呤且粋€(gè)市場(chǎng)新聞供應(yīng)商,需要監(jiān)測(cè)并確保其金融客戶在狹窄的窗口內(nèi)獲得準(zhǔn)確的、相關(guān)的更新,以實(shí)現(xiàn)盈利的交易。
NoSQL的局限性
SQL支持復(fù)雜的查詢,因?yàn)樗且环N非常具有表現(xiàn)力的。 是成熟的語(yǔ)言。復(fù)雜的SQL查詢?cè)谏虡I(yè)智能(BI)中早已司空見(jiàn)慣。而當(dāng)Hadoop和Hive這樣的系統(tǒng)出現(xiàn)時(shí),它首次將復(fù)雜的查詢與大數(shù)據(jù)結(jié)合起來(lái)。Hive在Hadoop的本地MapReduce編程范式上實(shí)現(xiàn)了一個(gè)SQL層。這些第一代基于SQL的大數(shù)據(jù)系統(tǒng)的代價(jià)是,它們以更高的查詢延遲為代價(jià),提高了數(shù)據(jù)處理的吞吐量。因此,這些使用案例仍然是運(yùn)行在批處理模式中。
當(dāng)NoSQL數(shù)據(jù)庫(kù)(如鍵值和文檔存儲(chǔ))出現(xiàn)時(shí),情況發(fā)生了變化。設(shè)計(jì)目標(biāo)是低延遲和規(guī)?!,F(xiàn)在,公司可以把一個(gè)龐大的數(shù)據(jù)集,組織成簡(jiǎn)單的鍵值或文檔對(duì),并立即執(zhí)行查找和其他簡(jiǎn)單的查詢。這些大規(guī)模、可擴(kuò)展的鍵值存儲(chǔ)或文檔數(shù)據(jù)庫(kù)的設(shè)計(jì)者決定,只有當(dāng)查詢性質(zhì)簡(jiǎn)單時(shí),規(guī)模和速度才有可能。在鍵值存儲(chǔ)中查找一個(gè)值,可以做到快如閃電。相比之下,SQL查詢,由于過(guò)濾器、排序和聚合的固有復(fù)雜性,在技術(shù)上太有挑戰(zhàn)性,無(wú)法在大量數(shù)據(jù)上快速執(zhí)行。
不要注意那個(gè)幕后的人
不幸的是,由于上述原因,當(dāng)查詢復(fù)雜、嵌套且必須返回精確答案時(shí),NoSQL數(shù)據(jù)庫(kù)往往會(huì)遇到問(wèn)題。這故意不是他們的強(qiáng)項(xiàng)。他們的查詢語(yǔ)言,無(wú)論是類似SQL的變體,如 CQL (Cassandra)和Druid SQL等類似SQL的變體,還是MQL(MongoDB)等完全自定義的語(yǔ)言,都不支持連接和其他復(fù)雜的查詢命令。
NoSQL數(shù)據(jù)庫(kù)的供應(yīng)商就像綠野仙蹤一樣,用煙霧和鏡子分散你的注意力,高談闊論狹義的速度定義,這樣你就不會(huì)注意到NoSQL數(shù)據(jù)庫(kù)在實(shí)時(shí)分析方面的實(shí)際弱點(diǎn)。使用NoSQL數(shù)據(jù)庫(kù)的開(kāi)發(fā)人員最終被迫將Join和其他數(shù)據(jù)邏輯嵌入到他們自己的應(yīng)用程序代碼中--從單獨(dú)的表中獲取數(shù)據(jù)到進(jìn)行連接優(yōu)化和其他分析工作的一切。
雖然走NoSQL的道路是可能的,但它是繁瑣和緩慢的。以一個(gè)申請(qǐng)抵押貸款的人為例。為了分析他們的信用度,你會(huì)創(chuàng)建一個(gè)數(shù)據(jù)應(yīng)用來(lái)計(jì)算數(shù)據(jù),比如這個(gè)人的信用歷史、未償貸款和還款歷史。要做到這一點(diǎn),你需要結(jié)合幾個(gè)數(shù)據(jù)表格,其中一些可能是歸一化的,哪些數(shù)據(jù)是真實(shí)的,哪些是不真實(shí)的。你還可能分析當(dāng)前和歷史上的抵押貸款利率,以確定提供什么利率。
使用SQL,你可以簡(jiǎn)單地將信用記錄和貸款支付表連接在一起,并聚合大規(guī)模的歷史數(shù)據(jù)集,如每日抵押貸款利率。然而,使用像Python或Java這樣的東西來(lái)手動(dòng)重新創(chuàng)建連接和聚合,與SQL相比,你的應(yīng)用程序中的代碼行數(shù)會(huì)增加幾十甚至一百。
更多的應(yīng)用程序代碼不僅需要更多的時(shí)間來(lái)創(chuàng)建,而且?guī)缀蹩偸菍?dǎo)致更慢的查詢。如果不能使用基于SQL的查詢優(yōu)化器,加速查詢是很困難和費(fèi)時(shí)的,因?yàn)閼?yīng)用程序中的業(yè)務(wù)邏輯和應(yīng)用程序使用的基于查詢的數(shù)據(jù)訪問(wèn)路徑之間沒(méi)有分界。像一個(gè)普通的東西 join table一樣的東西,SQL可以有效而優(yōu)雅地處理,但在其他語(yǔ)言中卻可能成為一個(gè)臃腫的內(nèi)存占用者。
最后,用應(yīng)用程序代碼編寫的查詢也是比較脆弱的,需要不斷的維護(hù)和測(cè)試,如果數(shù)據(jù)量發(fā)生變化,還可能需要重寫。而大多數(shù)開(kāi)發(fā)人員缺乏時(shí)間和專業(yè)知識(shí)來(lái)進(jìn)行這種持續(xù)的維護(hù)。
只有一個(gè)NoSQL系統(tǒng)我認(rèn)為可以合理地勝任復(fù)雜的查詢。GraphQL。GraphQL系統(tǒng)可以將數(shù)據(jù)類型與特定的數(shù)據(jù)字段聯(lián)系起來(lái),并提供函數(shù)來(lái)檢索文檔的選定字段。它的查詢API支持復(fù)雜的操作,例如根據(jù)一組匹配字段過(guò)濾文檔,并有選擇地從匹配的文檔中返回字段的子集。GraphQL的主要分析缺陷是它缺乏表達(dá)能力,無(wú)法根據(jù)兩個(gè)不同的數(shù)據(jù)集中特定字段的值來(lái)連接這兩個(gè)數(shù)據(jù)集。大多數(shù)分析性查詢需要這種能力,以便在查詢時(shí)連接多個(gè)數(shù)據(jù)源。
為工作選擇最佳工具--SQL
在技術(shù)和生活中,每項(xiàng)工作都有一個(gè)為其設(shè)計(jì)的最佳工具。對(duì)于復(fù)雜的分析查詢,SQL無(wú)疑是最好的工具。SQL擁有半個(gè)世紀(jì)以來(lái)開(kāi)發(fā)的豐富的強(qiáng)大命令集。創(chuàng)建查詢很容易,調(diào)整和優(yōu)化查詢更容易,以加快結(jié)果,縮小中間表,降低查詢成本。
有一些關(guān)于SQL數(shù)據(jù)庫(kù)的神話,但它們是基于1990年代的傳統(tǒng)關(guān)系型系統(tǒng)。事實(shí)是,現(xiàn)代云原生SQL數(shù)據(jù)庫(kù)支持實(shí)時(shí)分析所有必要的關(guān)鍵功能,包括。
- 可變數(shù)據(jù),以實(shí)現(xiàn)令人難以置信的快速數(shù)據(jù)攝取和對(duì)晚到事件的順利處理。
- 靈活的模式Schema,可以根據(jù)傳入的流媒體數(shù)據(jù)的結(jié)構(gòu)自動(dòng)調(diào)整。
- 即時(shí)擴(kuò)大數(shù)據(jù)寫入或查詢的規(guī)模,以處理突發(fā)的數(shù)據(jù)。
SQL仍然非常流行,在所有編程語(yǔ)言中排名最靠前。正如我們所看到的,它支持復(fù)雜的查詢,這是現(xiàn)代實(shí)時(shí)數(shù)據(jù)分析的一個(gè)要求。相比之下,NoSQL數(shù)據(jù)庫(kù)在執(zhí)行連接和其他復(fù)雜的查詢命令方面比較弱。此外,尋找一個(gè)不太知名的自定義查詢語(yǔ)言的專家可能會(huì)很費(fèi)時(shí)和昂貴。
底線是,你將沒(méi)有問(wèn)題找到熟練的數(shù)據(jù)工程師和數(shù)據(jù)運(yùn)營(yíng)人員,他們知道SQL及其復(fù)雜查詢的能力。他們將能夠利用這些知識(shí)和能力,推動(dòng)你的組織從批量分析到實(shí)時(shí)分析的飛躍。?
本文題目:實(shí)時(shí)分析需要SQL和復(fù)雜查詢
文章URL:http://fisionsoft.com.cn/article/dpijipj.html


咨詢
建站咨詢
