Data Querying & Management
-
XPath
XPath 是一种易于使用的查询语言,可以检索特定对象。您可以使用它获取要在页面中显示或编辑的对象,并通过微流修改这些对象。
您可以通过 XPath 定义表达式以过滤感兴趣的对象,还可以使用关联来检索和过滤相关的对象。
XPath 自动确保应用您在实体上定义的所有访问规则。
有关更多信息,请参阅 西门子低代码 Studio Pro 指南中的 XPath。
-
OQL
西门子低代码 对象查询语言 (OQL) 是基于 SQL 的关系查询语言。OQL 相对于 SQL 的主要优势在于,OQL 使用模型中使用的实体和关联名称,而非实际数据库表名称。
OQL 可以使用预定义的关系(关联)轻松连接对象,而不必计算应耦合的列。尽管存在这些区别,许多 SQL 关键字也可以在 OQL 中使用。
OQL 主要用于报告在某些属性上分组时,需要聚合函数的位置。使用 OQL 的另一个原因是能定义自定义安全性表达式,这需要手动进行定义。某些情况下,如果您自行使用 OQL 来处理安全性问题,而不非依赖 XPath 的现成安全性问题解决措施,查询速度可能会更快。
有关更多信息,请参见 西门子低代码Studio Pro 指南中的 OQL。
-
SQL
所有应用程序数据都存储在关系数据库中。在 西门子低代码 Cloud 里是 PostgreSQL,但也有其他选项,具体取决于部署环境。
西门子低代码 提供 Java API,可直接与底层关系数据库交互。您可以通过 西门子低代码 Java API 使用 Java JDBC 运行 SQL 查询和执行存储过程。这为您提供了一种非常强大的数据使用方式,但是需要了解关系数据库系统和 SQL。您可以使用特定于数据库供应商的扩展,但这将限制您的应用程序对其他数据库的可移植性。
有关从 西门子低代码 访问 JDBC API 的更多信息,请参见 DataStorage.executeWithConnection。
-
OData
OData 在 REST 协议之上提供了通用的数据访问和查询接口。它使大量第三方工具能够以受控制的方式访问您的数据。这些工具包括 LINQPad 之类的基本查询工具、msexcel 之类的电子表格以及 PowerBI 和 R 之类的商业智能分析工具。通过 OData 提供访问,所有在数据上定义并由 西门子低代码 Runtime 处理的验证和安全约束都能保证得到应用。这意味着 OData 是一种安全的向外部方提供数据访问的方法。
OData 是一种概括性标准,提供对数据的查询和操作功能,西门子低代码 目前只支持查询功能。目前,西门子低代码 中的 OData 旨在通过第三方应用程序对 西门子低代码 数据进行只读分析。
有关在 西门子低代码 中使用 OData 的更多信息,请参见通过 西门子低代码 OData 将数据转化为洞察力和使用 R 从 西门子低代码 应用程序中的数据中获得洞察力博客文章。
如何实现查询优化?
西门子低代码 平台提供了许多现成的优化功能。例如,当通过 XPath 检索页面数据时,西门子低代码 将自动一次性检索页面上使用的所有相关信息。为此使用了一个称为模式的概念。模式告知数据检索组件不仅要从数据库中检索一组特定的对象,还要在结果中包括特定的关联实体。
除了优化查询之外,西门子低代码 还进行优化以避免查询需求。例如,优化是在 Web 客户端中完成的,在该客户端中,对象通过多个页面进行缓存和重用。西门子低代码 Runtime 中所做的另一个优化是使用页面结构的知识来确定是否需要从 Runtime 向客户端发送对象。
除了这些现成的优化之外,您还可以采取许多其他方法实现查询优化:
- 仅检索您需要的内容,并确保查询中没有包含不需要的属性或对象
- 确保您有以下内容索引:
-
- 定期搜索或过滤
的列
- 用于排序的列
-
在某些情况下(尤其是存在大量对象时),使用特定于数据库的索引会有所帮助。您可以通过 JDBC API 创建这些文件,如上文 SQL 所述。
-
数据库复制模块
西门子低代码 Marketplace 提供的数据库复制模块可连接到大量不同类型的数据库。它将显示现有数据库中存在的数据结构。然后,您可以(通过网页)定义要迁移到 西门子低代码 数据库的数据。还可以定义如何将现有列中的数据映射到实体属性。
-
数据库连接器
数据库连接器模块为您提供微流活动,以便在任何支持 JDBC 的数据库上运行查询功能。这意味着您可以创建微流来定义希望从现有数据库中获取的数据,以及定义将这些数据转换为新的 西门子低代码 应用程序的方式。
-
从现有数据库初始化您的应用程序数据库
首次部署 西门子低代码 应用程序时,您可以选择使用现有 西门子低代码 应用程序中的数据对其进行初始化。此功能的主要目的是支持数据从一个环境迁移到另一个环境中(例如,从 西门子低代码 Cloud 到私有云)。将非 西门子低代码 数据迁移为 西门子低代码 数据后,可以使用此数据初始化新的 西门子低代码 应用程序。这适用于在同一供应商以及两个数据库供应商之间的数据迁移。这意味着您可以使用在工作站上运行的 PostgreSQL 数据库中的数据初始化 Azure SQL 数据库。
有关更多信息,请参见“西门子低代码 文档”中的如何迁移 西门子低代码 数据库和备份。
如何使用 西门子低代码中的现有 SQL 数据库?
您可以使用 Database Connector 所用的任何数据库上运行 SQL 操作。有关使用现有 SQL 数据库的更多信息,请参见外部数据中的 西门子低代码 如何支持对外部 SQL 数据库的直接访问?。
西门子低代码 提供哪些 API 来扩展数据存储行为?
西门子低代码 运行时提供了 Java API,可用于可以扩展数据存储行为。西门子低代码 使您能够通过正常的微流活动提供这些扩展,从而确保您团队中的任何人都可以使用这些扩展。有关 西门子低代码 扩展性功能的更多信息,请参见开放性(API 和 SDK)中的 西门子低代码 公开哪些 API?。
关于数据存储可扩展性,主要 Java API 提供了以下功能:
- XPath – 使用 Xpath 查询从数据库检索的 API
- OQL – 使用 OQL 查询从数据库检索的 API
- SQL – 直接使用底层 Java JDBC 连接来运行应用程序数据库上所需的任何 SQL 的 API
- 实体事件处理程序 – 为所有实体注册实体事件侦听器的 API,可用于提取审核信息或将所有数据更改实时导出到外部系统