Migrate data from InfluxDB 1.x to InfluxDB Cloud Serverless
To migrate data from an InfluxDB 1.x OSS or Enterprise instance to InfluxDB Cloud Serverless powered by the v3 storage engine, export the data as line protocol and write the exported data to a bucket in your InfluxDB Cloud Serverless organization. Because full data migrations will likely exceed your organizations’ limits and adjustable quotas, migrate your data in batches.
All write requests are subject to your InfluxDB Cloud Serverless organization’s rate limits and adjustable quotas.
Before you migrate
Before you migrate from InfluxDB 1.x to InfluxDB Cloud Serverless, there are schema design practices supported by the TSM storage engine that are not supported in the InfluxDB v3 storage engine. Specifically, InfluxDB v3 enforces the following schema restrictions:
- You can’t use duplicate names for tags and fields
- Measurements can contain up to 200 columns where each column represents time, a field, or a tag.
For more information, see Schema restrictions.
If your schema does not adhere to these restrictions, you must update your schema before migrating to InfluxDB Cloud Serverless.
Tools to use
The migration process uses the following tools:
-
influx_inspect
utility:
Theinflux_inspect
utility is packaged with InfluxDB 1.x OSS and Enterprise. -
InfluxDB 2.x
influx
CLI:
The 2.xinflux
CLI is packaged separately from InfluxDB OSS 2.x and InfluxDB Cloud Serverless. Download and install the 2.x CLI. -
InfluxDB Cloud user interface (UI):
Visit cloud2.influxdata.com to access the InfluxDB Cloud UI.
InfluxDB 1.x and 2.x CLIs are unique
If both the InfluxDB 1.x and 2.x influx
CLIs are installed in your $PATH
,
rename one of the the binaries to ensure you’re executing commands with the
correct CLI.
Migrate data
-
Export data from your InfluxDB 1.x instance as line protocol.
Use the InfluxDB 1.x
influx_inspect export
utility to export data as line protocol and store it in a file. Include the following:- (Required)
-lponly
flag to export line protocol without InfluxQL DDL or DML. - (Required)
-out
flag with a path to an output file. Default is~/.influxdb/export
. Any subsequent export commands without the output file defined will overwrite the existing export file. -compress
flag to use gzip to compress the output.-datadir
flag with the path to your InfluxDB 1.xdata
directory. Only required if thedata
directory is at a non-default location. For information about default locations, see InfluxDB OSS 1.x file system layout or InfluxDB Enterprise 1.x file system layout.-waldir
flag with the path to your InfluxDB 1.xwal
directory. Only required if thewal
directory is at a non-default location. For information about default locations, see InfluxDB OSS 1.x file system layout or InfluxDB Enterprise 1.x file system layout.-database
flag with a specific database name to export. By default, all databases are exported.-retention
flag with a specific retention policy to export. By default, all retention policies are exported.-start
flag with an RFC3339 timestamp that defines the earliest time to export. Default is1677-09-20T16:27:54-07:44
.-end
flag with an RFC3339 timestamp that defines the latest time to export. Default is2262-04-11T16:47:16-07:00
.
We recommend exporting each database and retention policy combination separately to easily write the exported data into corresponding InfluxDB Cloud Serverless buckets.
Export all data in a database and retention policy to a file
influx_inspect export \ -lponly \ -database example-db \ -retention example-rp \ -out path/to/export-file.lp
View more export command examples:
- (Required)
-
Create InfluxDB Cloud Serverless buckets for each InfluxDB 1.x database and retention policy combination. InfluxDB Cloud Serverless combines InfluxDB 1.x databases and retention policies into buckets–named locations for time series data with specified retention periods.
Use the InfluxDB 2.x
influx
CLI or the InfluxDB Cloud Serverless user interface (UI) to create a bucket.Use the
influx bucket create
command to create a new bucket.Provide the following:
- InfluxDB Cloud Serverless connection and authentication credentials
-n, --name
flag with the bucket name.-r, --retention
flag with the bucket’s retention period duration. Supported retention periods depend on your InfluxDB Cloud Serverless plan.
influx bucket create \ --name example-db/autogen \ --retention 7d
-
Go to cloud2.influxdata.com in a browser to log in and access the InfluxDB UI.
-
Navigate to Load Data > Buckets using the left navigation bar.
-
Click + Create bucket.
-
Provide a bucket name (for example:
example-db/autogen
) and select a retention period. Supported retention periods depend on your InfluxDB Cloud Serverless plan. -
Click Create.
-
Write the exported line protocol to your InfluxDB Cloud Serverless organization.
Use the InfluxDB 2.x CLI to write data to InfluxDB Cloud Serverless. While you can use the
/api/v2/write
API endpoint to write data directly, theinflux write
command lets you define the rate at which data is written to avoid exceeding your organization’s rate limits.Use the
influx write
command and include the following:- InfluxDB Cloud Serverless connection and authentication credentials
-b, --bucket
flag to identify the target bucket.-f, --file
flag with the path to the line protocol file to import.-rate-limit
flag with a rate limit that matches your InfluxDB Cloud organization’s write rate limit.--compression
flag to identify the compression type of the import file. Options arenone
orgzip
. Default isnone
.
Authentication credentials
The examples below assume your InfluxDB host, organization, and token are provided by either the active
influx
CLI configuration or by environment variables (INFLUX_HOST
,INFLUX_ORG
, andINFLUX_TOKEN
). If you do not have a CLI configuration set up or the environment variables set, include these required credentials for each command with the following flags:--host
: InfluxDB host-o, --org
or--org-id
: InfluxDB organization name or ID-t, --token
: InfluxDB API token
influx write \ --bucket example-db/autogen \ --file path/to/export-file.lp \ --rate-limit "300 MB / 5 min"
influx write \ --bucket example-db/autogen \ --file path/to/export-file.lp.gzip \ --rate-limit "300 MB / 5 min" \ --compression gzip
Repeat for each export file and target bucket.
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.