一般性问题
什么是时间序列数据?
时间序列数据是一段时间内记录的一系列数据点,例如股票价格、温度和 Amazon EC2 实例的 CPU 使用情况。对于时间序列数据,每个数据点都由一个时间戳、一个或多个属性以及随时间变化的事件组成。该数据用于深入了解应用程序的性能和运行状况,检测异常情况,确定优化机会。
例如,DevOps 工程师可能希望查看测量基础设施性能指标变化的数据,制造商可能希望跟踪测量整个设施内设备温度变化的物联网传感器数据,网络营销人员可能希望分析捕捉用户如何随时间的推移浏览网站的点击流数据。由于时间序列数据是从多个来源生成的,数量极多,因此需要以经济高效的方式对其进行近乎实时的存储和分析,以获得关键的业务见解。
Amazon Timestream 支持哪些引擎?
Amazon Timestream 提供完全托管的 InfluxDB,是市场上最受欢迎的开源时间序列数据库之一
如何开始使用 Timestream?
您可以通过 Amazon Web Services 管理控制台、Amazon 命令行接口(Amazon CLI)或软件开发工具包(SDK)开始使用 Timestream。有关更多信息,包括教程和其他入门内容,请参阅开发人员指南。
在将数据发送到 Timestream 之前是否需要定义架构?
不。Timestream 根据一组维度属性和测量值动态创建表的架构。这提供了灵活的增量架构定义,可在不影响可用性的情况下随时调整。
如何访问 Timestream 数据库?
一旦数据库创建完成并可用,就可以从 Timestream 控制台检索端点信息。或者,也可以使用 Describe API 来检索端点信息(Timestream for LiveAnalytics 使用 DescribeDatabase,Timestream for InfluxDB 使用 DescribeDBInstances)。
如何在 Grafana 中使用 Timestream?
您可以使用 Grafana(一款多平台、开源分析和交互式可视化工具)可视化 Timestream 时间序列数据并创建警报。要了解更多信息并查找示例应用程序,请参阅文档。
如何使用 Amazon Lambda 将数据发送到 Timestream?
您可以创建与 Timestream 交互的 Amazon Lambda 函数。有关更多详细信息,请参阅文档。
如何使用开源 Telegraf 将数据发送到 Timestream?
您可以通过 Telegraf 连接器将使用开源 Telegraf 收集的时间序列数据直接发送到 Timestream。有关更多详细信息,请参阅文档。
是否可以在 Amazon VPC 中使用 Timestream?
您可以使用 VPC 端点从 Amazon Virtual Private Cloud(Amazon VPC)访问 Timestream。Amazon VPC 端点易于配置,无需互联网网关或 NAT 实例,即可实现与 Timestream API 的可靠连接。
可否通过 Amazon CloudFormation 使用 Timestream?
Amazon CloudFormation 通过提供 CloudFormation 模板来快速、可靠地预置服务或应用程序,简化了配置和管理。CloudFormation 提供了创建数据库的模板(适用于 Timestream for LiveAnalytics 和 Timestream for InfluxDB),为 Timestream 提供全面支持。这些模板与最新的 Timestream for InfluxDB 公告保持同步,为 Timestream 客户提供了灵活性和易用性。
Timestream for InfluxDB
简介
什么是 Amazon Timestream for InfluxDB?
Amazon Timestream for InfluxDB 是一种新的时间序列数据库引擎,使应用程序开发人员和 DevOps 团队可在 Amazon Web Services Cloud 上轻松运行 InfluxDB 数据库,以使用开源 API 构建实时时间序列应用程序。借助 Timestream for InfluxDB,可轻松设置、操作和扩展时间序列工作负载,这些工作负载能够以个位毫秒级的查询响应速度响应查询。
支持哪些版本的 InfluxDB?
Timestream for InfluxDB 支持开源 2.7 版本的 InfluxDB。
为什么要使用 Timestream for InfluxDB?
如果您在自行管理 InfluxDB,希望使用开源时间序列 API,或正在构建需要个位毫秒级查询响应速度的实时时间序列应用程序,则应使用 Timestream for InfluxDB。借助 Timestream for InfluxDB,您可以利用开源 API 和各种开源 Telegraf 代理来收集时间序列数据。您无需管理复杂且耗时的任务,例如 InfluxDB 安装、升级、存储、高可用性复制和备份。
Timestream for InfluxDB 提供何种 SLA?
Timestream for InfluxDB 在多可用区配置部署中提供 99.9% 可用性的 SLA,在单可用区配置部署中提供 99.5% 可用性的 SLA。
Timestream for InfluxDB 的性能如何?
Timestream for InfluxDB 专为近乎实时的时间序列用例而构建。根据实例配置和工作负载特性,写入和读取延迟时间约为 1 秒,查询延迟时间为个位毫秒级。
如何将工作负载迁移到 Timestream for InfluxDB?
要从自我管理的 InfluxDB 实例迁移到 Timestream for InfluxDB,只需停机几分钟,便可将现有 InfluxDB 数据库的备份还原到 Timestream for InfluxDB 实例。您可以重新配置数据收集代理(如开源 Telegraf 代理),使其专用于 Timestream for InfluxDB 管理的 InfluxDB 端点。InfluxDB UI、自托管 Grafana 或 Amazon Managed Grafana 等控制面板技术将继续发挥作用,只需将其配置为使用 Timestream for InfluxDB 端点,无需更改任何其他代码。
要从 Timestream for LiveAnalytics 迁移到 Timestream for InfluxDB,您可以将数据从 Timestream for LiveAnalytics 导出到 Amazon S3,对导出的 CSV 文件进行任何所需的修改,然后将其加载到 Timestream for InfluxDB。
数据库实例
什么是数据库(DB)实例?
您可以将数据库实例视为云中的数据库环境,其中包含您所指定的计算和存储资源。您可以创建和删除数据库实例,定义和优化数据库实例的基础设施属性,通过 Amazon Web Services 管理控制台、Timestream for InfluxDB API 和 Amazon CLI 控制访问权限和安全性。您可以运行一个或多个数据库实例,每个数据库实例可支持一个或多个数据库(存储桶)或组织,具体取决于工作负载特性和实例配置。
如何创建数据库实例?
可使用 Amazon Web Services 管理控制台、Timestream for InfluxDB API 或 Amazon CLI 轻松创建数据库实例。要使用 Amazon Web Services 管理控制台启动数据库实例,请选择 InfluxDB 数据库,然后选择控制面板上的“创建 InfluxDB 数据库”按钮。您可以在其中指定数据库实例的参数,包括实例类型、存储类型和数量、主用户凭证等。
此外,您还可以使用 CreateDBInstance API 或 create-db-instance 命令创建数据库实例。
如何访问正在运行的数据库实例?
一旦数据库实例可用,就可以通过 Amazon Web Services 管理控制台中的数据库实例描述、GetDBInstance API 或 get-db-instance 命令检索其端点。通过此端点和访问令牌,您可以使用 InfluxDB API 发送读写请求,也可以使用您最喜欢的数据库工具或编程语言管理引擎。您还可以使用同一端点在浏览器上访问 InfluxDB UI。要允许对正在运行的数据库实例发出的网络请求,您需要授予访问权限或启用公有 IP 访问权限。
可使用 Timestream for InfluxDB 运行多少个数据库实例?
默认情况下,您最多可以运行 40 个 Timestream for InfluxDB 实例。
计费
使用 Timestream for InfluxDB 时如何收费和计费?
您只需为实际使用量付费,无最低费用或设置费用。按以下方式计费:
- 数据库实例使用时间:基于使用的数据库实例类(例如 db.influx.large 和 db.influx.4xlarge)。 部分数据库实例使用时间以 1 秒为增量计费,在计费状态发生变化后,比如创建、启动或修改数据库实例类,按 10 分钟收取最低费用。
- 存储(每月每 GB):您为数据库实例预置的存储容量。如果您在当月扩展了预置的存储容量,账单将按比例分摊。
- 数据传输:传入和传出数据库实例的 Internet 数据。
有关 Timestream for InfluxDB 定价信息,请访问定价页面。
Timestream for InfluxDB 数据库实例账单周期何时开始和结束?
数据库实例的账单周期从该数据库实例可用时开始计算。账单周期一直持续到数据库实例停止(删除实例或实例发生故障时)。
Timestream for InfluxDB 实例使用时间是如何计费的?
数据库实例使用时间是指按您的数据库实例在可用状态下运行的每个小时计费。如果您希望不再为数据库实例付费,则必须将其停止或删除,以免产生更多应计费实例使用时间。 部分数据库实例使用时间以 1 秒为增量计费,在计费状态发生变化后,比如创建、启动或修改数据库实例类,按 10 分钟收取最低费用。
停止的数据库实例如何计费?
当数据库实例停止时,我们会向您收取预置的费用,但不会对数据库实例使用时间收费。
如何对多可用区数据库实例部署计费?
如果您指定数据库实例为多可用区部署,系统将根据 Timestream for InfluxDB 定价页面上发布的多可用区定价计费。多可用区按如下方式计费:
- 多可用区数据库实例使用时间:基于使用的数据库实例类(例如 db.influx.large 和 db.influx.4xlarge)。与单个可用区中的标准部署一样,部分数据库实例使用时间以 1 秒为增量计费,在计费状态发生变化后,比如创建、启动或修改数据库实例类,按 10 分钟收取最低费用。如果在给定时间内,数据库实例在标准和多可用区部署之间发生转换,则将按该时间内两种适用的费率收费。
- 预置存储(适用于多可用区数据库实例):如果在给定时间内,数据库实例在标准和多可用区部署之间发生转换,则将按该时间内适用存储费率较高者收费。
- 数据传输:在主实例和备用实例之间复制数据不会产生数据传输费用。传入和传出数据库实例的 Internet 数据传输费用与标准部署的费用相同。
价格是否含税?
除非另有说明,否则我们的价格不包括适用的税费和关税(包括增值税和销售税)。对于账单地址在日本的客户,使用 Amazon Web Services 需缴纳日本消费税。
硬件
如何确定哪种初始数据库实例类和存储容量适合我的需求?
要选择初始数据库实例类和存储容量,您可能需要评估应用程序的计算、内存和存储需求。有关可用数据库实例类的信息,请参阅 Timestream for InfluxDB 用户指南。
什么是 Timestream for InfluxDB IOPS Included Storage?
Timestream for InfluxDB IOPS Included Storage 是 SSD 型存储方案,旨在提供快速、可预测且一致的输入/输出性能。Timestream for InfluxDB IOPS Included Storage 提供了三个存储层供您选择:从小型工作负载到大规模高性能优化工作负载。您只需指定分配给适合您需求的存储层的卷大小。Timestream for InfluxDB IOPS Included Storage 针对输入/输出密集型、事务性(OLTP)数据库工作负载进行了优化。有关更多详细信息,请参阅 Timestream for InfluxDB 用户指南。
如何选择 Timestream for InfluxDB 存储类型?
选择最适合您工作负载的存储类型。
- 高性能 OLTP 工作负载:Timestream for InfluxDB IOPS Included Storage。
最大序列数量 | 写入(每秒数据点) | 每秒查询次数 | 实例类型 | 存储层 |
<100K | ~50K | ~5 | db.influx.large | InfluxDB I/O included 3K |
<1MM | ~150K | <25 | db.influx.2xlarge | InfluxDB I/O included 3K |
~1MM | ~200K | ~25 | db.influx.4xlarge | InfluxDB I/O included 12K |
<10MM | >250K | ~35 | db.influx.4xlarge | InfluxDB I/O included 12K |
~10MM | ~500K | ~50 | db.influx.8xlarge | InfluxDB I/O included 12K |
~10MM | <750K | <100 | db.influx.12xlarge | InfluxDB I/O included 12K |
数据库配置
如何为数据库实例选择正确的配置参数?
默认情况下,Timestream for InfluxDB 会考虑实例类和存储容量,为数据库实例选择最优配置参数。但是,如果要进行更改,您可以使用 Amazon Web Services 管理控制台、Timestream for InfluxDB API 或 Amazon CLI 来更改。请注意,更改配置参数的建议值可能会产生意想不到的影响,包括性能下降甚至是系统崩溃,只有愿意承担这些风险的高级用户才能尝试。
在发布时,我们将提供一组有限的参数供您修改,其中包括:flux-log-enabled、log-level、metrics-disable、no-tasks、query-concurrency、query-queue-size 和 tracing-type。根据客户需求,此列表可能会随着时间的推移而增加。
什么是数据库参数组? 它们有什么作用?
数据库参数组就像是引擎配置值的容器,这些值可应用于一个或多个数据库实例。如果您在未指定数据库参数组的情况下创建数据库实例,则使用默认的数据库参数组。该默认组包含引擎默认值和 Timestream for InfluxDB 系统默认值,已针对正在运行的数据库实例进行了优化。
但如果您希望数据库实例使用自定义指定的引擎配置值运行,则只需创建一个新的数据库参数组,修改所需的参数,然后修改数据库实例以使用新的数据库参数值。
多可用区部署
以多可用区部署模式运行数据库实例意味着什么?
创建或修改数据库实例并以多可用区部署模式运行时,Timestream for InfluxDB 将自动在不同的可用区预置和维护同步备用副本。对数据库实例的更新将跨可用区同步复制到备用实例,以保持同步,并保护您的数据库更新免受数据库实例故障的影响。
如果遇到特定类型的计划维护或很少出现的数据库实例故障或可用区故障,Timestream for InfluxDB 将自动故障转移到备用实例,以便在备用实例升级后立即恢复数据库读写。由于数据库实例的名称记录保持不变,因此您的应用程序可以恢复数据库操作,而无需手动管理干预。
对于多可用区部署,复制是透明的。您不能直接与备用实例交互,也不能将其用来处理读取流量。
什么是可用区?
可用区是区域内的不同位置,旨在与其他可用区中的故障隔离。每个可用区都在各自独立的物理基础设施上运行,具有高度可靠性。在不同的可用区,发电机和冷却设备等常见故障点不会相同。此外,它们在物理上也是相互隔离的,即使火灾、龙卷风或洪涝等极为罕见的灾难也只会影响单个可用区。位于同一区域的可用区网络连接延迟很低。
在多可用区部署上下文中,“主”和“备用”是指什么?
以多可用区部署模式运行数据库实例时,“主”实例处理数据库读写操作。此外,Timestream for InfluxDB 在后台预置和维护备用实例,它是主实例的最新副本。在故障转移情况下,备用实例会升级。故障转移后,备用实例将成为主实例,并接受数据库操作。在升级之前的任何时候,无需与备用实例直接交互(例如,读取操作)。
多可用区部署有哪些优势?
以多可用区部署模式运行数据库实例的主要优势是增强了数据库的持久性和可用性。多可用区部署提供了增强的可用性和容错功能,这使其自然而然成为生产环境的理想之选。
在遇到罕见的数据库实例组件故障或某个可用区的可用性受损的情况时,以多可用区部署模式运行数据库实例可确保数据安全无虞。
例如,如果主实例中的存储卷发生故障,Timestream for InfluxDB 会自动故障转移到备用实例,其中所有数据库更新都完好无损。相对于单个可用区中的标准部署,这提供了额外的数据持久性,因为在单个可用区中,需要用户启动的还原操作,并且最晚可还原时间(通常在最后 5 分钟内)之后的更新将不可用。
此外,以多可用区部署模式运行时,还可以增强数据库可用性。如果发生可用区故障或数据库实例故障,可用性影响将仅限于完成自动故障转移的时间。多可用区的可用性优势还延伸到计划内维护。以多可用区部署模式运行数据库实例的另一潜在优势是,系统将自动执行数据库实例故障转移,无需进行管理。
以多可用区部署模式运行数据库实例是否会影响性能?
由于是代表您执行同步数据复制,您可能会发现,与单个可用区中的标准数据库实例部署相比延迟有所增加。
以多可用区部署模式运行数据库实例时,是否可使用备用实例来执行读/写操作?
不,多可用区备用实例无法处理读取请求。多可用区部署旨在提升数据库的可用性和持久性,而不是读取扩缩优势。因此,该功能在主副本和备用副本之间采用同步复制。我们的实施方案可确保主实例和备用实例始终保持同步,但不允许使用备用实例执行读/写操作。
如何设置多可用区数据库实例部署?
要创建多可用区数据库实例部署,只需在使用 Amazon Web Services 管理控制台启动数据库实例时选择“为多可用区部署创建备用实例”选项。或者,如果您使用的是 Timestream for InfluxDB API,则需要调用 CreateDBInstance API 并将 Multi-AZ 参数设置为 True。
目前,您无法将现有单可用区 Timestream for InfluxDB 数据库实例转换为多可用区实例。实现此目标的唯一方法是创建一个新的多可用区数据库实例,将工作负载迁移到其中。
哪些事件会导致 Timestream for InfluxDB 故障转移到备用副本?
Timestream for InfluxDB 可检测多可用区部署中最常见的故障并自动恢复,以便您可以尽快恢复数据库操作,而无需管理干预。如果发生以下任一情况,Timestream for InfluxDB 会自动执行故障转移:
- 主可用区的可用性受损
- 主可用区的网络连接受损
- 主可用区的计算设备出现故障
- 主可用区的存储出现故障
请注意:Timestream for InfluxDB 多可用区部署不会自动故障转移来响应数据库操作,比如长时间运行查询、死锁或数据库损坏错误。
多可用区故障转移期间会发生什么,持续多长时间?
Timestream for InfluxDB 自动执行故障转移,以便您可以尽快恢复数据库操作,而无需管理干预。发生故障转移时,Timestream for InfluxDB 将翻转数据库实例的规范名称(CNAME)记录以指向备用实例,该备用实例之后升级为新的主数据库。建议您遵循最佳做法,在应用程序层实施数据库连接重试。
故障转移是由在主实例上检测到故障,到在备用实例上恢复事务之间的间隔定义的,通常在一两分钟内完成。故障转移时间还可能受到是否必须恢复大型未提交事务、索引大小以及其他因素的影响。为获得理想的结果,建议在多可用区中使用足够大的实例类型。我们还建议对多可用区实例使用 Timestream for InfluxDB IOPS Included Storage,以获得快速、可预测和一致的吞吐量性能。
是否可以对多可用区数据库实例部署启动强制故障转移?
在各种故障条件下,Timestream for InfluxDB 会自动进行故障转移,无需用户干预。目前,您无法为 Timestream for InfluxDB 数据库实例手动启动强制故障转移。
如何控制/配置多可用区同步复制?
对于多可用区部署,您只需将多可用区参数设置为 True。备用实例创建、同步复制和故障转移都是自动进行的。这意味着您无法选择部署备用实例的可用区或更改可用备用实例的数量(Timestream for InfluxDB 为每个主数据库实例预置了一个专用的备用实例)。备用实例也不能配置为接受数据库读取活动。
备用实例与主实例是否可以位于同一区域?
是,备用实例会自动预置在与主数据库实例所在区域不同的可用区中。
能否查看我的主实例当前位于哪个可用区?
能。您可以使用 Amazon Web Services 管理控制台或 GetDBInstance API 查看当前主实例的位置。
故障转移后,我的主实例现在与其他 Amazon Web Services 资源(如 EC2 实例)位于不同的可用区。我是否需要考虑延迟?
可用区旨在为同一区域中的其他可用区提供低延迟网络连接。此外,您可能需要考虑以跨多个可用区的冗余架构应用程序及其他 Amazon Web Services 资源,以便在发生可用区故障时应用程序能够恢复。多可用区部署可满足数据库层的此项需求,而无需用户干预管理。
免责声明:
Amazon Timestream 提供两个引擎,即 InfluxDB 和 LiveAnalytics,这两种引擎都在我们的产品页面和相关文档中进行了全面介绍。请注意:目前,光环新网运营的 Amazon Web Services 中国(北京)区域和西云数据运营的 Amazon Web Services 中国(宁夏)区域仅提供适用于 Amazon Timestream for InfluxDB。Amazon Timestream 产品页面和相关文档中与 LiveAnalytics 相关的所有内容均保留用于未来开发,此类内容不应被视为 Amazon Timestream 当前服务内容的一部分,且不具有法律约束力。