在 InfluxDB 云无服务器上原型设计您的应用程序
利用 InfluxDB Cloud Serverless 来原型化您的生产应用程序,然后将其迁移到 InfluxDB Cloud Dedicated。 了解 Cloud Serverless 和 Cloud Dedicated 之间的重要区别,以及在 Cloud Serverless 上构建应用程序原型的最佳实践。
InfluxDB 云无服务器与云专用的主要区别
用户界面差异
管理工具和用户界面在 InfluxDB Cloud Serverless 和 InfluxDB Cloud Dedicated 之间有所不同。 InfluxDB Cloud Serverless 旨在满足个人开发者、数据科学家和一般爱好者的需求,以及企业对企业(B2B)客户的需求。 Cloud Serverless 图形用户界面(GUI)提供了数据库管理的基本功能(添加/删除数据库、生成令牌等)、查询、可视化和仪表盘功能。
与云无服务器不同,云专用服务器没有图形用户界面。 云专用服务器客户使用一个管理命令行工具 (influxctl) 来管理数据库和令牌。 influxctl 实用程序 对于 InfluxDB 云无服务器不可用。 因为这些平台使用不同的管理工具,如果您使用云无服务器作为评估云专用服务器的平台,您将无法直接评估云专用服务器的管理功能。
术语差异
InfluxDB Cloud Serverless 是一次升级,引入了 InfluxData 原始 InfluxDB Cloud (TSM) 多租户解决方案中的 InfluxDB 3 存储引擎。InfluxDB Cloud 利用时间结构合并树(TSM)存储引擎,其中数据库被称为“桶”。Cloud Serverless 仍然使用这个术语。
InfluxDB Cloud Dedicated 一直以来只使用 InfluxDB 3 存储引擎。Cloud Dedicated 中的资源名称与 SQL 数据库引擎的命名方式更为传统。数据库被命名为“databases”,而“measurements”被结构化为表。“Tables” 或 “measurements” 可以互换使用。
| 术语 | InfluxDB Cloud 无服务器 | InfluxDB Cloud 专用 |
|---|---|---|
| 数据库名称 | 桶 | 数据库 |
| 数据库集合子集的名称 | 测量 | 表或测量 |
这些只是术语上的差异,而不是功能上的差异,不应影响使用云无服务器进行评估、原型设计或分阶段测试。
InfluxQL 数据保留策略映射差异
InfluxDB利用数据库和保留策略(DBRP)映射来支持为InfluxDB 1.x编写的InfluxQL查询。要使用InfluxQL进行查询,InfluxDB Cloud Serverless要求客户首先为存储桶创建DBRP映射(通过CLI或API)。在Cloud Dedicated中,DBRP映射通过命名约定来处理,无需客户为InfluxQL查询配置映射。
查询语言的差异
InfluxDB Cloud 无服务器和云专用版支持 SQL 和 InfluxQL。
| 语言 | InfluxDB Cloud 无服务器 | InfluxDB Cloud 专用 |
|---|---|---|
| SQL | 原生支持 | 原生支持 |
| InfluxQL | 本地支持 | 本地支持 |
v2 API(使用Flux语言进行查询)可以在InfluxDB Cloud Serverless中访问,但不受支持。如果您打算将InfluxDB Cloud Serverless用作InfluxDB Cloud Dedicated的评估或预备平台,请使用SQL或InfluxQL。
API和客户端库的区别
因为 v2 查询 API 使用 Flux,客户在将 InfluxDB Cloud Serverless 作为 InfluxDB Cloud Dedicated 的评估、预处理或原型平台时,应避免使用 v2 API。
对于写入数据,InfluxDB Cloud Dedicated 和 InfluxDB Cloud Serverless 都支持 v1 API 和 v2 写入 API。
此外,InfluxDB 3 客户端库可用于InfluxDB Cloud Serverless和InfluxDB Cloud Dedicated,并帮助避免两个平台之间的任何API差异。有关选择客户端库的更详细信息,请参阅在使用InfluxDB 3 开发时选择客户端库博客文章。
任务与警报的区别
InfluxDB Cloud Serverless 具有内置的任务和警报系统。 这些是基于 Flux 构建的,并且没有被转移到 InfluxDB Cloud Dedicated。 如果您将 InfluxDB Cloud Serverless 用作 InfluxDB Cloud Dedicated 的评估平台,请不要使用这些功能,因为它们在 InfluxDB Cloud Dedicated 上不可用。
使用 InfluxDB Cloud Dedicated,您可以构建自定义任务和警报解决方案,或使用第三方工具,如 Grafana 或 Prefect,例如:
令牌管理和授权的区别
除了之前提到的令牌管理 UI 差异(Cloud Serverless 提供了一个 UI 和 API,而 InfluxDB Cloud Dedicated 使用 influxctl),还有令牌权限的粒度差异——InfluxDB Cloud Dedicated 具有更多的权限选项。
| 函数 | InfluxDB 云无服务器 | InfluxDB 云专用 |
|---|---|---|
| API令牌生成 | 内置UI或v2 API | influxctl命令行工具 |
性能差异
InfluxDB Cloud Serverless 是一种多租户解决方案,有多个因素可能会影响数据库性能,包括:
- 速率限制: 对读取和写入的限制。
- 嘈杂的邻居: 其他客户意外的高使用率可能会影响您的体验。
- 通用优化: Cloud Serverless 被通用优化以适应最常见的工作负载。InfluxDB Cloud Dedicated 可以通过自定义分区等选项进行调整,以满足您的特定数据集和工作负载。
- 特定标签查询: 由于通用优化,选择具有部分标签值的行的查询可能会比以前的版本明显更慢。 如果您使用的是用于评估目的的 InfluxDB Cloud Serverless,建议考虑投资 InfluxDB Cloud Dedicated 的概念验证(PoC),以获取对您预期性能的更准确的了解。
架构差异
InfluxDB Cloud Serverless 和 InfluxDB Cloud Dedicated 之间的架构支持几乎是相同的。 但是,InfluxDB Cloud Dedicated 提供了更多的灵活性,让您能够提高或超过数据库中表(测量)和列(时间、字段和标签)的数量限制。 请参见 保持在 InfluxDB Cloud Serverless 的架构限制内。
组织管理差异
InfluxDB Cloud Serverless 有一个功能,可以让你在你的账户中创建子组织。InfluxDB Cloud Dedicated 没有这个功能。
此外,由于是多租户,Cloud Serverless 在某些交互中需要指定组织名称或ID。这在Cloud Dedicated中不是必需的。
最佳实践
在使用 InfluxDB Cloud Serverless 作为 InfluxDB Cloud Dedicated 的评估或原型平台时,请遵循以下推荐的最佳实践。
使用 v3 轻量级客户端库
使用 InfluxDB v3 轻量级客户端库 来帮助使您的代码在编写和查询时与 InfluxDB Cloud Serverless、Cloud Dedicated 和 Clustered 兼容。您只需更改您的 InfluxDB 连接凭据(主机、数据库名称和令牌)。
避免使用不包含在 InfluxDB Cloud Dedicated 中的功能
避免使用在Cloud Dedicated中不存在的InfluxDB Cloud Serverless功能的最简单方法是避免使用Cloud Serverless UI,除非在管理令牌和存储桶时。为了保持与Cloud Dedicated的兼容性,特别是避免使用以下InfluxDB Cloud Serverless功能:
- v2 查询 API 和 Flux 语言
- 管理API
- 来自云无服务器UI的任务和警报(改为使用中提到的选项之一 任务和警报差异)。
- InfluxDB仪表板和可视化工具(使用第三方可视化工具)
使用 SQL 或 InfluxQL 作为您的查询语言
SQL 和 InfluxQL 针对 InfluxDB 3 进行了优化,都是 Cloud Dedicated 和 Cloud Serverless 中优秀的选项。避免使用 Flux,因为它无法与 InfluxDB Cloud Dedicated 一起使用。
保持在InfluxDB云服务器无服务器的架构限制内
如果您在InfluxDB Cloud Serverless的表(测量)和表中的列(时间、字段和标签)内保持在限制范围内,那么您在InfluxDB Cloud Dedicated中就不会遇到任何限制问题。Cloud Dedicated还提供了更多的灵活性,让您可以配置限制。
| 描述 | 限制 |
|---|---|
| 表格(测量) | 500 |
| 列 (时间, 字段, 标签) | 200 |
保持测试数据和生产数据分开
如果您正在使用 InfluxDB Cloud Serverless 进行原型设计或评估,请使用测试数据,并且不要在平台上存储生产数据。这样有以下好处:
- 使用测试数据风险更小。如果您对架构犯了错误,可以删除数据并重新开始。如果您使用的是依赖的生产数据并且只有一份副本,架构错误就更难恢复。
- 您无需迁移数据。在您完成评估后,可以删除测试数据并开始使用Cloud Dedicated。
您可以在 InfluxDB Cloud Serverless 中使用实时或生产数据进行原型开发, 然后在完成评估后迁移到 Cloud Dedicated。 然而,目前这要求您编写代码来查询和提取数据, 将其转换为行协议格式,然后将其写入 InfluxDB Cloud Dedicated。