怎么用ApachePulsarSQL查詢數(shù)據(jù)流

這篇文章主要介紹“怎么用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)新、求實、誠信、拼搏”的企業(yè)精神,致力為企業(yè)提供全面的網(wǎng)絡(luò)宣傳與技術(shù)應(yīng)用整體策劃方案,為企業(yè)提供包括“網(wǎng)站建設(shè)、成都響應(yīng)式網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、微信網(wǎng)站建設(shè)、重慶小程序開發(fā)公司、商城網(wǎng)站定制開發(fā)、平臺網(wǎng)站建設(shè)秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。



Apache Pulsar 越來越受歡迎,尤其在成為 Apache 軟件基金會的頂級項目后。

用戶不僅將 Pulsar 用于發(fā)布/訂閱消息,還利用其可擴展的存儲架構(gòu)和分層存儲的特性來存儲數(shù)據(jù)流。存儲數(shù)據(jù)后,用戶需要對存儲在 Pulsar 中的數(shù)據(jù)進(jìn)行查詢。

另外,一些用戶希望可以在數(shù)據(jù)存儲到 Pulsar 后立即進(jìn)行查詢,而無需等待直至數(shù)據(jù)移入數(shù)據(jù)庫等外部系統(tǒng)。

這一需求促成了 Pulsar SQL 的開發(fā)。Apache Pulsar 2.2.0 中首次發(fā)布 Pulsar SQL 這一新框架,通過 Pulsar SQL,用戶可以使用 SQL 接口高效查詢存儲在 Pulsar 中的數(shù)據(jù)流。

本文從技術(shù)層面介紹 Pulsar SQL 的架構(gòu)、實現(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ù)/計算與存儲分離的創(chuàng)新型架構(gòu),用戶因此可以輕松地獨立擴展計算或存儲資源,添加附加存儲資源也更容易。

由于這一架構(gòu)的優(yōu)勢,用戶不僅將 Pulsar 用作一個發(fā)布/訂閱系統(tǒng),還將其用作存儲新、舊流數(shù)據(jù)的存儲平臺。Pulsar 中增加了分層存儲后,“流存儲”和“事件存儲”的實用性也變得越來越重要。

借助分層存儲,用戶可以通過云存儲(例如:Amazon S3、Google Cloud Storage等)擴展現(xiàn)有 Pulsar 集群,從而以極低的單位成本在云中存儲近乎無限量的流數(shù)據(jù)。

Pulsar 同時具有存儲、歸檔與處理數(shù)據(jù)流的能力,這使得在單個系統(tǒng)中同時訪問實時數(shù)據(jù)與歷史數(shù)據(jù)成為可能。直到現(xiàn)在,在單個系統(tǒng)中同時訪問實時數(shù)據(jù)與歷史數(shù)據(jù)仍然需要多個系統(tǒng)和工具。

而 Apache Pulsar 支持在一個系統(tǒng)中同時訪問這兩類數(shù)據(jù)。Schema registry 的實現(xiàn)為支持 SQL 的查詢提供了更加容易的方法。

怎么用Apache Pulsar SQL查詢數(shù)據(jù)流
數(shù)據(jù)流以結(jié)構(gòu)化的方式在 Pulsar 中被生產(chǎn),消費和存儲  

Pulsar SQL 是基于 Apache Pulsar 建立的查詢層,用戶可以在 Pulsar SQL 中動態(tài)查詢存儲在 Pulsar 內(nèi)部的所有新、舊流,用戶可以通過查詢單個系統(tǒng)中的新數(shù)據(jù)流和歷史數(shù)據(jù)流來進(jìn)一步理解 Pulsar SQL。

Pulsar SQL 的另一個重要用例在于它可以在很大程度上簡化某些數(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)換一般作為獨立步驟按順序進(jìn)行,任一步驟中出現(xiàn)故障,整個過程都會停止。這種方法有兩個致命缺點:

  • 每個 ETL 步驟都要根據(jù)其運行的框架進(jìn)行專門設(shè)計,例如: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ù)越不及時;相應(yīng)地,基于數(shù)據(jù)的決策也就越不及時。


借助 Pulsar SQL,Apache Pulsar 可以實現(xiàn)在同一系統(tǒng)上提取、清除格式、轉(zhuǎn)換格式、查詢數(shù)據(jù)流等操作,從而更好地應(yīng)對上述問題。  

Pulsar 的存儲層可擴展(因為Pulsar 使用 Apache BookKeeper 作為其事件存儲層),因此 Pulsar 可以實現(xiàn)在單一系統(tǒng)中對數(shù)據(jù)的操作,并對所有數(shù)據(jù)(流數(shù)據(jù)和歷史數(shù)據(jù))一視同仁。

Pulsar SQL 利用 Presto 和 Pulsar 獨特的架構(gòu)以高度可擴展的方式進(jìn)行查詢,而無需考慮組成流的 topic 分區(qū)的數(shù)量。接下來我們將討論一下 Pulsar SQL 的架構(gòu)。



架 構(gòu)

Presto Pulsar connector   是 Pular 和 Presto 的集成,該 connector 在 Presto 集群中的 Presto worker 上運行。Presto worker 借助 connector 來讀取 Pulsar 集群中的數(shù)據(jù),并對讀取的數(shù)據(jù)進(jìn)行查詢。

Presto Pulsar connector 如何高效地從 Pulsar 讀取數(shù)據(jù)?

在 Pulsar 中,producer 向 Pulsar 寫入消息,寫入的消息被放入不同的通道,這些通道又稱 為 topic。Pulsar 中的 topic 以分片形式存儲在 Apache BookKeeper 中,并復(fù)制每個 topic 分片到 Bookie 中,Bookie 是數(shù)量可配置(默認(rèn)值為 2 個)的 BookKeeper 節(jié)點。

怎么用Apache Pulsar SQL查詢數(shù)據(jù)流
Pulsar SQL 架構(gòu)概覽  

Pulsar SQL 旨在最大化數(shù)據(jù)掃描速度,因此 Presto Pulsar connector 可以直接從 Bookie 讀取數(shù)據(jù)(而不是從 Pulsar Consumer API 讀?。岳?Pulsar 分片架構(gòu)的優(yōu)勢。Consumer API 適用于在發(fā)布/訂閱用例中消費消息,但不一定能優(yōu)化批量讀取。

為了保證排序,Pulsar 中僅由一個 Broker 為單個 topic 提供服務(wù),由此將讀取吞吐量限制為一個 Broker 的讀取吞吐量。用戶可以利用 topic 分區(qū)來提高讀取吞吐量,但是 Pulsar 希望用戶可以在不修改現(xiàn)有 topic 的條件下,以高性能的方式查詢 topic。對于查詢用例,我們不關(guān)心排序,只需讀取全部數(shù)據(jù)即可。

直接從組成 topic 的分片讀取數(shù)據(jù)是一個更優(yōu)方案。因為分片及其副本散布在多個 BookKeeper Bookie 之間,Presto worker 可以并發(fā)地從多個 BookKeeper 節(jié)點上讀取分片數(shù)據(jù),,以實現(xiàn)高吞吐量。用戶還可以通過配置更大的 topic 副本數(shù)來實現(xiàn)更高的吞吐量,這一操作簡便易行。

怎么用Apache Pulsar SQL查詢數(shù)據(jù)流
Worker 從多個副本并行讀取以實現(xiàn)高吞吐量  

Pulsar SQL 不僅可以查詢 Bookie 中的數(shù)據(jù),還可以查詢卸載到云存儲中的數(shù)據(jù)。通過分層存儲,用戶不僅可以存儲超出物理集群實際容量的數(shù)據(jù),還可以對這些數(shù)據(jù)進(jìn)行查詢,獲取更多有價值的信息。



用 例

下面是一些常見的 Pulsar SQL 用例。Pulsar 簡化了用例中的架構(gòu),原本需要多個系統(tǒng)才能實現(xiàn)的任務(wù),在添加了 Pulsar SQL 之后,用戶就可以使用 Pulsar 進(jìn)行日志提取與查詢。

  • 實時分析:Pulsar 在收到消息后立即可以查詢,這一功能使得通過 SQL 查詢來合并最新數(shù)據(jù)到實時數(shù)據(jù)儀表板,或監(jiān)控最新數(shù)據(jù)成為可能。
  • Web 分析/移動端應(yīng)用程序分析:Web 和移動端應(yīng)用程序生成使用數(shù)據(jù)流和交互數(shù)據(jù)流,可以實時查詢這些數(shù)據(jù)流以檢測用戶使用習(xí)慣、提升應(yīng)用、優(yōu)化體驗等。
  • 事件日志和分析:Pulsar 可以處理并存儲用戶應(yīng)用程序中的事件日志或操作系統(tǒng)中的系統(tǒng)日志。然后,可以使用 Pulsar SQL 查詢存儲的日志,調(diào)試應(yīng)用程序、搜索故障等。
  • 事件回放:可以使用 SQL 查詢按時間順序提取事件。例如,短時間內(nèi)識別欺詐性交易的峰值??梢圆东@這些事件流,在改進(jìn)欺詐檢測算法時通過回放來模擬欺詐活動。

到此,關(guān)于“怎么用Apache Pulsar SQL查詢數(shù)據(jù)流”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

本文標(biāo)題:怎么用ApachePulsarSQL查詢數(shù)據(jù)流
網(wǎng)頁地址:http://muchs.cn/article30/gphppo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、手機網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、小程序開發(fā)、網(wǎng)站制作網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化