器→工具, 开源项目

数据查询语言Malloy

钱魏Way · · 41 次浏览

Malloy是什么?

Malloy是一个现代开源语言,专为数据建模、分析和转换而设计。它允许用户通过直观易懂的语法,定义数据模型、创建度量标准、建立数据之间的关系,以及执行复杂的数据查询和分析。Malloy的核心目标是简化数据处理和分析的流程,使得数据工作者能够更高效地理解和利用数据。

具体来说,Malloy提供了一种声明式的方式来描述数据模型和查询。用户可以通过Malloy语言编写脚本,定义数据的结构、计算字段、聚合操作等,并且这些脚本可以被编译成可执行的SQL查询,从而在底层数据库上运行。这种方式不仅提高了数据处理的效率,还降低了出错的概率。

此外,Malloy还提供了丰富的数据转换和清洗功能,使得用户能够轻松地将原始数据转换成适合分析的格式。同时,它也支持多种数据源,如关系型数据库、NoSQL数据库等,为用户提供了更大的灵活性。

主要特点

  • 开源性:Malloy在开源许可下发布,使得开发者可以自由地访问和使用其源代码。这意味着用户可以根据自身需求定制和扩展Malloy的功能。
  • 易用性:Malloy扩展默认安装了DuckDB,为用户提供了一个完整的语义层和一个快速的OLAP(联机分析处理)引擎。这使得用户可以轻松地进行数据分析操作,而无需担心底层数据处理的复杂性。
  • 与SQL的兼容性:Malloy能够生成SQL代码,这使其与现有的数据库系统具有良好的兼容性。用户可以利用Malloy来编写查询,并将其转换为SQL代码以在支持SQL的数据库上执行。
  • 对多种数据源的支持:Malloy对Google BigQuery和PostgreSQL等数据源有良好的支持。这意味着用户可以从不同的数据源中获取数据,并使用Malloy进行统一的分析和建模。

应用场景

  • 数据建模:用户可以使用Malloy来定义数据模型,包括源表、度量、关系和维度等,从而更清晰地理解和组织数据。
  • 数据分析:通过编写查询并解析为SQL代码,用户可以利用Malloy进行复杂的数据分析操作,如聚合、过滤和排序等。
  • 数据转换:Malloy还允许用户进行数据转换操作,如将原始数据转换为更适合分析或可视化的格式。
  • 总的来说,Malloy是一种功能强大且易于使用的开源数据建模语言,它为用户提供了灵活且高效的数据分析解决方案。无论是数据科学家、开发者还是业务分析师,都可以通过学习和使用Malloy来更好地理解和利用数据。

Malloy的试用

在Visual Studio Code (VS Code)中安装Malloy扩展。

然后下载样本数据Sample Models (models + data)

解压后使用VSC打开目录后就可以尝试:

Malloy的未来

Malloy不会完全取代SQL,但可以作为SQL的补充工具,特别是在数据建模和分析领域。以下是几个关键点,解释了为什么Malloy不会完全取代SQL,但可以与其协同工作:

SQL的广泛使用和成熟度

  • 广泛采用:SQL是关系数据库中最常用的查询语言,已经在多个行业中广泛使用了数十年。许多企业和开发人员都熟悉SQL,并且有大量的工具和框架支持SQL。
  • 标准化:SQL有多个标准化版本(如ANSI SQL),确保了跨不同数据库系统的兼容性和一致性。

 Malloy的优势

  • 易用性:Malloy提供了一种更简洁、更易读的语法,使得数据建模和查询更加直观。这对于非技术背景的用户尤其有用。
  • 抽象层次:Malloy允许用户在更高的抽象层次上定义数据模型和查询,减少了手动编写复杂SQL查询的需要。
  • 集成能力:Malloy可以生成SQL代码,这意味着它可以与现有的SQL数据库无缝集成,而不需要用户直接编写SQL。

互补关系

  • 数据建模:Malloy特别适合用于数据建模,定义数据源、度量、维度和关系。这可以简化数据准备和预处理步骤。
  • 查询生成:Malloy可以自动生成SQL查询,这有助于提高开发效率,尤其是在处理复杂的多表查询时。
  • 分析和可视化:Malloy还支持简单的数据可视化和仪表板创建,使得数据分析师可以更快速地进行探索性分析。

适用场景

  • 数据科学家和分析师:对于数据科学家和分析师来说,Malloy可以作为一种高级工具,帮助他们更高效地进行数据建模和分析,而不需要深入理解SQL的细节。
  • 开发人员:开发人员仍然需要掌握SQL,特别是对于低级别的数据操作和优化。Malloy可以作为辅助工具,提高他们的生产力。

未来趋势

  • 生态系统发展:随着Malloy生态系统的不断发展,可能会出现更多的工具和插件,进一步增强其功能和易用性。
  • 混合使用:在实际应用中,Malloy和SQL可能会被混合使用。例如,数据模型可以用Malloy定义,而具体的查询和优化任务仍由SQL完成。

 

Malloy不会完全取代SQL,但可以作为SQL的有力补充,特别是在数据建模和分析领域。它通过提供更简洁的语法和更高的抽象层次,使得数据处理和分析更加高效和直观。对于不同的用户群体,Malloy和SQL各有优势,可以相互补充,共同提升数据处理和分析的能力。

我的想法

Malloy是由 Looker 的原作者创建的一种新建模语言。可以尝试的场景是类似Google Looker这种BI工具,原先的一些报表平台常常通过拖拽的方式生成SQL来生产报表或可视化呈现。由于Malloy的语法相对更加简单,可以尝试先生成Malloy代码再生成SQL的方式来实现。

参考链接:

发表回复

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