Skip to main content
QUICK REVIEW

[论文解读] Towards a Polyglot Data Access Layer for a Low-Code Application Development Platform

Ana Nunes Alonso, João Abreu|arXiv (Cornell University)|Apr 28, 2020
Software System Performance and Reliability被引用 4
一句话总结

本文提出了一种面向OutSystems低代码平台的多语言数据访问层,通过扩展的SQL查询引擎与内嵌脚本片段,实现对多种NoSQL数据存储的无缝查询。通过利用PostgreSQL的外部数据包装器(Foreign Data Wrappers),并支持模式 introspection(模式内省)、查询优化及原生语言覆盖,该方法在保持低代码开发简洁性的同时,充分挖掘了NoSQL功能,实现了高效、可扩展且交互式的数据访问,且无需开发者具备NoSQL专业知识。

ABSTRACT

Low-code application development as proposed by the OutSystems Platform enables fast mobile and desktop application development and deployment. It hinges on visual development of the interface and business logic but also on easy integration with data stores and services while delivering robust applications that scale. Data integration increasingly means accessing a variety of NoSQL stores. Unfortunately, the diversity of data and processing models, that make them useful in the first place, is difficult to reconcile with the simplification of abstractions exposed to developers in a low-code platform. Moreover, NoSQL data stores also rely on a variety of general purpose and custom scripting languages as their main interfaces. In this paper we propose a polyglot data access layer for the OutSystems Platform that uses SQL with optional embedded script snippets to bridge the gap between low-code and full access to NoSQL stores. In detail, we characterize the challenges for integrating a variety of NoSQL data stores; we describe the architecture and proof-of-concept implementation; and evaluate it with a sample application.

研究动机与目标

  • 解决将多种NoSQL数据存储集成到低代码平台时,开发者无需掌握多种NoSQL查询语言的挑战。
  • 通过抽象NoSQL复杂性,保持低代码体验,同时在需要时支持对高级查询功能的完全访问。
  • 通过统一且可扩展的查询引擎,实现对NoSQL存储的交互式、可扩展且安全的数据访问。
  • 评估使用扩展SQL与内嵌脚本片段作为低代码抽象与NoSQL系统能力之间桥梁的可行性与有效性。

提出的方法

  • 该方法使用扩展的关系模型,通过嵌套复合类型(如映射、数组)表示多种NoSQL数据模型,实现最小化的概念开销。
  • 基于PostgreSQL的联邦查询引擎结合外部数据包装器(Foreign Data Wrappers),集成多个NoSQL源,支持跨存储查询与优化。
  • 在集成时自动执行模式内省(schema introspection),并支持对复合键或自定义结构的手动覆盖。
  • 将NoSQL系统(如MongoDB、Elasticsearch)的原生查询片段嵌入SQL查询中,以访问标准SQL无法表达的高级功能。
  • 系统支持查询下推与优化,例如在MongoDB管道中使用$match,以提升性能并减少数据传输。
  • 使用物化视图封装复杂、与数据存储相关的访问路径,实现对原生查询逻辑的复用与优化。

实验结果

研究问题

  • RQ1低代码平台如何高效且透明地集成多种具有异构数据与查询模型的NoSQL数据存储?
  • RQ2扩展的SQL查询引擎结合内嵌脚本片段,在多大程度上能够弥合低代码抽象与完整NoSQL功能之间的差距?
  • RQ3模式内省在提升开发人员生产力的同时,如何在保持性能与灵活性方面发挥作用?
  • RQ4标准SQL与内嵌原生查询片段的结合,在支持复杂、优化且可扩展的数据访问方面有多高效?
  • RQ5在构建支持抽象与底层控制的多语言数据访问层时,关键的架构与实现权衡是什么?

主要发现

  • 扩展的关系模型结合嵌套类型,能够以极小的概念或转换开销,成功映射绝大多数NoSQL数据模型。
  • 模式内省显著提升了开发人员生产力,尤其在结合对复合键或自定义结构的手动覆盖时更为明显。
  • 在SQL中嵌入原生查询片段,使开发人员能够访问标准SQL无法表达的高级NoSQL功能,同时不破坏低代码抽象。
  • 使用具备联邦查询能力的标准SQL引擎与脚本层,在查询优化与组合方面表现极为高效,实际效果优于定制查询引擎。
  • 查询下推优化(如在MongoDB管道中下推$match操作)显著减少了数据传输,提升了性能。
  • 物化视图替换功能在当前原型中被识别为关键缺失功能,凸显了其在封装与复用复杂、与数据存储相关的访问模式中的重要性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。