中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么用Apache Pulsar SQL查詢數據流

發布時間:2021-08-17 14:15:22 來源:億速云 閱讀:113 作者:chen 欄目:大數據

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



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

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

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

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

本文從技術層面介紹 Pulsar SQL 的架構、實現、功能等,以及促成 Pulsar SQL 開發的背景和用例。


背 景 介 紹

Apache Pulsar 最初是作為下一代發布/訂閱消息系統而開發的,旨在改善現有消息系統和流系統的不足,與傳統的發布/訂閱消息系統相比,Apache Pulsar 能夠處理更多的用例。

Pulsar 擁有將服務/計算與存儲分離的創新型架構,用戶因此可以輕松地獨立擴展計算或存儲資源,添加附加存儲資源也更容易。

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

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

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

而 Apache Pulsar 支持在一個系統中同時訪問這兩類數據。Schema registry 的實現為支持 SQL 的查詢提供了更加容易的方法。

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

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

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

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

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

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


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

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

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



架 構

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

Presto Pulsar connector 如何高效地從 Pulsar 讀取數據?

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

怎么用Apache Pulsar SQL查詢數據流
Pulsar SQL 架構概覽  

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

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

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

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

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



用 例

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

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

到此,關于“怎么用Apache Pulsar SQL查詢數據流”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

定陶县| 舒兰市| 龙江县| 神池县| 乌兰浩特市| 北安市| 克什克腾旗| 凌源市| 易门县| 曲阜市| 临邑县| 台东市| 黄梅县| 汉中市| 桃江县| 和田县| 蒙城县| 仁寿县| 成安县| 无为县| 江川县| 化隆| 莱芜市| 石家庄市| 神农架林区| 察隅县| 沙湾县| 和硕县| 铁岭县| 临潭县| 五家渠市| 东丽区| 宕昌县| 平山县| 年辖:市辖区| 和田县| 名山县| 阜宁县| 双柏县| 牡丹江市| 石林|