溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Apache Pulsar SQL查詢數(shù)據流

發(fā)布時間:2021-08-17 14:15:22 來源:億速云 閱讀:112 作者:chen 欄目:大數(shù)據

這篇文章主要介紹“怎么用Apache Pulsar SQL查詢數(shù)據流”,在日常操作中,相信很多人在怎么用Apache Pulsar SQL查詢數(shù)據流問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Apache Pulsar SQL查詢數(shù)據流”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!



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

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

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

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

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

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

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

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

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

怎么用Apache Pulsar SQL查詢數(shù)據流
數(shù)據流以結構化的方式在 Pulsar 中被生產,消費和存儲  

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

Pulsar SQL 的另一個重要用例在于它可以在很大程度上簡化某些數(shù)據管道。傳統(tǒng)的 ETL 管道(例如:用于輸出數(shù)據到數(shù)據湖),需要從一組外部系統(tǒng)提取數(shù)據,并對數(shù)據進行一系列轉換,以在加載到目標系統(tǒng)前清除舊格式、添加新格式。

格式轉換一般作為獨立步驟按順序進行,任一步驟中出現(xiàn)故障,整個過程都會停止。這種方法有兩個致命缺點:

  • 每個 ETL 步驟都要根據其運行的框架進行專門設計,例如:Sqoop 或 Flume 用于提取數(shù)據,Hive 和 Pig 腳本用于轉換數(shù)據,Hive 或 Impala 進程加載數(shù)據到可查詢表。

  • 本質上看,簡化數(shù)據管道的過程是面向批處理的,因此加載到數(shù)據湖的數(shù)據與傳入的數(shù)據流不一致。批次之間的間隔越長,數(shù)據越不及時;相應地,基于數(shù)據的決策也就越不及時。


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

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

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



架 構

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

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

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

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

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

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

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

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

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



用 例

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

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

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI