效率释放:使用 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}
管理数据库
在以下端点上创建、列出、更新和删除您的云专用集群中的数据库
/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 云专用客户可以 自定义分区。分区是存储在 InfluxDB v3 中以 Apache Parquet 格式的数据的逻辑分组。默认情况下,InfluxDB 云专用按日分区数据。如果默认模式对他们的模式和负载不优,开发者可以自定义他们的分区策略以提高查询性能。
数据库令牌
数据库令牌授予对集群中一个或多个数据库的读取和写入权限。在开发者生成数据库令牌后,它们可以在应用程序、设备和客户之间分发。为了验证应用程序,数据库令牌和数据库名称包含在每个向集群发送的写入或查询请求中。
在以下端点上创建、列出、更新和删除您的云专用集群中的数据库令牌
/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的信息,请参阅我们的 文档。要了解更多关于云专用性能的信息,请参阅我们的 性能测试报告 或 联系我们的销售团队 以获取进一步的帮助。