使用 InfluxDB 作为持久化方案提供工具
概述
如果您的系统需要密集处理时间序列数据,并且您的实现在很大程度上依赖于值流或流进行数据的持久化/检索,那么,建议您在 ThingWorx 中使用 InfluxDB 作为
持久化方案提供工具。InfluxDB 是专为时间序列数据编写的高性能数据存储写入。它允许对同一数据进行高吞吐量的提取、压缩和实时查询。InfluxDB 可用作任何涉及大量时间戳数据的用例的数据存储,包括 DevOps 监控、日志数据、应用程序指标、IoT 传感器数据和实时分析。它还提供其他功能,包括数据保留策略 (RP) 等。InfluxDB Enterprise 针对时间序列数据需求提供了高可用性和高可扩展性的群集解决方案。
InfluxDB 数据持久存储提供工具可作为用于属性提供工具的 PostgreSQL、MSSQL 或 Azure SQL 的默认安装的一部分:
• InfluxPersistenceProviderPackage
• Influx2PersistenceProviderPackage
ThingWorx 支持 OSS、Enterprise 和 Cloud 版本。
• 将通过 InfluxPersistenceProviderPackage 支持 InfluxDB OSS 1.x 和 InfluxDB Enterprise 1.x。仅 INfluxDB 1.x 支持 InfluxDB Enterprise
• 将通过 Influx2PersistenceProviderPackage 支持 InfluxDB OSS 2.x。
• 仅通过 Influx2PersistenceProviderPackage 支持 InfluxDB Cloud
有关特定受支持的版本,请参阅
Release Advisor。
|
InfluxDB 数据提供工具目前仅支持值流和流。不支持数据表、wiki 和博客。
|
|
Influx2PersistenceProviderPackage 和 InfluxPersistenceProviderPackage 支持数据导出。
|
|
客户如需升级到 ThingWorx 9.3.9 及更高版本,以及 ThingWorx 9.4.0 及更高版本,并使用 InfluxDB OSS 2.0 来利用 Influx2PersistenceProviderPackage,首先需要升级到 ThingWorx 9.3.8,才能移至 InfluxDB OSS v2.6,因为必须先导出,然后再升级至 InfluxDB v2.6。对于 InfluxDB Cloud,无需导出之前的升级版本,因此,在升级 ThingWorx 9.3.9 及更高版本和 ThingWorx 9.4.0 及更高版本之前,无需移至 ThingWorx 9.3.8。
|
InfluxDB Enterprise 和 ThingWorx 启动环境
| 上图包括 InfluxDB Enterprise。对于 InfluxDB 开源,架构图相同,不同之处在于它只适用于一个节点。对于 InfluxDB Cloud,数据库托管在 ThingWorx 环境之外,并由 InfluxData 公司管理。 |
涉及 InfluxDB Enterprise 的配置时,将在本文档中使用以下术语:
• 负载平衡器 - InfluxDB Enterprise 不能用作负载平衡器。管理员需要对其进行配置。
• 群集 - InfluxDB Enterprise 群集由两种类型的节点组成,即元节点和数据节点。
• 数据节点 - 所有原始时间序列数据都存在于该类型的节点中。为获得高可用性,您至少需要两个复制因子。
• 元节点 - 这些节点具有简单的作业,即保持状态一致。它们仅包含有关状态的基本信息,例如保留策略、用户和数据库。在高可用性环境中,至少需要三个元节点。
选取正确的 Influx 数据库选项
以下是当前可用于 PTC 本地安装客户的两个 InfluxDB 选项的高级概览。在选取 Influx 产品时,应仔细考虑数据库软件选项和基本支持选项。有关选取正确数据库选项的问题,请联系 Influx 支持:
https://www.influxdata.com/contact-sales。PTC 客户需要将自己标识为 PTC ThingWorx 用户。
• InfluxDB open source OSS (单个节点)
◦ 仅单节点,不可扩展。
◦ 免费
◦ 由于 Influx 技术支持的限制 (无法在紧急情况下提供实时 Influx 支持),不建议将其用于生产实例。
◦ 对于该数据库的维护和监控,PTC 客户只能自行负责。
◦ PTC 将尽可能提供最佳的 Influx 建议,但是,某些情况可能需要转交 Influx 技术资源进行处理。
• InfluxDB Enterprise
如果您要寻找比当前其他数据库容量更高、速度更快的数据存储,那么 InfluxDB Enterprise 可以为您带来以下好处:
◦ 提高数据提取率。
◦ 运行时数据可以具有多个数据信息库。例如,您可以在 PostgreSQL 中保留关系数据,同时将 InfluxDB 用于高容量流和值流数据。定义流或值流时,ThingWorx 使用默认运行时数据存储提供工具,但您可以将其配置为使用任何已定义的持久化方案提供工具。您仍可以从其他数据提供工具导出数据并导入 InfluxDB。ThingWorx 处理数据抽象。
◦ 云友好体系结构 (横向扩展,仅 InfluxDB Enterprise)。
◦ 提供高可用性。
◦ 在 Influx 支持网站可按照 Influx 联系方式获得 Influx 技术支持,访问此网站请单击
InfluxData。
◦ PTC 客户可以根据需要创建支持工作单,推动 PTC/Influx 协作为您解决问题。
◦ 对于该数据库的维护和监控,PTC 客户只能自行负责。
• InfluxDB Cloud (托管在 ThingWorx 环境之外,由 InfluxData 公司管理)
InfluxDB Cloud 具有以下优势:
◦ InfluxDB Cloud 作为云原生、多租户、规模灵活以及无服务器的平台构建。
◦ 在 AWS、Google 和 Azure 上跨多个区域提供可用性、持久性和可扩展性。
◦ 它通过安装及配置所有最新的安全功能和修补程序进行安全性和功能强化。
◦ InfluxDB Cloud 可自动重新平衡群集、处理分片并利用内置同步复制因子。
最佳实践
系列限制
系列为登录 InfluxDB 的所有事物的属性总数。在处理指向少量事物和事物属性 (例如,10K 或 100K) 的高数据容量时,InfluxDB 性能良好。在 InfluxDB 中,默认情况下,系列总数限制为 100 万。您可以提高此限制,但一旦超出此限制,InfluxDB 性能会随着系列数的增加而逐渐降低。
若存在大量事物和属性,则您可选择具有高数据容量的事物和属性并将其指向 InfluxDB,以减轻 PostgreSQL 或 MSSQL 的压力。
或者,如果您想要将系列划分为多个服务器,可以将 InfluxDB 数据提供工具的多个实例指向不同的 InfluxDB 服务器实例。
写入限制
内存 60gb、单 VM,32 核的情况下,每秒写入 100K。如果超出此限制,会导致 ThingWorx 出现问题,将耗尽资源以致无法处理任何请求或作业,例如,写入数据库。此时,ThingWorx 将变为停止状态,而 InfluxDB 仍在写入到数据库。PostgreSQL 不会发生此问题,因为 PostgreSQL 成为了瓶颈,ThingWorx 永远不会达到耗尽资源以致无法处理内部任务的点。
SSL/安全连接
InfluxDB 支持 SSL 和 HTTPS 连接。如果不支持 ThingWorx 和 InfluxDB 之间的网络,则您可启用 SSL 和 HTTPS 连接来提高安全性。如果签名专用密钥保持安全状态,则自签名证书已足够。
已知的 InfluxDB 对属性基本类型的限制
清除属性
PurgeAllPropertyHistory、PurgeSelectedPropertyHistory 和 PurgePropertyHistory 服务可用于从 InfluxDB 中清除属性。使用 startDate 和 endDate 参数指定某一范围。
| 使用 Influx2PersistenceProviderPackage 提供者时不支持清除。PurgePropertyHistory、PurgeAllPropertyHistory、PurgeSelectedPropertyHistory 服务不起作用。 |