要获得与亚马逊 Timestream 类似的功能 LiveAnalytics,可以考虑适用于 InfluxDB 的亚马逊 Timestream。适用于 InfluxDB 的 Amazon Timestream 提供简化的数据摄取和个位数毫秒级的查询响应时间,以实现实时分析。点击此处了解更多信息。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 InfluxDB 的 Amazon Timestream 只读副本集群的概述
以下各节讨论适用于 InfluxDB 的 Timestream 只读副本集群:
只读副本的使用案例
使用只读副本集群在多种情况下都可行,包括以下情况:
扩展到单个数据库实例的计算或 I/O 容量之外,用于读取密集型数据库工作负载。可以将过多的读取流量引导到一个或多个只读副本。
当主写入器实例不可用时,为读取流量提供服务。在某些情况下,您的主数据库实例可能无法接受 I/O 请求,例如,由于备份 I/O 暂停或定期维护。在这些情况下,可将读取流量引导到只读副本。对于这种使用案例,请注意,由于主数据库实例不可用,因而只读副本中的数据可能处于“静态”。另外,请注意,您需要关闭自动失效转移才能使这些场景正常运行。
对于业务报告或数据仓库方案,您可能希望针对只读副本(而生产数据库实例)运行业务报告查询。
实施灾难恢复。如果主数据库实例出现故障,则将只读副本提升为主副本作为灾难恢复解决方案。
在可用性比持久性更重要的场景中实现更快地失效转移。由于只读副本使用异步复制,因此在失效转移之前,主写入器实例提交的某些数据可能尚未完成复制。然而,对于正常运行时间至关重要的应用程序而言,这种权衡可予以接受。根据工作负载特征,失效转移到只读副本可能远快于失效转移到使用同步复制的备用数据库实例,因为副本实例已在运行,无需启动引擎。这在分秒必争的使用案例中尤其有益。
只读副本的工作原理
要创建只读副本集群,适用于 InfluxDB 的 Amazon Timestream 使用许可 InfluxData的只读副本插件。附加订阅是通过直接从亚马逊 Timestream 管理控制台激活的。 Amazon Web Services Marketplace有关更多详细信息,请参阅读取副本许可 Amazon Web Services Marketplace。
只读副本按标准数据库实例计费,费率与集群中每个节点使用的数据库实例类型相同,再加上许可插件 InfluxData的费用。附加组件的费用通过 Amazon Web Services Marketplace按实例小时数计费。在位于同一个 Amazon Web Services 区域中的源数据库实例与只读副本之间复制数据所产生的数据传输不收费。
创建并配置只读副本集群,且开始接受写入后,每当主数据库实例发生更改时,适用于 InfluxDB 的 Amazon Timestream 就使用异步复制方法更新只读副本。
只读副本作为专用的数据库实例运行,仅接受只读连接。应用程序可像连接到任何其他数据库实例一样连接到只读副本,从而提供无缝且熟悉的体验。适用于 InfluxDB 的 Amazon Timestream 会自动将所有数据从主数据库实例复制到只读副本,从而确保数据一致性和准确性。请注意,更新在集群级别完成,并同时应用于主集群和副本。
适用于 InfluxDB 的 Timestream 只读副本特征
| 特征或操作 | 适用于 InfluxDB 的 Timestream |
|---|---|
| 复制方法是什么? | 逻辑复制。 |
| 是否能将副本设置为可写? | 否,适用于 InfluxDB 的 Timestream 只读副本设计为只读,不能设置为可写。虽然在失效转移时可将只读副本提升为主副本,从而接受写入,但在任何给定时间,适用于 InfluxDB 的 Timestream 只读副本集群中只能有一个写入器数据库实例。这可确保数据一致性,并防止可能由多个可写实例导致的冲突。只读副本的作用是提供数据的冗余只读副本,会自动拒绝写入请求以保持数据完整性。 |
| 是否能在副本上执行备份? | 是,可使用内置引擎功能通过 Influx CLI 创建备份。 |
| 是否能使用并行复制? | 否,适用于 InfluxDB 的 Timestream 使用单个进程处理复制。 |
只读副本实例和存储类型
将创建与主数据库实例的实例和存储类型相同的只读副本。任何配置更改都必须在集群级别进行,并将应用于集群内的所有实例。可用于适用于 InfluxDB 的 Timestream 数据库实例的所有实例和存储配置,同样可用于适用于 InfluxDB 的 Timestream 只读副本集群。
实例类型
| 实例类 | vCPU | 内存(GiB) | 存储类型 | 网络带宽(Gbps) |
|---|---|---|---|---|
| db.influx.medium | 1 | 8 | 已包含 Influx IOPS | 10 |
| db.influx.large | 2 | 16 | 已包含 Influx IOPS | 10 |
| db.influx.xlarge | 4 | 32 | 已包含 Influx IOPS | 10 |
| db.influx.2xlarge | 8 | 64 | 已包含 Influx IOPS | 10 |
| db.influx.4xlarge | 16 | 128 | 已包含 Influx IOPS | 10 |
| db.influx.8xlarge | 32 | 256 | 已包含 Influx IOPS | 12 |
| db.influx.12xlarge | 48 | 384 | 已包含 Influx IOPS | 20 |
| db.influx.16xlarge | 64 | 512 | 已包含 Influx IOPS | 25 |
| db.influx.24xlarge | 96 | 768 | 已包含 Influx IOPS | 40 |
存储选项
| 适用于 InfluxDB 的 Timestream 数据库集群存储 | 源数据库实例存储分配 | 已包含 IOPS |
|---|---|---|
| 已包含 Influx IO(3K) | 20GiB 至 16TiB | 3000 IOPS |
| 已包含 Influx IO(12K) | 400GiB 至 16TiB | 12000 IOPS |
| 已包含 Influx IO(16K) | 400GiB 至 16TiB | 16000 IOPS |
删除副本时的注意事项
如果不再需要只读副本,可通过调用 delete-db-cluster API 显式删除集群。在以下示例中,将每个 user input placeholder 替换为您自己的信息。请注意,您目前无法从集群中移除单个节点。
aws timestream-influxdb delete-db-cluster \ --regionregion\ --endpointendpoint\ --db-cluster-idcluster-id