---
title: Upgrade from InfluxDB 1.x to InfluxDB Cloud
description: To upgrade from InfluxDB 1.x to InfluxDB Cloud, migrate data, and then create database and retention policy (DBRP) mappings.
url: https://docs.influxdata.com/influxdb/cloud/upgrade/v1-to-cloud/
estimated_tokens: 4409
product: InfluxDB Cloud (TSM)
version: cloud
---

# Upgrade from InfluxDB 1.x to InfluxDB Cloud

To upgrade from **InfluxDB OSS 1.x** to **InfluxDB Cloud**:

1. [Create an InfluxDB Cloud account](#create-an-influxdb-cloud-account)
2. [Create an All-Access API token](#create-an-all-access-authentication-token)
3. [Download and install the `influx` CLI](#download-and-install-the-influx-cli)
4. [Create DBRP mappings](#create-dbrp-mappings)
5. [Dual write to InfluxDB 1.x and InfluxDB Cloud](#dual-write-to-influxdb-1x-and-influxdb-cloud)
6. [Migrate time series data](#migrate-time-series-data)
7. [Migrate continuous queries](#migrate-continuous-queries)
8. [Collaborate with other users](#collaborate-with-other-users)

## Create an InfluxDB Cloud account

Do one of the following to create an InfluxDB Cloud account:

-   [Subscribe through InfluxData](/influxdb/cloud/sign-up/#subscribe-through-influxdata) and start for free.
-   [Subscribe through your cloud provider](/influxdb/cloud/sign-up/#subscribe-through-a-cloud-provider).

## Create an All-Access API token

InfluxDB Cloud uses [authentication tokens](/influxdb/cloud/security/tokens/) to authorize API requests.

Create an **All-Access** token in your InfluxDB Cloud user interface (UI) to use for the upgrade process.

1. Click **Data (Load Data) > Tokens** in the left navigation bar.
    
    Load Data
    
2. Click **Generate**, and then select **All-Access Token**.
    
3. Enter a description for the token, and then click **Save**.
    

*For more information about managing tokens and token types, see [Manage tokens](/influxdb/cloud/admin/tokens/).*

## Download and install the influx CLI

1. Visit the [InfluxDB downloads page](https://www.influxdata.com/downloads/) and download the **InfluxDB Cloud CLI** (`influx`).
    
2. Place the `influx` binary in your system `PATH` or execute the CLI commands from the directory where the `influx` CLI exists.
    
3. [Create a CLI connection configuration](/influxdb/cloud/reference/cli/influx/#provide-required-authentication-credentials) for your InfluxDB Cloud account. Include the following flags:
    
    -   **\--config-name**: Unique name for the connection configuration.
    -   **\--host-url**: [InfluxDB Cloud region URL](/influxdb/cloud/reference/regions/).
    -   **\--org**: InfluxDB Cloud organization name. The default organization name is the email address associated with your account.
    -   **\--token**: InfluxDB Cloud **All-Access** token.
    
    ```sh
    influx config create \
      --config-name cloud \
      --host-url https://cloud2.influxdata.com \
      --org your.email@example.com \
      --token mY5uP3rS3cRe7Cl0uDt0K3n \
      --active
    ```
    

#### Required InfluxDB Cloud credentials

All `influx` CLI examples below assume the required InfluxDB Cloud **host**, **organization**, and **API token** credentials are provided by your [`influx` CLI configuration](/influxdb/cloud/reference/cli/influx/#provide-required-authentication-credentials).

## Create DBRP mappings

InfluxDB database and retention policy (DBRP) mappings associate database and retention policy combinations with InfluxDB cloud [buckets](/influxdb/cloud/reference/glossary/#bucket). These mappings allow InfluxDB 1.x clients to query and write to InfluxDB Cloud buckets while using the 1.x DBRP convention.

*For more information about DBRP mapping, see [Database and retention policy mapping](/influxdb/cloud/reference/api/influxdb-1x/dbrp/).*

**To map a DBRP combination to an InfluxDB Cloud bucket**

1. **Create a bucket**  
    [Create an InfluxDB Cloud bucket](/influxdb/cloud/admin/buckets/create-bucket/). We recommend creating a bucket for each unique 1.x database and retention policy combination using the following naming convention:
    
    ```sh
    # Naming convention
    db-name/rp-name
    
    # Example
    telegraf/autogen
    ```
    
2. **Create a DBRP mapping**  
    Use the [`influx v1 dbrp create` command](/influxdb/cloud/reference/cli/influx/v1/dbrp/create/) to create a DBRP mapping. Provide the following:
    
    -   database name
    -   retention policy name *(not retention period)*
    -   [bucket ID](/influxdb/cloud/admin/buckets/view-buckets/)
    -   *(optional)* `--default` flag if you want the retention policy to be the default retention policy for the specified database
    
    <!-- Tabbed content: Select one of the following options -->
    
    
    **DB with one RP:**
    
    ```sh
    influx v1 dbrp create \
      --db example-db \
      --rp example-rp \
      --bucket-id 00xX00o0X001 \
      --default
    ```
    
    
    
    **DB with multiple RPs:**
    
    ```sh
    # Create telegraf/autogen DBRP mapping with autogen
    # as the default RP for the telegraf DB
    
    influx v1 dbrp create \
      --db telegraf \
      --rp autogen \
      --bucket-id 00xX00o0X001 \
      --default
    
    # Create telegraf/downsampled-daily DBRP mapping that
    # writes to a different bucket
    
    influx v1 dbrp create \
      --db telegraf \
      --rp downsampled-daily \
      --bucket-id 00xX00o0X002
    ```
    
    
    
    <!-- End tabbed content -->
    
    See [Required InfluxDB Cloud credentials](#required-influxdb-cloud-credentials)
    

## Dual write to InfluxDB 1.x and InfluxDB Cloud

Update external clients to write to your InfluxDB Cloud instance. **We recommend writing data to both InfluxDB 1.x and InfluxDB Cloud until you finish [migrating your existing time series data](#migrate-time-series-data)**.

Configure external clients with your InfluxDB Cloud **host**, **organization**, and **API token**.

### Update Telegraf configurations

If using Telegraf to collect and write metrics to InfluxDB 1.x, update your Telegraf configuration to write to both InfluxDB 1.x and InfluxDB Cloud:

1. Update your Telegraf configuration with a `influxdb_v2` output to write to your InfluxDB Cloud instance.
    
    ##### Example dual-write Telegraf configuration
    
    ```toml
    # Write metrics to InfluxDB 1.x
    [[outputs.influxdb]]
      urls = ["https://localhost:8086"]
      database = "example-db"
      retention_policy = "example-rp"
    
    # Write metrics to InfluxDB Cloud
    [[outputs.influxdb_v2]]
      urls = ["https://cloud2.influxdata.com"]
      token = "$INFLUX_TOKEN"
      organization = "your.email@example.com"
      bucket = "example-db/example-rp"
    ```
    
2. Add the `INFLUX_TOKEN` environment variable to your Telegraf environment(s) and set the value to your InfluxDB Cloud API token.
    
3. Restart Telegraf with the updated configuration and begin writing to both InfluxDB 1.x and InfluxDB Cloud.
    

## Migrate time series data

To migrate time series data from your InfluxDB 1.x instance to InfluxDB Cloud:

1. Use the **InfluxDB 1.x** [`influx_inspect export` command](/influxdb/v1/tools/influx_inspect/#export) to export time series data as line protocol. Include the `-lponly` flag to exclude comments and the data definition language (DDL) from the output file.
    
    *We recommend exporting each DBRP combination separately to easily write data to a corresponding InfluxDB Cloud bucket.*
    
    ```sh
    # Syntax
    influx_inspect export \
      -database <database-name> \
      -retention <retention-policy-name> \
      -out <output-file-path> \
      -lponly
    
    # Example
    influx_inspect export \
      -database example-db \
      -retention example-rp \
      -out /path/to/example-db_example-rp.lp \
      -lponly
    ```
    
2. Use the **InfluxDB Cloud** [`influx write` command](/influxdb/cloud/reference/cli/influx/write/) to write the exported line protocol to InfluxDB Cloud.
    
    ```sh
    # Syntax
    influx write \
      --bucket <bucket-name> \
      --file <path-to-line-protocol-file>
    
    # Example
    influx write \
      --bucket example-db/example-rp \
      --file /path/to/example-db_example-rp.lp
    ```
    
    See [Required InfluxDB Cloud credentials](#required-influxdb-cloud-credentials)
    
3. Repeat steps 1-2 for each bucket.
    

#### InfluxDB Cloud write rate limits

Read and write requests are subject to [rate limits](/influxdb/cloud/account-management/limits/#rate-limits) associated with your InfluxDB Cloud plan. If your exported line protocol size potentially exceeds your rate limits, include the `--rate-limit` flag with `influx write` to rate limit written data.

```sh
influx write \
  --bucket example-bucket \
  --file /path/to/example-db_example-rp.lp \
  --rate-limit "5MB/5min"
```

See [Required InfluxDB Cloud credentials](#required-influxdb-cloud-credentials)

To minimize network bandwidth usage, we recommend using gzip to compress exported line protocol. However, when writing to InfluxDB Cloud, **Data In** and **Ingest batch size** rate limits track the payload size of the **uncompressed** line protocol.

## Migrate continuous queries

For information about migrating InfluxDB 1.x continuous queries to InfluxDB Cloud tasks, see [Migrate continuous queries to tasks](/influxdb/cloud/upgrade/v1-to-cloud/migrate-cqs/).

## Collaborate with other users

To collaborate with other users in your InfluxDB Cloud organization, [invite users to join your organization](/influxdb/cloud/admin/organizations/users/#invite-a-user-to-your-organization/).

#### Related

-   [Migrate continuous queries to tasks](/influxdb/cloud/upgrade/v1-to-cloud/migrate-cqs/)
