外部数据
如何在我的应用程序中存储和使用集成数据?
当使用通过集成(例如,Web 服务或 REST 服务)获取的数据时,您有两种存储和使用数据的选项,如下所述。
存储在可持久实体中
此选项意味着数据存储在应用程序数据库中。如果您希望在较长时间内(例如几小时或几天)使用数据,或者希望与应用程序的不同用户共享数据,则这是一个不错的选择。存储集成数据的另一个原因是,您所依赖的服务速度很慢或经常不可用。
通过非持久性实体存储在内存中
此选项意味着只有检索数据的用户会话才能在其会话期间访问数据。如果您在短时间内需要数据,并且希望确保数据始终与数据所有者(即提供数据的服务)保持同步,则这可能是一个有效的选项。
Mendix的导出和导入映射为可持久和非持久实体提供支持。
如何 Mendix 支持直接访问外部 SQL 数据库吗?
此 外部数据库连接器 可用于在任何兼容 JDBC 的数据库上编写、测试和运行 SQL 操作。数据库连接器支持查询以及更新、删除和存储过程调用等操作。
数据库连接器可与支持 JDBC 的关系数据库完美兼容。外部数据库连接器提供对 SQL Server、Oracle、PostgreSQL、MariaDB、MySQL 和 Snowflake 的开箱即用支持。其他数据库(例如 DB2 或 Databricks)可以通过在项目中添加正确的 JDBC 驱动程序来使用。
大多数数据仓库和数据湖都通过 JDBC 驱动程序提供 SQL 连接。例如 Snowflake、Databricks 和 Microsoft Onelake。您还可以使用 DuckDB 驱动程序查询其他数据源,例如 Blob 存储中的 Parquet 文件。
一些 NoSQL 数据库也包含通过 JDBC 连接的 SQL,因此对于这些 NoSQL 数据库,您可能也可以使用数据库连接器。大多数 NoSQL 数据库也提供通过 REST API 的连接。如果是这种情况,您可以使用 Mendix的广泛 REST 支持 使用这些数据库中的数据。
如何从 Excel 等来源导入和导出数据?
开箱即用, 数据网格 小部件可让您向应用程序用户提供数据网格中显示的数据的 Excel 导出。对于 Excel 格式的数据批量导入或导出,您可以使用以下两种 Mendix 市场模块:
- 数据导入器 – 数据导入器允许您从示例 Excel 文件定义 Excel 格式,以便导入具有此格式的文件文档。对于批量导入以及更复杂的验证和转换,您可以使用导入映射将 Excel 格式映射到您的数据模型。
- Excel导入器 – 此模块允许您为要导入的不同 Excel 工作表定义模板。模板定义工作表中提供的数据以及如何将其映射和转换为您 Mendix 应用程序。如果您定期上传包含更新数据的相同工作表,则可以重复使用这些模板。
- Excel 导出器 – 此模块允许您定义如何从您的 Mendix 应用程序作为 Excel 工作表。使用这些模板,您可以定期将数据导出到完全相同格式的 Excel 工作表中。有关更多信息,请参阅 如何使用 Excel 导出器 ,在 Mendix Studio Pro 使用方法.
如何导入和导出 CSV 格式的数据?
此 Mendix 车型市场 包含多个可以帮助您导入或导出 CSV 格式数据的模块:
- Excel导出 – 该模块还支持导出为CSV格式。
- 平面和分隔文件导入 – 该模块允许您仅从运行时的配置中导入平面和分隔文件(CSV),从而减轻您的 Java 工作。
- 平面和分隔文件导出 – 该模块可以轻松导出固定长度和分隔文件(CSV),因为它可以处理所有 Java 编码并允许您轻松地从微流中导出数据。
- 简单的 CSV 导出器 – 该模块用于从微流导出到 CSV。
如何导入和导出固定长度和分隔文件?
上面的一些模块支持固定长度和分隔文件。
如果你找不到支持特定固定长度格式的模块,请使用 Mendix 连接器套件 创建自定义微流操作来处理导入和导出可能是一个选项。有关连接器套件和 Mendix Java API 提供微流扩展,请参阅部分 如何扩展 Mendix 平台? in 可扩展性.
如何进行批量导出和导入?
您可以通过多种方式从您的 Mendix 应用范围:
- 定制构建服务 – 例如使用 Web 服务或 REST 服务。这种方法的好处是,它使您能够调整数据并验证其是否符合您的业务规则。
- 备份还原 – 您可以使用自定义 (SQL) 脚本来填充 Mendix 开发数据库中包含您需要的数据。完成后,您可以创建此数据库的备份,并将其恢复到所需的目标数据库中。
- 源数据库 – 当您在一个新的空数据库上启动运行时时,您可以指定它需要使用来自另一个数据库的数据进行初始化。
如果您想在两个环境之间创建实时大规模同步,则可以使用实体事件监听器。这使您能够为每个对象事件运行自定义 Java 逻辑(例如,当数据库中的数据发生更改时)。在此自定义处理程序中,您可以提供逻辑以将数据更改复制到另一个应用程序。