Google 推出新编程语言 Mangle:可能彻底改变数据库工作方式
Google 传来重磅消息:他们刚刚推出了一种全新的编程语言------Mangle,一个很可能彻底改变开发者与数据库交互的方式的新编程语言。
本文将为你全面拆解 Mangle:它究竟是什么、有哪些独特的强大功能、与其他编程语言的区别,以及为何它对所有数据领域或技术领域的从业者都至关重要。请耐心读完,你将明白为什么所有人都在讨论 Mangle,以及它为何能成为"游戏规则改变者"。
以下是 Google Mangle 仓库的官方链接:https://github.com/google/mangle
Google 官方介绍:
Mangle 是一种用于演绎数据库编程的编程语言。它是 Datalog 语言的扩展版本,增加了聚合操作、函数调用及可选类型检查等多种扩展功能。
演绎数据库编程能通过统一的方式呈现和查询数据,对于整合多数据源非常实用。该技术还可用于构建领域知识模型,其作用类似于机器可读的本体论,但不受二元谓词的限制。
Datalog 是一种富有表现力的声明式语言,其特性类似于关系演算(可类比 SQL 和关系视图)。与关系演算不同的是,它直接支持递归规则和程序结构化构建。
Mangle 完整继承了 Datalog 的核心架构,并通过功能扩展提升了其实用性。但需要注意的是,在使用这些扩展功能时,会丧失某些优良特性(如执行终止的确定性保障)。
作为开源项目,Mangle 旨在以开发者易于理解的方式传递概念,并支持便捷的实验探索。本代码库提供了基于 Go 语言实现的 Mangle 库,可轻松嵌入各类应用程序中使用。
一、什么是 Mangle?
首先,我们来搞清楚 Mangle 的本质。简单来说,Mangle 是 Google 专为数据库操作设计的编程语言,但它绝非普通的数据库语言------它针对"演绎式数据库编程"(deductive database programming)场景构建。别担心,这个概念并不复杂:它擅长通过逐步推理的方式,从复杂数据中挖掘答案,就像人一步步分析问题那样。
Mangle 基于著名的逻辑编程语言 Datalog 构建,但 Google 为其增加了诸多功能,使其能更轻松地处理大规模、高复杂度的数据集。需要说明的是,Google 于 2025 年 8 月 22 日正式发布了 Mangle。
Mangle 的核心目标是什么?Google 希望让开发者无需编写大量复杂代码,就能更轻松、更快速地对复杂数据集进行"提问"、分析和推理。本质上,它就是为了让数据处理更智能、更简单。
二、Mangle 的核心优势:为何如此强大?
Mangle 的基础是 Datalog------这种语言本就擅长逻辑查询和数据库操作,但面对大规模或高复杂度数据集时,Datalog 存在明显局限。而 Mangle 在这一基础上进行了强化,新增的功能能帮助开发者解决更复杂的问题,同时避免编写冗长代码。具体来看,它的核心优势体现在以下几点:
1. 聚合支持(Aggregation Support)
这是 Mangle 最亮眼的功能之一:你可以在查询中直接计算求和、平均值、计数等聚合结果。例如,某企业的用户数据分散在多个数据库中,若要统计用户总数,Mangle 只需一条查询语句就能完成,无需手动合并数据------既节省时间,又大幅提升效率。
# We gradually build up a database of people and topics
# they might be in an expert in (/knows) or enjoy doing (/likes).
# observed(Subject, Verb, Topic, Weight, Description).
# We add a weight to each edge positive or negative evidence.
# This is very crude, but may still be more insightful to
# expose and critique the reasoning than feeding an AI chatbot
# with textual descriptions.
observed(/john, /knows, /cooking, 1, "Has lots of books").
observed(/john, /likes, /cooking, -1, "Has not been reading them.").
observed(/ahmed, /knows, /cooking, 1, "Is cooking regularly.").
observed(/ahmed, /knows, /cooking, -1, "He does not try out any new things.").
observed(/ahmed, /likes, /cooking, 1, "He invites friends over to cook together.").
observed(/mia, /knows, /management, -1, "Does not have a lot of experience.").
observed(/mia, /knows, /management, -1, "She rarely presents her team's work.").
observed(/mia, /likes, /management, 1, "She enjoys helping her people grow.").
# Now, let's add all the weights.
aggregated(Subject, Verb, Topic, Sum)
:- observed(Subject, Verb, Topic, Weight, _)
|> do fn:group_by(Subject, Verb, Topic), let Sum = fn:sum(Weight).
filtered(Subject, Verb, Topic)
:- aggregated(Subject, Verb, Topic, Sum), Sum >= 1.2. 查询内函数调用(Function Calls Inside Queries)
另一个关键功能是支持在查询中嵌入函数调用。这意味着开发者在获取数据的同时,就能直接运行自定义计算或逻辑。比如需要转换数据格式、应用业务规则等特殊操作时,Mangle 能无缝处理,无需将查询与计算拆分成多步。
3. 可选类型检查(Optional Type Checking)
Mangle 提供可选的类型检查功能,相当于为数据一致性加了一层"安全网"。如果需要确保数字、日期、文本等数据格式正确,Mangle 可自动校验;若追求更高灵活性,也可跳过该步骤,由开发者自主控制校验严格程度。
4. 递归规则(Recursive Rules)
这是 Mangle 最强大的特性之一:支持查询语句"自我引用"。这在处理网络路径追踪、组织架构分析、社交关系图谱等层级化或关联化任务时格外实用。
5. 跨数据库兼容(Working Across Different Databases)
结合"一致查询多数据库"的能力,Mangle 能轻松对接不同数据源,无需担心兼容性问题。
6. 复杂分析与推理(Complex Analysis and Reasoning)
Mangle 专为复杂分析与推理设计,可处理诸如"理解复杂知识系统(即本体)中的关系""融合多类型数据进行深度分析"等高级任务。这让它成为一款通用工具,能解决那些原本需要多程序协作或复杂代码才能搞定的问题。
三、Mangle 与其他语言的对比
了解了 Mangle 的功能后,我们再来看它与开发者熟悉的其他编程/查询语言相比,究竟有何过人之处。
以 SQL 为例:SQL 在数据库查询中表现出色,但面对复杂推理任务或大规模互联数据集时,不仅难以维护,表达能力也会受限。
再看 Python:开发者常借助 Python 库处理高级数据任务,它灵活且强大,但并非"声明式语言"------这意味着你需要写大量代码告诉程序"怎么做",而不是直接说"要什么"。
Mangle 则将"声明式、递归性、高灵活性"集于一身:既能用简洁的语法表达复杂查询,又支持递归逻辑,还能直接在语言内实现聚合;同时无需额外工作,就能无缝集成不同数据集。
本质上,Mangle 让开发者无需陷入复杂代码,就能完成高级数据推理------这是一种更智能、更高效的复杂数据处理方式。
四、Mangle 的实际应用场景
明白 Mangle 的优势后,我们来看看它在真实业务中能发挥什么作用。了解这些应用场景,你就能理解它为何对开发者和数据专家如此重要:
[*]数据集成:许多企业的数据分散在多个数据库或系统中,整合分析往往十分繁琐。Mangle 支持以一致、简洁的方式查询多数据源,轻松解决这一痛点。
[*]图分析:图数据库用于存储关系型数据(如社交网络、组织架构),借助 Mangle 的递归规则,可高效查询这类复杂的关联数据。
[*]本体推理:用于理解复杂知识系统中的关系,在 AI 和数据建模领域尤为实用------比如推理不同信息间的关联逻辑。
[*]复杂数据分析:聚合能力、查询内函数调用、多源数据处理等特性,让 Mangle 完美适配金融、科技、科研、AI 等领域------这些领域的数据集往往规模大、类型多且相互关联。
简言之,Mangle 为开发者提供了智能、灵活的解决方案,让复杂数据的高级分析变得更简单、更快、更可靠。
五、如何入门 Mangle?
看完 Mangle 的功能和应用,你可能会问:"我该如何开始使用它?"其实很简单:
Mangle 是 Google 开源的项目,托管在 GitHub 上,任何人都可以免费获取。
仓库中包含了入门所需的全部资源:
[*]源代码(可查看 Mangle 的底层实现)
[*]示例代码(演示如何编写查询)
[*]详细文档(提供分步指导)
对于初学者,建议从实验示例查询开始:先用小数据集练习"提问",尝试使用聚合函数,或结合多源数据观察 Mangle 的处理效果;熟悉后再逐步过渡到复杂数据集和高级查询。
六、总结
通过 Mangle,Google 为开发者提供了一种处理复杂数据的强大新工具------现在就开始探索它,或许能让你的编码和数据项目抢占先机。
不妨动手测试、实验一番,看看 Google Mangle 能为你带来什么。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]