6.5 KiB
The influxctl database create command creates a new database with a specified
retention period in an {{< product-name omit=" Clustered" >}} cluster.
The retention period defines the maximum age of data retained in the database,
based on the timestamp of the data.
The retention period value is a time duration value made up of a numeric value
plus a duration unit. For example, 30d means 30 days.
A zero duration retention period is infinite and data will not expire.
The retention period value cannot be negative or contain whitespace.
{{< flex >}} {{% flex-content "half" %}}
Valid durations units include
- m: minute
- h: hour
- d: day
- w: week
- mo: month
- y: year
{{% /flex-content %}} {{% flex-content "half" %}}
Example retention period values
0d: infinite/none3d: 3 days6w: 6 weeks1mo: 1 month (30 days)1y: 1 year30d30d: 60 days2.5d: 60 hours
{{% /flex-content %}} {{< /flex >}}
Custom partitioning
You can override the default partition template (%Y-%m-%d) of the database
with the --template-tag, --template-tag-bucket, and --template-timeformat
flags when you create the database.
Provide a time format using Rust strftime, partition by specific tag, or partition tag values
into a specified number of "buckets."
Each of these can be used as part of the partition template.
Be sure to follow partitioning best practices.
[!Note]
Always provide a time format when using custom partitioning
If defining a custom partition template for your database with any of the
--template-*flags, always include the--template-timeformatflag with a time format to use in your partition template. Otherwise, InfluxDB omits time from the partition template and won't compact partitions.
[!Warning]
Wait before writing to a new database with the same name as a deleted database
After deleting a database from your {{% product-name omit=" Clustered" %}} cluster, you can reuse the name to create a new database, but wait two to three minutes after deleting the previous database before writing to the new database to allow write caches to clear.
Usage
influxctl database create [flags] <DATABASE_NAME>
Arguments
| Argument | Description |
|---|---|
| DATABASE_NAME | InfluxDB database name |
Flags
| Flag | Description | |
|---|---|---|
--retention-period |
Database retention period (default is 0s, infinite) |
|
--max-tables |
Maximum tables per database (default is 500, 0 uses default) |
|
--max-columns |
Maximum columns per table (default is 250, 0 uses default) |
|
--template-tag |
Tag to add to partition template (can include multiple of this flag) | |
--template-tag-bucket |
Tag and number of buckets to partition tag values into separated by a comma--for example: tag1,100 (can include multiple of this flag) |
|
--template-timeformat |
Timestamp format for partition template (default is %Y-%m-%d) |
|
-h |
--help |
Output command help |
{{% caption %}}
Also see influxctl global flags.
{{% /caption %}}
Examples
- Create a database with an infinite retention period
- Create a database with a 30-day retention period
- Create a database with non-default table and column limits
- Create a database with a custom partition template
Create a database with an infinite retention period
influxctl database create mydb
Create a database with a 30-day retention period
influxctl database create \
--retention-period 30d \
mydb
Create a database with non-default table and column limits
influxctl database create \
--max-tables 200 \
--max-columns 150 \
mydb
Create a database with a custom partition template
The following example creates a new mydb database and applies a partition
template that partitions by two tags (room and sensor-type) and by day using
the time format %Y-%m-%d:
influxctl database create \
--template-tag room \
--template-tag sensor-type \
--template-tag-bucket customerID,1000 \
--template-timeformat '%Y-%m-%d' \
mydb
For more information about custom partitioning, see Manage data partitioning.
{{% expand "View command updates" %}}
v2.7.0
- Introduce the
--template-tag-bucketflag to group tag values into buckets and partition by each tag bucket.
v2.5.0
- Introduce the
--template-tagand--template-timeformatflags that define a custom partition template for a database.
{{% /expand %}}