数据存储选项
PTC 支持以下存储选项:
模型提供者
H2
数据提供者
* 
在 ThingWorx Platform 8.5.0 版本中,不再出售 DataStax Enterprise,且未来版本中将不在支持此产品。有关详细信息,请参阅 终止销售文章。
H2
H2 是一个开源关系数据库,占用磁盘空间较小。它以 Java 编写,可以嵌入 Java 应用程序中或在客户端-服务器模式下运行,并提供 JDBC API。H2 满足 ThingWorx 对模型提供者和数据提供者的要求。ThingWorx 会在嵌入模式下打开一个持久化 (与驻内存相对) H2 数据库。虽然这是最快且最简便的连接模式,但该数据库只能与 Tomcat 在同一 JVM 中并由 ThingWorx web 应用程序使用 JDBC 打开 (外部进程无法连接或使用此数据库实例)。作为持久化数据库,数据将被写入本地磁盘 (在 ThingworxStorage 中的 database 文件夹中),并在 ThingWorx 重新启动后保留。
典型用例
试验、开发人员系统、概念验证、近边缘设备
仅针对单个服务器部署
限制
由于 H2 的嵌入式性质,不建议将 H2 用于生产用途:
扩展性有限,因为它与应用程序共享资源 (CPU、内存、磁盘等)
影响应用程序作为一个整体的稳定性。例如,如果 Tomcat 崩溃或 Tomcat 进程结束,数据库进程也会被终止,这可能会导致数据损坏。
要通过隔离应用程序代码或数据库中的瓶颈来解决性能问题也变得更加困难。
从常规操作和管理的角度来看,使数据、备份和灾难恢复可视化变得更加难以维护。
有关将 H2 用作 ThingWorx 的持久化方案提供工具的信息,请参阅 使用 H2 作为持久化方案提供工具
PostgreSQL
PostgreSQL 是一种开放源对象关系数据库管理系统 (ORDBMS),其特点在于可扩展性和遵从标准。作为数据库服务器,其主要功能是安全地存储数据,并按照其他软件应用程序的请求检索数据。它可以处理各种工作负载,从小型单机应用程序到具有众多并发用户的面向互联网的大型应用程序。PostgreSQL 在数据库级别提供了高可用性功能。可在相同或不同的可用性区域中设置一个 PostgreSQL 主节点和多个从属节点。
有关 ThingWorx 和 PostgreSQL 部署的详细信息,请参阅以下文档:
有关 PostgreSQL 的详细信息,请参阅 https://www.postgresql.org/
典型用例
该数据库可针对小、中和大型的实施进行扩展,最高为每秒 15000 次属性写入 (wps),并提供高可用性功能。
Microsoft SQL Server (MSSQL)
Microsoft SQL Server (MSSQL) 是由 Microsoft 开发的关系数据库管理系统。作为数据库服务器,这一款软件产品的主要功能是按照其他软件应用程序的请求对数据进行存储和检索,其他应用程序可以在同一台计算机上运行或在网络 (包括互联网) 中的另一台计算机上运行。有关 ThingWorx 和 Microsoft SQL Server 部署的详细信息,请参阅 使用 Microsoft SQL Server 作为持久化方案提供工具
您可以从多个 SQL Server 版本中选择最适合您的数据解决方案的版本。这些版本的关系数据库大小上限从最低 10 GB 到最高 5.24 亿 GB 不等。要获得高可用性,建议使用 Enterprise 版本。
MSSQL 通过其持久存储功能支持模型和数据提供工具。
有关 Microsoft SQL Server 的详细信息,请参考 https://www.microsoft.com/en-us/sql-server/sql-server-2016
典型用例
SQL Server 适用于各种规模的 IoT 实施。然而,如果您的 IT 堆叠设计中已使用 Microsoft SQL/Azure,并且员工熟悉按照 使用高可用性性能的 SQL Server 2017 解决方案实现 MSSQL Server 高可用性解决方案,则使用 SQL Server 是最佳做法。
Azure SQL 数据库
Azure SQL 数据库是 Azure 云中托管的关系型数据库即服务 (DBaaS),是完全受管理的平台即服务 (PaaS) 数据库引擎。Azure SQL 数据库引擎的基础为 SQL Server 企业版。Azure 平台可全面管理每个 Azure SQL 数据库,并保证较高的数据可用性且不会出现数据丢失情况。Azure SQL 数据库的固有特性包括高可用性、灾难恢复和数据库升级。
有关 Azure SQL 数据库及其功能的详细信息,请参阅 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-paas。有关将 Azure SQL 数据库用作 ThingWorx 持久化方案提供工具的信息,请参阅 使用 Azure SQL 数据库作为持久化方案提供工具
DataStax Enterprise (DSE)
* 
在 ThingWorx Platform 8.5.0 版本中,不再出售 DataStax Enterprise,且未来版本中将不在支持此产品。有关详细信息,请参阅 终止销售文章。
ThingWorx 还使用基于 Apache Cassandra 的巨量运行时数据存储提供者 DataStax Enterprise (DSE)。DSE 能够让您以快于资产生成数据的速度来输入数据,并能够让您在添加其他设备 (或其他工作载荷) 时无缝地进行扩展。使用 DSE 作为运行时数据存储可提供适用于 IoT、Web 和移动应用程序的数据库平台,以满足其性能和可用性需求。
大多数关系数据库都无法横向扩展,只能在主/从模式下工作。相比之下,Cassandra 的对等、无主节点群集体系结构使其能够线性且大量地扩展。
DSE 提供了经过充分测试和验证的 Cassandra 部署,其中包括高级管理和监控工具、内置 Solr 集成用于索引和搜索,并提供支持和修补程序的机制。这与插入式数据存储模型的特点相符,使客户能够拥有多种数据信息库来存储配置、模型和大容量数据。您可以选择使用哪一种数据信息库来满足特定功能的要求。
DSE 是一个集成的、始终运行的多模型数据库系统,可提供基于 Apache Spark 的实时和批量分析、驻留内存技术、连续可用的搜索和图形数据库计算。它提供了多种用于开发和生产系统操作的高级工具,并具有诸多灵活的功能,例如:可满足短期和长期数据访问要求的分层存储、在同一系统内运行多个数据库的多租户功能、满足企业需求的高级安全性。
* 
要进行 ThingWorx,DSE 技术堆栈中的 DSE 集成搜索组件 (Apache Solr) 为必需项。因此,ThingWorx 无法用于未集成 Apache Solr 的开源 Apache Cassandra 安装。
如果 ThingWorx Platform 所需的数据存储比 H2 或 PostgreSQL 当前可提供的数据存储容量更高、速度更快,则使用 DSE 具有以下优势:
提供了更高的数据接入速度。
支持多个数据信息库用于运行时数据 (在 H2 或 PostgreSQL 中维护模型数据,对于大容量流数据使用 DSE)。
支持弹性扩展属性。可以向 DSE 环添加更多节点,以获得更高的事务处理速率。
将数据进程与 ThingWorx Platform 进程分离。
支持可启用云服务的体系结构。
典型用例
当有大量 (超过 15,000 wps) 事务型 (运行时) 数据位于分布式载荷上时,此即典型用例。
InfluxDB
必须有 ThingWorx 8.4 或更高版本才能使用 InfluxDB。如果您的系统需要密集处理时间序列数据,并且您的实现在很大程度上依赖于值流或流进行数据的持久化/检索,那么,建议您在 ThingWorx 中使用 InfluxDB 作为持久化方案提供工具。InfluxDB 是专为时间序列数据编写的高性能数据存储写入。它允许对同一数据进行高吞吐量的提取、压缩和实时查询。InfluxDB 可用作任何涉及大量时间戳数据的用例的数据存储,包括 DevOps 监控、日志数据、应用程序指标、IoT 传感器数据和实时分析。它还提供了其他功能,包括数据保留策略 (RP) 等。InfluxDB Enterprise 针对时间序列数据需求提供了高可用性和高可扩展性的群集解决方案。
InfluxPersistenceProviderPackage 可在 ThingWorx 中与持久化方案提供工具一起使用,作为 PostgreSQL 或 MSSQL 的默认安装的一部分。
InfluxDB 数据提供工具目前仅支持值流和流。不支持数据表、wiki 和博客。
InfluxDB 数据提供工具目前不支持导出功能。
InfluxDB 当前不支持作为属性提供工具。
如果您使用持久化方案提供工具实例 (通过 InfluxDB 持久化方案提供工具包创建) 作为默认的持久化方案提供工具,则可编辑流和值流队列配置设置,这些设置将应用于所有流和值流。对于特定流或值流,不能更改这些设置。
有关将 InfluxDB 用作持久化方案提供工具的信息,请参阅 使用 InfluxDB 作为持久化方案提供工具