管理数据库
InfluxDB 数据库是一个存储时间序列数据的命名位置。
每个 InfluxDB 数据库都有一个 保留期。
如果来自 InfluxDB v1,数据库和保留策略的概念已合并为一个单一概念——数据库。保留策略不再是 InfluxDB 数据模型的一部分。 然而,InfluxDB Cloud Dedicated 确实支持 InfluxQL,这需要数据库和保留策略。 请参阅 InfluxQL DBRP 命名约定。
如果来自 InfluxDB v2、InfluxDB Cloud (TSM) 或 InfluxDB Cloud Serverless, 数据库 和 桶 是同义词。
保留期限
数据库保留时间是存储在数据库中的数据的最大年龄。 数据的年龄由与每个点相关联的时间戳确定。 当一个点的时间戳超出保留时间(相对于现在)时,该 点被标记为删除,并在下次运行保留执行服务时从数据库中移除。
InfluxDB 数据库的 最小 保留期为 1 小时。
最大 保留期为无限,意味着数据不会过期,并且将永远不会被保留执行服务删除。
表和列的限制
您可以自定义 表(测量)限制 和 表列限制 当您 创建 或 更新数据库 在 InfluxDB Cloud Dedicated 中。
表限制
默认最大表数量: 500
每个测量在数据库中由一个表表示。 您数据库的表限制可以提高到超过默认限制500。 InfluxData 有 20,000 个以上活跃表的集群生产示例,跨多个数据库。
增加您的表限制会在以下方面影响您的 InfluxDB Cloud Dedicated 集群:
列限制
默认最大列数: 250
可配置的最大列数: 1000
每行必须包含一个时间列,其余列代表标签和字段。因此,一个有250列的表可以有一个时间列和最多249个字段和标签列。
如果您尝试写入一个表并超过列限制,写入请求将失败,并且 InfluxDB 会返回一个错误。
如果您更新数据库的列限制,该限制适用于新创建的表;不会覆盖现有表的列限制。
增加列限制会影响您的 InfluxDB Cloud Dedicated 集群,具体如下:
创建一个数据库
使用influxctl database create命令或管理HTTP API在你的InfluxDB Cloud Dedicated集群中创建一个新的InfluxDB数据库。提供一个数据库名称和一个可选的保留期。
命令行界面
influxctl database create \
--retention-period 30d \
--max-tables 500 \
--max-columns 250 \
DATABASE_NAME
API
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"
}
]
}'
更新数据库
使用influxctl database update命令或管理HTTP API来更新您在InfluxDB Cloud专用集群中数据库的属性。提供数据库名称和要更新的属性。
命令行界面
influxctl database update \
--retention-period 30d \
--max-tables 500 \
--max-columns 250 \
DATABASE_NAME
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
}'
列出数据库
使用 influxctl database list 命令 列出您的 InfluxDB Cloud Dedicated 集群中的数据库。
命令行界面
influxctl database list
API
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \
--header "Accept: application/json" \
--header "Authorization: Bearer MANAGEMENT_TOKEN"
删除数据库
使用influxctl database delete 命令或管理HTTP API从您的InfluxDB Cloud Dedicated集群中删除一个数据库。提供您想要删除的数据库名称。
命令行界面
influxctl database delete <DATABASE_NAME>
API
curl \
--location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME" \
--request DELETE \
--header "Accept: application/json" \
--header "Authorization: Bearer MANAGEMENT_TOKEN"