探索 Querybook:一款助力大数据查询的利器

举报
liuzhiquan 发表于 2024/11/29 10:47:12 2024/11/29
【摘要】 Querybook 是一款专注于大数据查询的应用程序(或者平台,根据其实际性质描述),它旨在为数据分析师、业务人员以及任何需要与大数据打交道的小伙伴们,提供一个简单易用的界面,让大家可以轻松地在海量数据中查找自己想要的信息。 无论是企业存储的海量业务交易记录、用户行为数据,还是从各种渠道收集来的复杂数据集,Querybook 都能够应对自如。它就像是一把精准的钥匙,能够快速打开数据宝库的大门。

一、Querybook 的特色功能

便捷的查询界面

它拥有简洁直观的操作界面,无需复杂的代码编写或者繁琐的指令输入,哪怕你不是专业的技术人员,也能快速上手,通过简单的操作设置好查询条件,轻松发起对大数据的查询请求。例如,你可以通过可视化的下拉菜单选择要查询的数据集、指定查询的字段范围以及设定筛选条件等,整个过程清晰明了。

高效的数据处理能力

Querybook 深知大数据的体量之庞大,所以内置了先进的查询优化机制。不管是面对千万级还是亿级的数据量,它都能迅速地执行查询任务,尽可能缩短等待时间,让你快速得到查询结果。这得益于它对底层数据存储和检索技术的巧妙运用,能够高效地穿梭在数据的海洋里,抓取到你需要的那一颗 “数据珍珠”。

强大的整合性

可以无缝对接多种常见的大数据存储系统,比如 Hadoop 分布式文件系统、各类关系型数据库(像 MySQL、PostgreSQL 等)以及非关系型数据库(如 MongoDB 等)。这意味着,无论企业的数据分散存储在何处,Querybook 都能将它们整合在一起,让你在一个统一的平台上进行查询操作,无需在不同的系统之间来回切换,大大提高了工作效率。

二、适用场景

企业数据分析

对于企业的数据分析师来说,Querybook 是日常工作的得力助手。可以利用它快速查询销售数据、客户反馈数据等,深入分析业务趋势、挖掘潜在市场机会,为企业的决策提供有力的数据支撑。

业务决策支持

业务人员在制定营销策略、评估项目效果等方面,也可以借助 Querybook 获取准确的数据洞察。比如查看不同产品的受欢迎程度、不同地区的业务表现等,基于数据来做出更加明智的业务决策。
总之,Querybook 正凭借着它独特的优势,在大数据查询领域崭露头角,帮助众多用户更轻松地驾驭大数据,解锁数据背后的价值。如果你也经常需要和大数据打交道,不妨试试 Querybook,相信它会给你带来不一样的体验哦!
希望这篇博客能够满足你的需求呀,要是你还有更多关于 Querybook 的具体细节想添加进去,比如特定的技术亮点、使用案例等,可以随时告诉我,我帮你进一步完善内容。

三、特性亮点

Querybook 的 Doc UI

用户首次访问时,他们会很快注意到其独特的 DataDoc 界面。这是用户进行查询和分析的主要位置。每个 DataDoc 均由一系列单元格组成,这些单元格可以是以下三种类型之一:文本、查询或图表。

  • 文本单元格带有内置的富文本支持,以供用户记下他们的想法或见解。
  • 查询单元格用于组成和执行查询。
  • 图表单元格用于根据执行结果创建可视化效果。类似 Google Docs,授予用户访问 DataDoc 的权限后,他们可以共同实时协作。

通过直观的图表 UI,用户可以轻松地将 DataDoc 变成一个展示内容的仪表板。你可以选择多种可视化选项,例如时间序列、饼图、散点图等。然后你可以将可视化连接到 DataDoc 任意查询的结果上,并按需对它们做排序和聚合预处理。要自动更新这些图表,你可以使用计划选项并选择所需的时间安排。计划程序可以通知用户成功或失败的结果。结合 Jinja 提供的模板选项,创建实时更新 DataDoc 的速度非常快。

计划任务和可视化特性并不是要取代 Airflow 或 Superset 之类的工具,而是为用户提供了一种简单快速的方法来对其查询进行实验和迭代。Pinterest 工程师通常将 Querybook 用作撰写查询的第一步,之后再创建生产级工作流和仪表板。

最后一点也很重要,Querybook 带有一套自动查询分析系统。它可以对每个执行的查询进行分析,以提取元数据(例如引用的表和查询运行器)。Querybook 使用这些信息自动更新其数据模式和搜索排名,并显示表的常用用户和查询示例。查询越多,表的文档化程度就越高。

四、架构工程

Querybook 概述

1、创建 DataDoc 并输入查询内容

首先,用户需创建一个 DataDoc,随后将查询内容写入其中的一个单元格里。在用户键入查询内容时,这些内容会通过 Socket.IO 流式传输至服务器,开启整个流程。

2、服务器推送与保存更新

服务器在接收到用户的查询信息后,会执行以下操作:
  • 实时推送:将这些增量信息推送给所有正在通过 Redis 读取该 DataDoc 的用户,确保相关用户能及时获取到最新的查询输入情况。
  • 保存更新:把更新后的 DataDoc 保存在数据库中,同时为 worker 创建一个异步作业,目的是更新 ElasticSearch 中对应 DataDoc 的内容,方便后续进行搜索操作。

3、执行查询操作

当用户编写完查询内容后,点击运行按钮来执行查询。此时,服务器会在数据库中创建一条记录,并将一个查询作业插入到 Redis 任务队列中。

4、查询引擎处理与实时更新推送

插入到 Redis 任务队列中的任务会被 worker 接收,接着 worker 会把查询发送到相应的查询引擎(如 Presto、Hive、SparkSQL 或者任何与 Sqlalchemy 兼容的引擎)进行处理。在查询运行期间,worker 会通过 Socket.IO 将实时更新信息推送到 UI 界面,让用户可以实时了解查询的进展情况。

5、结果处理与展示

查询执行完成后,worker 会加载查询结果,并将其分批上传至一个可配置的存储服务中,例如可以选择上传到 S3、Google Cloud Storage 或者本地文件等(Querybook 允许用户根据自身需求自定义这部分内容)。最后,浏览器会收到查询完成的通知,进而向服务器发出请求以加载查询结果,并将结果显示给用户。
需要注意的是,本节只是聚焦于 Querybook 的一个用户流,但该流程已经涵盖了其所使用的所有基础架构。并且,像数据库方面,MySQL 也能够与任何和 Sqlalchemy 兼容的数据库(比如 Postgres)进行互换,用户可根据实际情况灵活选择。




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。