更新数据库
使用influxctl CLI或管理HTTP API来更新InfluxDB Cloud Dedicated集群中数据库的属性,例如保留期限、列限制和表限制。
使用influxctl database update命令来更新您在InfluxDB Cloud Dedicated集群中的数据库。
如果您还没有,下载并安装
influxctlCLI。在你的终端中,运行
influxctl database update命令并提供以下内容:
influxctl database update \
--retention-period 30d \
--max-tables 500 \
--max-columns 250 \
DATABASE_NAME
在您的命令中替换以下内容:
DATABASE_NAME: 你的 InfluxDB Cloud 专用 数据库
数据库名称无法更新
命令 influxctl database update 使用数据库名称来识别需要更新的数据库。数据库名称本身无法更新。
数据库属性
保留期限语法(influxctl CLI)
使用 --retention-period 标志来定义
保留期限
对于数据库。
保留期限值是由一个数值
加一个时间单位组成的时间持续值。
例如, 30d 表示30天。
零持续时间(例如, 0s 或 0d)的保留期限是无限的,数据不会过期。
保留期限值不能是负数或包含空格。
有效的持续时间单位包括
- m: 分钟
- h: 小时
- d: 天
- w: 周
- mo: 月份
- y: 年
示例保留期值
0d: 无限/无3d: 3天6w: 6 周1mo: 1个月(30天)1y: 1 年30d30d: 60天2.5d: 60小时
在您的终端中,使用 cURL 向以下 InfluxDB Cloud 专用端点发送请求:
POST https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases
在URL中提供以下凭据:
ACCOUNT_ID: 集群所属的账户的ID (查看如何列出集群详情)。CLUSTER_ID: 您要管理的集群的ID(查看如何列出集群详情)。DATABASE_NAME: 您想要删除的数据库的名称(查看如何列出数据库)。
提供以下请求头:
Accept: application/json以确保响应体是JSON内容Content-Type: application/json表示请求体是JSON内容Authorization: Bearer和一个 管理 API 令牌 用于你的集群 (请参阅如何 创建管理令牌 以进行管理 API 请求).
在请求体中,提供要更新的参数:
- 可选: 数据库 保留期限(以纳秒为单位)。
默认值为
0(无限制)。 - 可选: 数据库表(测量)限制。默认为
500。 - 可选: 数据库列限制。默认是
250。
指定
PATCH请求方法。
以下示例展示了如何使用管理API来更新数据库:
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME" \
--request PATCH \
--header "Accept: application/json" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer MANAGEMENT_TOKEN" \
--data '{
"maxTables": 500,
"maxColumnsPerTable": 250,
"retentionPeriod": 2592000000000000
}'
在您的请求中替换以下内容:
ACCOUNT_ID: 创建数据库的 InfluxDB Cloud Dedicated 账户 的 IDCLUSTER_ID: 要为其创建数据库的 InfluxDB Cloud Dedicated cluster 的 IDMANAGEMENT TOKEN: 为您的 InfluxDB Cloud Dedicated 集群的 管理令牌DATABASE_NAME: 你的 InfluxDB Cloud 专用 数据库
数据库属性
保留期语法(管理 API)
使用 retentionPeriod 属性来指定
保留期
用于数据库。
保留期值是一个整数 (),表示以纳秒为单位的时间。
例如, 2592000000000 表示 30 天。
零 (0) 保留期是无限的,数据将不会过期。
保留期值不能为负数或包含空格。
示例保留期值
0: 无限/无259200000000000: 3天2592000000000000: 30天31536000000000000: 1 个标准年 (365 天)
数据库名称无法更新
管理 API PATCH /api/v0/database 端点和 influxctl database update 命令使用数据库名称来识别要应用更新的数据库。数据库名称本身无法更新。
分区模板无法更新
在创建数据库时,您只能应用分区模板。 您不能更新现有数据库上的分区模板。
数据库命名限制
数据库名称必须遵循以下命名限制:
- 不能包含空格、标点符号或特殊字符。只有字母数字、下划线 (
_)、破折号 (-) 和斜杠 (/) 字符是允许的。 - 不应以下划线 (
_) 开头。 - 最大长度为64个字符。
InfluxQL DBRP 命名约定
在 InfluxDB 1.x 中,数据存储在 databases 和 retention policies 中。 在 InfluxDB Cloud Dedicated 中,数据库和保留策略已合并为 databases,其中数据库具有保留期限,但保留策略不再是数据模型的一部分。 因为 InfluxQL 使用 1.x 数据模型,所以必须将数据库映射到 v1 数据库和保留政策 (DBRP),才能通过 InfluxQL 进行查询。
当命名您想要使用 InfluxQL 查询的数据库时,请使用以下命名约定以自动将 v1 DBRP 组合映射到数据库:
database_name/retention_policy_name
数据库命名示例
| v1 数据库名称 | v1 保留策略名称 | 新数据库名称 |
|---|---|---|
| 数据库 | 重复 | 数据库/重复 |
| telegraf | 自动生成 | telegraf/自动生成 |
| 网络指标 | 1万降采样 | 网络指标/1万降采样 |
表和列的限制
在 InfluxDB Cloud Dedicated 中,可以使用以下选项配置表(度量)和列的限制:
| 描述 | 默认值 | influxctl CLI标志 | 管理API属性 |
|---|---|---|---|
| 表限制 | 500 | --max-tables | maxTables |
| 列限制 | 250 | --max-columns | maxColumnsPerTable |
表限制
默认最大表数量: 500
每个测量在数据库中由一个表表示。 您数据库的表限制可以提高到超过默认限制500。 InfluxData 有 20,000 个以上活跃表的集群生产示例,跨多个数据库。
增加您的表限制会在以下方面影响您的 InfluxDB Cloud Dedicated 集群:
列限制
默认最大列数: 250
时间、字段和标签分别由表中的一列表示。增加您的列限制会以以下方式影响您的 InfluxDB Cloud Dedicated 集群: