怎么用Apache Pulsar SQL查询数据流
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍"怎么用Apache Pulsar SQL查询数据流",在日常操作中,相信很多人在怎么用Apache Pulsar SQL查询数据流问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2024年11月22日怎么用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 的查询提供了更加容易的方法。
数据流以结构化的方式在 Pulsar 中被生产,消费和存储
Pulsar SQL 是基于 Apache Pulsar 建立的查询层,用户可以在 Pulsar SQL 中动态查询存储在 Pulsar 内部的所有新、旧流,用户可以通过查询单个系统中的新数据流和历史数据流来进一步理解 Pulsar SQL。
Pulsar SQL 的另一个重要用例在于它可以在很大程度上简化某些数据管道。传统的 ETL 管道(例如:用于输出数据到数据湖),需要从一组外部系统提取数据,并对数据进行一系列转换,以在加载到目标系统前清除旧格式、添加新格式。
格式转换一般作为独立步骤按顺序进行,任一步骤中出现故障,整个过程都会停止。这种方法有两个致命缺点:
借助 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 节点。
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 副本数来实现更高的吞吐量,这一操作简便易行。
Worker 从多个副本并行读取以实现高吞吐量
Pulsar SQL 不仅可以查询 Bookie 中的数据,还可以查询卸载到云存储中的数据。通过分层存储,用户不仅可以存储超出物理集群实际容量的数据,还可以对这些数据进行查询,获取更多有价值的信息。
用 例
下面是一些常见的 Pulsar SQL 用例。Pulsar 简化了用例中的架构,原本需要多个系统才能实现的任务,在添加了 Pulsar SQL 之后,用户就可以使用 Pulsar 进行日志提取与查询。
这篇文章主要介绍"怎么用Apache Pulsar SQL查询数据流",在日常操作中,相信很多人在怎么用Apache Pulsar SQL查询数据流问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么用Apache Pulsar SQL查询数据流"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
这一需求促成了 Pulsar SQL 的开发。Apache Pulsar 2.2.0 中首次发布 Pulsar SQL 这一新框架,通过 Pulsar SQL,用户可以使用 SQL 接口高效查询存储在 Pulsar 中的数据流。
Pulsar 拥有将服务/计算与存储分离的创新型架构,用户因此可以轻松地独立扩展计算或存储资源,添加附加存储资源也更容易。
每个 ETL 步骤都要根据其运行的框架进行专门设计,例如:Sqoop 或 Flume 用于提取数据,Hive 和 Pig 脚本用于转换数据,Hive 或 Impala 进程加载数据到可查询表。
本质上看,简化数据管道的过程是面向批处理的,因此加载到数据湖的数据与传入的数据流不一致。批次之间的间隔越长,数据越不及时;相应地,基于数据的决策也就越不及时。
实时分析: Pulsar 在收到消息后立即可以查询,这一功能使得通过 SQL 查询来合并最新数据到实时数据仪表板,或监控最新数据成为可能。 Web 分析/移动端应用程序分析: Web 和移动端应用程序生成使用数据流和交互数据流,可以实时查询这些数据流以检测用户使用习惯、提升应用、优化体验等。 事件日志和分析: Pulsar 可以处理并存储用户应用程序中的事件日志或操作系统中的系统日志。然后,可以使用 Pulsar SQL 查询存储的日志,调试应用程序、搜索故障等。 事件回放: 可以使用 SQL 查询按时间顺序提取事件。例如,短时间内识别欺诈性交易的峰值。可以捕获这些事件流,在改进欺诈检测算法时通过回放来模拟欺诈活动。
到此,关于"怎么用Apache Pulsar SQL查询数据流"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
存储
查询
系统
用户
数据流
架构
消息
事件
吞吐量
吞吐
多个
实时
日志
格式
应用
订阅
单个
历史
历史数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
防范网络安全的措施
服务器下载很慢
光遇服务器类别
春天里伴奏软件开发
涵江区政府网络安全
医疗健康数据库
应城软件开发
德惠正规网络技术服务保障
交换机是服务器的组成部分吗
数据库decimal有什么用
北京服务器机柜质量好不好
云服务器停机扩容报告
达梦数据库如何去除字段中空格
数据库引擎的注册
辽宁gps网络时钟服务器
软件开发测试工程师的薪酬
亲朋服务器什么时候从开
软件开发要一种架构
网络服务器一直没有关闭
服务器初始化电源管理
违反网络安全法的有哪些游戏
软件开发质量评分
软件开发 许可文件
CISCO服务器管理口图标
上海微型软件开发价格表格
三维扫描仪软件开发费用
网络技术和网络安全哪个好考
mysql进入默认数据库
国互联网科技有限公司招聘
奶块哪个服务器最多人2022