效率释放:使用 InfluxDB 管理 API 精简工作流程
作者:Jessica Wachtel / 开发者
2024 年 5 月 23 日
导航至
InfluxDB 最近为 InfluxDB Cloud Dedicated 推出了 InfluxDB 管理 API。现在,开发者可以直接从他们的应用程序管理数据库、数据库令牌,并创建具有自定义分区的数据库表。管理 API 为执行以前需要人工交互的任务提供了程序化接口。
该接口促进了需要自动配置 InfluxDB 多个实例的应用程序的更简单的工作流程,无论是用于内部还是外部目的。开发者还可以通过集成功能将数据库管理包含在他们自己的代码和应用程序中,从而提高自动化、速度和效率。
以前,配置数据库服务的唯一方法是通过 influxctl
CLI。此选项仍然可用且未更改。管理 API 只是为需要自动化的开发者提供了第二种选择。
工作原理
与通过 influxctl
CLI 配置数据库服务类似,管理 API 需要管理令牌。与数据库令牌不同,管理令牌管理集群中的数据库、表和访问令牌。它们的目的不扩展到读取或写入数据。
默认情况下,InfluxDB v3 的管理令牌是短期的。OAuth2 身份提供程序授予特定用户对其 InfluxDB 集群的管理访问权限。为了自动化目的,开发者现在可以创建长期有效的管理令牌,绕过 OAuth 身份提供程序并直接使用其 InfluxDB 集群进行身份验证。长期有效的令牌适用于管理 API 和自动化工作流程,因为它们不需要人工交互。使用 influxctl
CLI 创建长期有效的管理令牌。
您可以在以下位置访问集群的管理 API 端点
https://console.influxdata.com/api/v0/accounts/{accountId}/clusters/{clusterId}
管理数据库
在以下端点创建、列出、更新和删除 Cloud Dedicated 集群中的数据库
/api/v0/accounts/{accountId}/clusters/{clusterId}/databases
示例:创建数据库
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \
--request POST
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"name": "'DATABASE_NAME'",
"maxTables": 500,
"maxColumnsPerTable": 250,
"retentionPeriod": 2592000000000,
"partitionTemplate": [
{
"type": "tag",
"value": "TAG_KEY_1"
},
{
"type": "tag",
"value": "TAG_KEY_2"
},
{
"type": "bucket",
"value": {
"tagName": "TAG_KEY_3",
"numberOfBuckets": 100
}
},
{
"type": "bucket",
"value": {
"tagName": "TAG_KEY_4",
"numberOfBuckets": 300
}
},
{
"type": "time",
"value": "%Y-%m-%d"
}
]
}'
InfluxDB Cloud Dedicated 客户可以自定义分区。分区是以 Apache Parquet 格式存储在 InfluxDB v3 中的数据的逻辑分组。默认情况下,InfluxDB Cloud Dedicated 按天对数据进行分区。如果默认模式不是其模式和工作负载的最佳模式,开发者可以自定义其分区策略以提高查询性能。
数据库令牌
数据库令牌授予对集群中一个或多个数据库的读取和写入权限。开发者生成数据库令牌后,它们可以在应用程序、设备和客户之间分散。为了验证应用程序,数据库令牌和数据库名称包含在对集群的每个写入或查询请求中。
在以下端点创建、列出、更新和删除 Cloud Dedicated 集群中的数据库令牌
/api/v0/accounts/{accountId}/clusters/{clusterId}/tokens
每个设备都需要唯一的令牌来写入和查询存储在一个或多个集群数据库中的数据。数据库令牌轮换是一种安全最佳实践和常见工作流程。这包括创建和分配新令牌以及按计划删除旧令牌。
示例:创建和删除令牌
sh
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/tokens" \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"description": "Read/write token for DATABASE_NAME",
"permissions": [
{
"action": "write",
"resource": "DATABASE_NAME"
},
{
"action": "read",
"resource": "DATABASE_NAME"
}
]
}'
要了解有关 InfluxDB 管理 API 的更多信息,请查看我们的文档。要了解有关 Cloud Dedicated 性能的更多信息,请参阅我们的基准测试报告或联系我们的销售团队以获得进一步的帮助。