实时分析需要SQL和复杂查询

​今天的数据驱动型企业不仅需要针对实时数据作出快速响应要,而且还必须执行复杂的查询以解决复杂的业务问题。

例如,客户个性化系统需要将历史数据集与实时数据流结合起来,以便立即向客户提供最相关的产品建议。提供关键任务的实时业务观察能力的运营分析系统也必须如此,例如,在线支付供应商需要监测其全球范围内的交易,以发现可能预示金融欺诈的异常情况。

或者想象一个网上学习平台需要为学区客户和内部客户团队提供关于学生和教师使用情况的最新洞察力。或者是一个市场新闻供应商,需要监测并确保其金融客户在狭窄的窗口内获得准确的、相关的更新,以实现盈利的交易。

NoSQL的局限性

SQL支持复杂的查询,因为它是一种非常具有表现力的。 是成熟的语言。复杂的SQL查询在商业智能(BI)中早已司空见惯。而当Hadoop和Hive这样的系统出现时,它首次将复杂的查询与大数据结合起来。Hive在Hadoop的本地MapReduce编程范式上实现了一个SQL层。这些第一代基于SQL的大数据系统的代价是,它们以更高的查询延迟为代价,提高了数据处理的吞吐量。因此,这些使用案例仍然是运行在批处理模式中。

当NoSQL数据库(如键值和文档存储)出现时,情况发生了变化。设计目标是低延迟和规模。现在,公司可以把一个庞大的数据集,组织成简单的键值或文档对,并立即执行查找和其他简单的查询。这些大规模、可扩展的键值存储或文档数据库的设计者决定,只有当查询性质简单时,规模和速度才有可能。在键值存储中查找一个值,可以做到快如闪电。相比之下,SQL查询,由于过滤器、排序和聚合的固有复杂性,在技术上太有挑战性,无法在大量数据上快速执行。

不要注意那个幕后的人

不幸的是,由于上述原因,当查询复杂、嵌套且必须返回精确答案时,NoSQL数据库往往会遇到问题。这故意不是他们的强项。他们的查询语言,无论是类似SQL的变体,如 CQL (Cassandra)和Druid SQL等类似SQL的变体,还是MQL(MongoDB)等完全自定义的语言,都不支持连接和其他复杂的查询命令。

NoSQL数据库的供应商就像绿野仙踪一样,用烟雾和镜子分散你的注意力,高谈阔论狭义的速度定义,这样你就不会注意到NoSQL数据库在实时分析方面的实际弱点。使用NoSQL数据库的开发人员最终被迫将Join和其他数据逻辑嵌入到他们自己的应用程序代码中–从单独的表中获取数据到进行连接优化和其他分析工作的一切。

虽然走NoSQL的道路是可能的,但它是繁琐和缓慢的。以一个申请抵押贷款的人为例。为了分析他们的信用度,你会创建一个数据应用来计算数据,比如这个人的信用历史、未偿贷款和还款历史。要做到这一点,你需要结合几个数据表格,其中一些可能是归一化的,哪些数据是真实的,哪些是不真实的。你还可能分析当前和历史上的抵押贷款利率,以确定提供什么利率。

使用SQL,你可以简单地将信用记录和贷款支付表连接在一起,并聚合大规模的历史数据集,如每日抵押贷款利率。然而,使用像Python或Java这样的东西来手动重新创建连接和聚合,与SQL相比,你的应用程序中的代码行数会增加几十甚至一百。

更多的应用程序代码不仅需要更多的时间来创建,而且几乎总是导致更慢的查询。如果不能使用基于SQL的查询优化器,加速查询是很困难和费时的,因为应用程序中的业务逻辑和应用程序使用的基于查询的数据访问路径之间没有分界。像一个普通的东西 join table一样的东西,SQL可以有效而优雅地处理,但在其他语言中却可能成为一个臃肿的内存占用者。

最后,用应用程序代码编写的查询也是比较脆弱的,需要不断的维护和测试,如果数据量发生变化,还可能需要重写。而大多数开发人员缺乏时间和专业知识来进行这种持续的维护。

只有一个NoSQL系统我认为可以合理地胜任复杂的查询。GraphQL。GraphQL系统可以将数据类型与特定的数据字段联系起来,并提供函数来检索文档的选定字段。它的查询API支持复杂的操作,例如根据一组匹配字段过滤文档,并有选择地从匹配的文档中返回字段的子集。GraphQL的主要分析缺陷是它缺乏表达能力,无法根据两个不同的数据集中特定字段的值来连接这两个数据集。大多数分析性查询需要这种能力,以便在查询时连接多个数据源。

为工作选择最佳工具–SQL

在技术和生活中,每项工作都有一个为其设计的最佳工具。对于复杂的分析查询,SQL无疑是最好的工具。SQL拥有半个世纪以来开发的丰富的强大命令集。创建查询很容易,调整和优化查询更容易,以加快结果,缩小中间表,降低查询成本。

有一些关于SQL数据库的神话,但它们是基于1990年代的传统关系型系统。事实是,现代云原生SQL数据库支持实时分析所有必要的关键功能,包括。

  • 可变数据,以实现令人难以置信的快速数据摄取和对晚到事件的顺利处理。
  • 灵活的模式Schema,可以根据传入的流媒体数据的结构自动调整。
  • 即时扩大数据写入或查询的规模,以处理突发的数据。

SQL仍然非常流行,在所有编程语言中排名最靠前。正如我们所看到的,它支持复杂的查询,这是现代实时数据分析的一个要求。相比之下,NoSQL数据库在执行连接和其他复杂的查询命令方面比较弱。此外,寻找一个不太知名的自定义查询语言的专家可能会很费时和昂贵。

底线是,你将没有问题找到熟练的数据工程师和数据运营人员,他们知道SQL及其复杂查询的能力。他们将能够利用这些知识和能力,推动你的组织从批量分析到实时分析的飞跃。​

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/247830.html<

(0)
运维的头像运维
上一篇2025-04-27 07:26
下一篇 2025-04-27 07:27

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注