docs-v2/content/influxdb/v2.2/reference/api/influxdb-1x/dbrp.md

86 lines
3.8 KiB
Markdown

---
title: Database and retention policy mapping
description: >
The database and retention policy (DBRP) mapping service maps InfluxDB 1.x
database and retention policy combinations to InfluxDB Cloud and InfluxDB OSS 2.x buckets.
menu:
influxdb_2_2_ref:
name: DBRP mapping
parent: 1.x compatibility
weight: 302
related:
- /influxdb/v2.2/reference/api/influxdb-1x/query
- /influxdb/v2.2/reference/api/influxdb-1x/write
- /influxdb/v2.2/api/#tag/DBRPs, InfluxDB v2 API /dbrps endpoint
- /influxdb/v2.2/query-data/influxql/
---
The InfluxDB 1.x data model includes [databases](/influxdb/v1.8/concepts/glossary/#database)
and [retention policies](/influxdb/v1.8/concepts/glossary/#retention-policy-rp).
InfluxDB {{% cloud-only %}}Cloud{{% /cloud-only %}}{{% oss-only %}}OSS 2.x{{% /oss-only %}}
replaces databases and retention policies with [buckets](/influxdb/v2.2/reference/glossary/#bucket).
To support InfluxDB 1.x query and write patterns in InfluxDB
{{% cloud-only %}}Cloud{{% /cloud-only %}}{{% oss-only %}}OSS 2.x{{% /oss-only %}},
databases and retention policies are mapped to buckets using the
**database and retention policy (DBRP) mapping service**.
The DBRP mapping service uses the **database** and **retention policy** specified in
[1.x compatibility API](/influxdb/v2.2/reference/api/influxdb-1x/) requests to route operations to a bucket.
{{% note %}}
To query data in InfluxQL that was written using the `api/v2/write` API,
you must **manually create a DBRP mapping** to map a bucket to a database and retention policy.
For more information, see [Map unmapped buckets](/influxdb/v2.2/query-data/influxql/#map-unmapped-buckets).
{{% /note %}}
### Default retention policies
A database can have multiple retention policies with one set as default.
If no retention policy is specified in a query or write request, InfluxDB uses
the default retention policy for the specified database.
### When writing data
When writing data using the
[`/write` compatibility endpoint](/influxdb/v2.2/reference/api/influxdb-1x/write/),
the DBRP mapping service checks for a bucket mapped to the database and retention policy:
{{% oss-only %}}
- If a mapped bucket is found, data is written to the bucket.
- If the bucket is unmapped, InfluxDB returns an error.
See how to [Map unmapped buckets](/influxdb/v2.2/query-data/influxql/#map-unmapped-buckets).
{{% /oss-only %}}
{{% cloud-only %}}
- If a mapped bucket is found, data is written to the bucket.
- If an unmapped bucket with a name matching:
- **database/retention policy** exists, a DBRP mapping is added to the bucket,
and data is written to the bucket.
- **database** exists (without a specified retention policy), the default
database retention policy is used, a DBRP mapping is added to the bucket,
and data is written to the bucket.
{{% /cloud-only %}}
### When querying data
When querying data from InfluxDB {{< current-version >}}
using the [`/query` compatibility endpoint](/influxdb/v2.2/reference/api/influxdb-1x/query/),
the DBRP mapping service checks for the specified database and retention policy
(if no retention policy is specified, the database's default retention policy is used):
- If a mapped bucket exists, data is queried from the mapped bucket.
- If no mapped bucket exists, InfluxDB returns an error. See how to [Map unmapped buckets](/influxdb/v2.2/query-data/influxql/#map-unmapped-buckets).
_For more information on the DBRP mapping API, see the [`/api/v2/dbrps` endpoint documentation](/influxdb/v2.2/api/#tag/DBRPs)._
{{% note %}}
#### A DBRP combination can only be mapped to a single bucket
Each unique DBRP combination can only be mapped to a single bucket.
If you map a DBRP combination that is already mapped to another bucket,
it will overwrite the existing DBRP mapping.
{{% /note %}}