這篇文章主要介紹“怎么用Apache Pulsar SQL查詢數(shù)據(jù)流”,在日常操作中,相信很多人在怎么用Apache Pulsar SQL查詢數(shù)據(jù)流問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Apache Pulsar SQL查詢數(shù)據(jù)流”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司始終致力于在企業(yè)網(wǎng)站建設(shè)領(lǐng)域發(fā)展。秉承“創(chuàng)新、求實(shí)、誠信、拼搏”的企業(yè)精神,致力為企業(yè)提供全面的網(wǎng)絡(luò)宣傳與技術(shù)應(yīng)用整體策劃方案,為企業(yè)提供包括“網(wǎng)站建設(shè)、成都響應(yīng)式網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、微信網(wǎng)站建設(shè)、重慶小程序開發(fā)公司、商城網(wǎng)站定制開發(fā)、平臺(tái)網(wǎng)站建設(shè)秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Apache Pulsar 越來越受歡迎,尤其在成為 Apache 軟件基金會(huì)的頂級項(xiàng)目后。用戶不僅將 Pulsar 用于發(fā)布/訂閱消息,還利用其可擴(kuò)展的存儲(chǔ)架構(gòu)和分層存儲(chǔ)的特性來存儲(chǔ)數(shù)據(jù)流。存儲(chǔ)數(shù)據(jù)后,用戶需要對存儲(chǔ)在 Pulsar 中的數(shù)據(jù)進(jìn)行查詢。另外,一些用戶希望可以在數(shù)據(jù)存儲(chǔ)到 Pulsar 后立即進(jìn)行查詢,而無需等待直至數(shù)據(jù)移入數(shù)據(jù)庫等外部系統(tǒng)。
這一需求促成了 Pulsar SQL 的開發(fā)。Apache Pulsar 2.2.0 中首次發(fā)布 Pulsar SQL 這一新框架,通過 Pulsar SQL,用戶可以使用 SQL 接口高效查詢存儲(chǔ)在 Pulsar 中的數(shù)據(jù)流。本文從技術(shù)層面介紹 Pulsar SQL 的架構(gòu)、實(shí)現(xiàn)、功能等,以及促成 Pulsar SQL 開發(fā)的背景和用例。Apache Pulsar 最初是作為下一代發(fā)布/訂閱消息系統(tǒng)而開發(fā)的,旨在改善現(xiàn)有消息系統(tǒng)和流系統(tǒng)的不足,與傳統(tǒng)的發(fā)布/訂閱消息系統(tǒng)相比,Apache Pulsar 能夠處理更多的用例。
Pulsar 擁有將服務(wù)/計(jì)算與存儲(chǔ)分離的創(chuàng)新型架構(gòu),用戶因此可以輕松地獨(dú)立擴(kuò)展計(jì)算或存儲(chǔ)資源,添加附加存儲(chǔ)資源也更容易。由于這一架構(gòu)的優(yōu)勢,用戶不僅將 Pulsar 用作一個(gè)發(fā)布/訂閱系統(tǒng),還將其用作存儲(chǔ)新、舊流數(shù)據(jù)的存儲(chǔ)平臺(tái)。Pulsar 中增加了分層存儲(chǔ)后,“流存儲(chǔ)”和“事件存儲(chǔ)”的實(shí)用性也變得越來越重要。借助分層存儲(chǔ),用戶可以通過云存儲(chǔ)(例如:Amazon S3、Google Cloud Storage等)擴(kuò)展現(xiàn)有 Pulsar 集群,從而以極低的單位成本在云中存儲(chǔ)近乎無限量的流數(shù)據(jù)。Pulsar 同時(shí)具有存儲(chǔ)、歸檔與處理數(shù)據(jù)流的能力,這使得在單個(gè)系統(tǒng)中同時(shí)訪問實(shí)時(shí)數(shù)據(jù)與歷史數(shù)據(jù)成為可能。直到現(xiàn)在,在單個(gè)系統(tǒng)中同時(shí)訪問實(shí)時(shí)數(shù)據(jù)與歷史數(shù)據(jù)仍然需要多個(gè)系統(tǒng)和工具。而 Apache Pulsar 支持在一個(gè)系統(tǒng)中同時(shí)訪問這兩類數(shù)據(jù)。Schema registry 的實(shí)現(xiàn)為支持 SQL 的查詢提供了更加容易的方法。數(shù)據(jù)流以結(jié)構(gòu)化的方式在 Pulsar 中被生產(chǎn),消費(fèi)和存儲(chǔ)
Pulsar SQL 是基于 Apache Pulsar 建立的查詢層,用戶可以在 Pulsar SQL 中動(dòng)態(tài)查詢存儲(chǔ)在 Pulsar 內(nèi)部的所有新、舊流,用戶可以通過查詢單個(gè)系統(tǒng)中的新數(shù)據(jù)流和歷史數(shù)據(jù)流來進(jìn)一步理解 Pulsar SQL。Pulsar SQL 的另一個(gè)重要用例在于它可以在很大程度上簡化某些數(shù)據(jù)管道。傳統(tǒng)的 ETL 管道(例如:用于輸出數(shù)據(jù)到數(shù)據(jù)湖),需要從一組外部系統(tǒng)提取數(shù)據(jù),并對數(shù)據(jù)進(jìn)行一系列轉(zhuǎn)換,以在加載到目標(biāo)系統(tǒng)前清除舊格式、添加新格式。格式轉(zhuǎn)換一般作為獨(dú)立步驟按順序進(jìn)行,任一步驟中出現(xiàn)故障,整個(gè)過程都會(huì)停止。這種方法有兩個(gè)致命缺點(diǎn):每個(gè) ETL 步驟都要根據(jù)其運(yùn)行的框架進(jìn)行專門設(shè)計(jì),例如:Sqoop 或 Flume 用于提取數(shù)據(jù),Hive 和 Pig 腳本用于轉(zhuǎn)換數(shù)據(jù),Hive 或 Impala 進(jìn)程加載數(shù)據(jù)到可查詢表。
本質(zhì)上看,簡化數(shù)據(jù)管道的過程是面向批處理的,因此加載到數(shù)據(jù)湖的數(shù)據(jù)與傳入的數(shù)據(jù)流不一致。批次之間的間隔越長,數(shù)據(jù)越不及時(shí);相應(yīng)地,基于數(shù)據(jù)的決策也就越不及時(shí)。
借助 Pulsar SQL,Apache Pulsar 可以實(shí)現(xiàn)在同一系統(tǒng)上提取、清除格式、轉(zhuǎn)換格式、查詢數(shù)據(jù)流等操作,從而更好地應(yīng)對上述問題。
Pulsar 的存儲(chǔ)層可擴(kuò)展(因?yàn)镻ulsar 使用 Apache BookKeeper 作為其事件存儲(chǔ)層),因此 Pulsar 可以實(shí)現(xiàn)在單一系統(tǒng)中對數(shù)據(jù)的操作,并對所有數(shù)據(jù)(流數(shù)據(jù)和歷史數(shù)據(jù))一視同仁。Pulsar SQL 利用 Presto 和 Pulsar 獨(dú)特的架構(gòu)以高度可擴(kuò)展的方式進(jìn)行查詢,而無需考慮組成流的 topic 分區(qū)的數(shù)量。接下來我們將討論一下 Pulsar SQL 的架構(gòu)。
Presto Pulsar connector
是 Pular 和 Presto 的集成,該 connector 在 Presto 集群中的 Presto worker 上運(yùn)行。Presto worker 借助 connector 來讀取 Pulsar 集群中的數(shù)據(jù),并對讀取的數(shù)據(jù)進(jìn)行查詢。Presto Pulsar connector 如何高效地從 Pulsar 讀取數(shù)據(jù)?在 Pulsar 中,producer 向 Pulsar 寫入消息,寫入的消息被放入不同的通道,這些通道又稱 為 topic。Pulsar 中的 topic 以分片形式存儲(chǔ)在 Apache BookKeeper 中,并復(fù)制每個(gè) topic 分片到 Bookie 中,Bookie 是數(shù)量可配置(默認(rèn)值為 2 個(gè))的 BookKeeper 節(jié)點(diǎn)。Pulsar SQL 旨在最大化數(shù)據(jù)掃描速度,因此 Presto Pulsar connector 可以直接從 Bookie 讀取數(shù)據(jù)(而不是從 Pulsar Consumer API 讀?。岳?Pulsar 分片架構(gòu)的優(yōu)勢。Consumer API 適用于在發(fā)布/訂閱用例中消費(fèi)消息,但不一定能優(yōu)化批量讀取。
為了保證排序,Pulsar 中僅由一個(gè) Broker 為單個(gè) topic 提供服務(wù),由此將讀取吞吐量限制為一個(gè) Broker 的讀取吞吐量。用戶可以利用 topic 分區(qū)來提高讀取吞吐量,但是 Pulsar 希望用戶可以在不修改現(xiàn)有 topic 的條件下,以高性能的方式查詢 topic。對于查詢用例,我們不關(guān)心排序,只需讀取全部數(shù)據(jù)即可。直接從組成 topic 的分片讀取數(shù)據(jù)是一個(gè)更優(yōu)方案。因?yàn)榉制捌涓北旧⒉荚诙鄠€(gè) BookKeeper Bookie 之間,Presto worker 可以并發(fā)地從多個(gè) BookKeeper 節(jié)點(diǎn)上讀取分片數(shù)據(jù),,以實(shí)現(xiàn)高吞吐量。用戶還可以通過配置更大的 topic 副本數(shù)來實(shí)現(xiàn)更高的吞吐量,這一操作簡便易行。Worker 從多個(gè)副本并行讀取以實(shí)現(xiàn)高吞吐量
Pulsar SQL 不僅可以查詢 Bookie 中的數(shù)據(jù),還可以查詢卸載到云存儲(chǔ)中的數(shù)據(jù)。通過分層存儲(chǔ),用戶不僅可以存儲(chǔ)超出物理集群實(shí)際容量的數(shù)據(jù),還可以對這些數(shù)據(jù)進(jìn)行查詢,獲取更多有價(jià)值的信息。
下面是一些常見的 Pulsar SQL 用例。Pulsar 簡化了用例中的架構(gòu),原本需要多個(gè)系統(tǒng)才能實(shí)現(xiàn)的任務(wù),在添加了 Pulsar SQL 之后,用戶就可以使用 Pulsar 進(jìn)行日志提取與查詢。- 實(shí)時(shí)分析:Pulsar 在收到消息后立即可以查詢,這一功能使得通過 SQL 查詢來合并最新數(shù)據(jù)到實(shí)時(shí)數(shù)據(jù)儀表板,或監(jiān)控最新數(shù)據(jù)成為可能。
- Web 分析/移動(dòng)端應(yīng)用程序分析:Web 和移動(dòng)端應(yīng)用程序生成使用數(shù)據(jù)流和交互數(shù)據(jù)流,可以實(shí)時(shí)查詢這些數(shù)據(jù)流以檢測用戶使用習(xí)慣、提升應(yīng)用、優(yōu)化體驗(yàn)等。
- 事件日志和分析:Pulsar 可以處理并存儲(chǔ)用戶應(yīng)用程序中的事件日志或操作系統(tǒng)中的系統(tǒng)日志。然后,可以使用 Pulsar SQL 查詢存儲(chǔ)的日志,調(diào)試應(yīng)用程序、搜索故障等。
- 事件回放:可以使用 SQL 查詢按時(shí)間順序提取事件。例如,短時(shí)間內(nèi)識(shí)別欺詐性交易的峰值。可以捕獲這些事件流,在改進(jìn)欺詐檢測算法時(shí)通過回放來模擬欺詐活動(dòng)。
到此,關(guān)于“怎么用Apache Pulsar SQL查詢數(shù)據(jù)流”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
本文標(biāo)題:怎么用ApachePulsarSQL查詢數(shù)據(jù)流
網(wǎng)頁地址:http://chinadenli.net/article30/gphppo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、小程序開發(fā)、網(wǎng)站制作、網(wǎng)站改版
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)