Documentation

influxctl database create

The influxctl database create command creates a new database with a specified retention period in an InfluxDB 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.

Valid durations units include
  • m: minute
  • h: hour
  • d: day
  • w: week
  • mo: month
  • y: year
Example retention period values
  • 0d: infinite/none
  • 3d: 3 days
  • 6w: 6 weeks
  • 1mo: 1 month (30 days)
  • 1y: 1 year
  • 30d30d: 60 days
  • 2.5d: 60 hours

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.

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-timeformat flag with a time format to use in your partition template. Otherwise, InfluxDB omits time from the partition template and won’t compact partitions.

Cannot reuse deleted database names

You cannot reuse the name of a deleted database when creating a new database. If you try to reuse the name, the API response status code is 400 and the message field contains the following:

'iox_proxy.app.CreateDatabase failed to create database: \
rpc error: code = AlreadyExists desc = A namespace with the
name `<DATABASE_NAME>` already exists'

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

Examples

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.

View command updates


Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

InfluxDB v3 enhancements and InfluxDB Clustered is now generally available

New capabilities, including faster query performance and management tooling advance the InfluxDB v3 product line. InfluxDB Clustered is now generally available.

InfluxDB v3 performance and features

The InfluxDB v3 product line has seen significant enhancements in query performance and has made new management tooling available. These enhancements include an operational dashboard to monitor the health of your InfluxDB cluster, single sign-on (SSO) support in InfluxDB Cloud Dedicated, and new management APIs for tokens and databases.

Learn about the new v3 enhancements


InfluxDB Clustered general availability

InfluxDB Clustered is now generally available and gives you the power of InfluxDB v3 in your self-managed stack.

Talk to us about InfluxDB Clustered