fix(v3): apply correction, remove duplicate content, add links

- restore column limit defaults to 250
- remove duplicate content from schema-design

Co-authored-by: domodwyer <domodwyer@users.noreply.github.com>
pull/5573/head
Jason Stirnaman 2024-08-21 12:04:22 -05:00
parent 10b2b1e7dd
commit 4dc2033b99
11 changed files with 56 additions and 104 deletions

View File

@ -71,7 +71,8 @@ cluster in the following ways:
{{% expand "**May improve query performance** <em style='opacity:.5;font-weight:normal;'>View more info</em>" %}}
Schemas with many measurements that contain
[focused sets of tags and fields](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#design-for-performance) can make it easier for the query engine to
[focused sets of tags and fields](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#design-for-performance)
can make it easier for the query engine to
identify what partitions contain the queried data, resulting in better
query performance.
@ -100,33 +101,32 @@ operating cost of your cluster.
### Column limit
**Default maximum number of columns**: 1000
**Default maximum number of columns**: 250
A table can contain **up to 1000 columns**.
Each row must include a time column, with the remaining columns representing
tags and fields.
As a result, a table can have one time column and up to 999 field and tag columns.
When creating or updating a database, you can configure the table column limit to be
lower than 1000, based on your requirements.
After you update the column limit for a database, the limit applies to newly
created tables; it doesn't override the column limit for existing tables.
As a result, a table can have one time column and up to 249 field and tag columns.
If you attempt to write to a table and exceed the column limit, the write
request fails and InfluxDB returns an error.
When creating or updating a database, you can configure the table column limit to be
lower than the default or up to 1000, based on your requirements.
After you update the column limit for a database, the limit applies to newly
created tables; it doesn't override the column limit for existing tables.
Increasing your column limit affects your {{% product-name omit=" Clustered" %}}
cluster in the following ways:
{{< expand-wrapper >}}
{{% expand "May adversely affect system performance" %}}
InfluxData identified 1000 columns as the safe limit for maintaining system
InfluxData identified 250 columns as the safe limit for maintaining system
performance and stability.
Exceeding this threshold can result in
[wide schemas](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#avoid-wide-schemas),
which can negatively impact performance and resource use,
depending on the shape of your schema and data types in the schema.
depending on your queries, the shape of your schema, and data types in the schema.
{{% /expand %}}
{{< /expand-wrapper >}}

View File

@ -102,9 +102,9 @@ influxctl database create [flags] <DATABASE_NAME>
| 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 1000, `0` uses default) |
| | `--retention-period` | [Database retention period ](/influxdb/cloud-dedicated/admin/databases/#retention-periods)(default is `0s`, infinite) |
| | `--max-tables` | [Maximum tables per database](/influxdb/cloud-dedicated/admin/databases/#table-limit) (default is 500, `0` uses default) |
| | `--max-columns` | [Maximum columns per table](/influxdb/cloud-dedicated/admin/databases/#column-limit) (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`) |

View File

@ -14,6 +14,8 @@ table (measurement), or column limits in InfluxDB.
## Usage
<!-- pytest.mark.skip -->
```sh
influxctl database update [flags] <DATABASE_NAME>
```
@ -28,9 +30,9 @@ influxctl database update [flags] <DATABASE_NAME>
| Flag | | Description |
| :--- | :------------------- | :----------------------------------------------------------- |
| | `--retention-period` | Database retention period (default is 0s or 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) |
| | `--retention-period` | [Database retention period ](/influxdb/cloud-dedicated/admin/databases/#retention-periods)(default is `0s` or infinite) |
| | `--max-tables` | [Maximum tables per database](/influxdb/cloud-dedicated/admin/databases/#table-limit) (default is 500, 0 uses default) |
| | `--max-columns` | [Maximum columns per table](/influxdb/cloud-dedicated/admin/databases/#column-limit) (default is 250, 0 uses default) |
| `-h` | `--help` | Output command help |
{{% caption %}}

View File

@ -134,11 +134,12 @@ As a result, a table can have the following:
If you attempt to write to a table and exceed the column limit, then the write
request fails and InfluxDB returns an error.
InfluxData identified 1000 columns as the safe limit for maintaining system
InfluxData identified the default maximum as the safe limit for maintaining system
performance and stability.
Exceeding this threshold can result in
[wide schemas](#avoid-wide-schemas), which can negatively impact performance
and resource use, depending on the shape and data types in your schema.
and resource use, [depending on your queries](#avoid-non-specific-queries),
the shape of your schema, and data types in the schema.
---
@ -162,32 +163,13 @@ Wide schemas can lead to the following issues:
- Increased resource usage for persisting and compacting data during ingestion.
- Reduced sorting performance due to complex primary keys with [too many tags](#avoid-too-many-tags).
- Reduced query performance when [using non-specific queries](#avoid-non-specific-queries).
- Reduced query performance when
[selecting too many columns](/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/optimize-queries/#select-only-columns-you-need).
To prevent wide schema issues, limit the number of tags and fields stored in a table.
If you need to store more than the [maximum number of columns](/influxdb/cloud-dedicated/admin/databases/),
consider segmenting your fields into separate tables.
#### Avoid non-specific queries
Because InfluxDB v3 is a columnar database, it only processes the columns
selected in a query, which can mitigate the query performance impact of wide schemas.
If you [query only the data that you need](/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/optimize-queries/#strategies-for-improving-query-performance),
then a wide schema might not impact query performance.
However, a non-specific query that retrieves a large number of columns from a
wide schema
is slower and less efficient than a more targeted query--for example, consider
the following queries:
- `SELECT time,a,b,c`
- `SELECT *`
If the table contains 10 columns, the difference in performance between the
two queries is minimal.
In a table with over 1000 columns, the `SELECT *` query is slower and
less efficient.
#### Avoid too many tags
In InfluxDB, the primary key for a row is the combination of the point's

View File

@ -59,6 +59,7 @@ Each measurement is represented by a table.
Time, fields, and tags are each represented by a column.
**Maximum number of tables**: 500
**Maximum number of columns**: 200
The following articles provide information about managing buckets:

View File

@ -22,6 +22,7 @@ Learn how to use observability tools to analyze query execution and view metrics
- [Why is my query slow?](#why-is-my-query-slow)
- [Strategies for improving query performance](#strategies-for-improving-query-performance)
- [Query only the data you need](#query-only-the-data-you-need)
- [Analyze and troubleshoot queries](#analyze-and-troubleshoot-queries)
## Why is my query slow?

View File

@ -135,32 +135,13 @@ Wide schemas can lead to the following issues:
- Increased resource usage for persisting and compacting data during ingestion.
- Reduced sorting performance due to complex primary keys with [too many tags](#avoid-too-many-tags).
- Reduced query performance when [using non-specific queries](#avoid-non-specific-queries).
- Reduced query performance when
[selecting too many columns](/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/optimize-queries/#select-only-columns-you-need).
To prevent wide schema issues, limit the number of tags and fields stored in a measurement.
If you need to store more than the [maximum number of columns](/influxdb/cloud-serverless/admin/buckets/),
consider segmenting your fields into separate measurements.
#### Avoid non-specific queries
Because InfluxDB v3 is a columnar database, it only processes the columns
selected in a query, which can mitigate the query performance impact of wide schemas.
If you [query only the data that you need](/influxdb/cloud-serverless/query-data/troubleshoot-and-optimize/optimize-queries/#strategies-for-improving-query-performance),
then a wide schema might not impact query performance.
However, a non-specific query that retrieves a large number of columns from a
wide schema
is slower and less efficient than a more targeted query--for example, consider
the following queries:
- `SELECT time,a,b,c`
- `SELECT *`
If the measurement contains 10 columns, the difference in performance between the
two queries is minimal.
In a measurement with over 1000 columns, the `SELECT *` query is slower and
less efficient.
#### Avoid too many tags
In InfluxDB, the primary key for a row is the combination of the point's timestamp and _tag set_ - the collection of [tag keys](/influxdb/cloud-serverless/reference/glossary/#tag-key) and [tag values](/influxdb/cloud-serverless/reference/glossary/#tag-value) on the point.

View File

@ -27,7 +27,8 @@ Each InfluxDB database has a [retention period](#retention-periods).
{{% note %}}
**If coming from InfluxDB v1**, the concepts of databases and retention policies
have been combined into a single concept--database. Retention policies are no
longer part of the InfluxDB data model. However, {{% product-name %}} does
longer part of the InfluxDB data model.
However, {{% product-name %}} does
support InfluxQL, which requires databases and retention policies.
See [InfluxQL DBRP naming convention](/influxdb/clustered/admin/databases/create/#influxql-dbrp-naming-convention).
@ -70,7 +71,8 @@ cluster in the following ways:
{{% expand "**May improve query performance** <em style='opacity:.5;font-weight:normal;'>View more info</em>" %}}
Schemas with many measurements that contain
[focused sets of tags and fields](/influxdb/clustered/write-data/best-practices/schema-design/#design-for-performance) can make it easier for the query engine to
[focused sets of tags and fields](/influxdb/clustered/write-data/best-practices/schema-design/#design-for-performance)
can make it easier for the query engine to
identify what partitions contain the queried data, resulting in better
query performance.
@ -82,7 +84,7 @@ data by measurement and time range and stores each partition as a Parquet
file in your cluster's object store. By increasing the number of measurements
(tables) you can store in your database, you also increase the potential for
more `PUT` requests into your object store as InfluxDB creates more partitions.
Each `PUT` request incurs a monetary cost and will increase the operating cost of
Each `PUT` request incurs a monetary cost and increases the operating cost of
your cluster.
{{% /expand %}}
@ -99,33 +101,32 @@ operating cost of your cluster.
### Column limit
**Default maximum number of columns**: 1000
**Default maximum number of columns**: 250
A table can contain **up to 1000 columns**.
Each row must include a time column, with the remaining columns representing
tags and fields.
As a result, a table can have one time column and up to 999 field and tag columns.
When creating or updating a database, you can configure the column limit to be
lower than 1000, based on your requirements.
After you update the column limit for a database, the limit applies to newly
created tables; doesn't override the column limit for existing tables.
As a result, a table can have one time column and up to 249 field and tag columns.
If you attempt to write to a table and exceed the column limit, the write
request fails and InfluxDB returns an error.
When creating or updating a database, you can configure the table column limit to be
lower than the default or up to 1000, based on your requirements.
After you update the column limit for a database, the limit applies to newly
created tables; it doesn't override the column limit for existing tables.
Increasing your column limit affects your {{% product-name omit=" Clustered" %}}
cluster in the following ways:
{{< expand-wrapper >}}
{{% expand "May adversely affect system performance" %}}
InfluxData identified 1000 columns as the safe limit for maintaining system
InfluxData identified 250 columns as the safe limit for maintaining system
performance and stability.
Exceeding this threshold can result in
[wide schemas](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#avoid-wide-schemas),
[wide schemas](/influxdb/clustered/write-data/best-practices/schema-design/#avoid-wide-schemas),
which can negatively impact performance and resource use,
depending on the shape of your schema and data types in the schema.
depending on your queries, the shape of your schema, and data types in the schema.
{{% /expand %}}
{{< /expand-wrapper >}}

View File

@ -101,9 +101,9 @@ influxctl database create [flags] <DATABASE_NAME>
| 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 1000, `0` uses default) |
| | `--retention-period` | [Database retention period ](/influxdb/clustered/admin/databases/#retention-periods)(default is `0s`, infinite) |
| | `--max-tables` | [Maximum tables per database](/influxdb/clustered/admin/databases/#table-limit) (default is 500, `0` uses default) |
| | `--max-columns` | [Maximum columns per table](/influxdb/clustered/admin/databases/#column-limit) (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`) |

View File

@ -14,6 +14,8 @@ table (measurement), or column limits in InfluxDB.
## Usage
<!-- pytest.mark.skip -->
```sh
influxctl database update [flags] <DATABASE_NAME>
```
@ -28,9 +30,9 @@ influxctl database update [flags] <DATABASE_NAME>
| Flag | | Description |
| :--- | :------------------- | :----------------------------------------------------------- |
| | `--retention-period` | Database retention period (default is 0s or 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) |
| | `--retention-period` | [Database retention period ](/influxdb/clustered/admin/databases/#retention-periods)(default is `0s` or infinite) |
| | `--max-tables` | [Maximum tables per database](/influxdb/clustered/admin/databases/#table-limit) (default is 500, `0` uses default) |
| | `--max-columns` | [Maximum columns per table](/influxdb/clustered/admin/databases/#column-limit) (default is 250, `0` uses default) |
| `-h` | `--help` | Output command help |
{{% caption %}}

View File

@ -134,11 +134,12 @@ As a result, a table can have the following:
If you attempt to write to a table and exceed the column limit, then the write
request fails and InfluxDB returns an error.
InfluxData identified 1000 columns as the safe limit for maintaining system
InfluxData identified the default maximum as the safe limit for maintaining system
performance and stability.
Exceeding this threshold can result in
[wide schemas](#avoid-wide-schemas), which can negatively impact performance
and resource use, depending on the shape and data types in your schema.
and resource use, [depending on your queries](#avoid-non-specific-queries),
the shape of your schema, and data types in the schema.
---
@ -162,32 +163,13 @@ Wide schemas can lead to the following issues:
- Increased resource usage for persisting and compacting data during ingestion.
- Reduced sorting performance due to complex primary keys with [too many tags](#avoid-too-many-tags).
- Reduced query performance when [using non-specific queries](#avoid-non-specific-queries).
- Reduced query performance when
[selecting too many columns](/influxdb/clustered/query-data/troubleshoot-and-optimize/optimize-queries/#select-only-columns-you-need).
To prevent wide schema issues, limit the number of tags and fields stored in a table.
If you need to store more than the [maximum number of columns](/influxdb/clustered/admin/databases/),
consider segmenting your fields into separate tables.
#### Avoid non-specific queries
Because InfluxDB v3 is a columnar database, it only processes the columns
selected in a query, which can mitigate the query performance impact of wide schemas.
If you [query only the data that you need](/influxdb/clustered/query-data/troubleshoot-and-optimize/optimize-queries/#strategies-for-improving-query-performance),
then a wide schema might not impact query performance.
However, a non-specific query that retrieves a large number of columns from a
wide schema
is slower and less efficient than a more targeted query--for example, consider
the following queries:
- `SELECT time,a,b,c`
- `SELECT *`
If the table contains 10 columns, the difference in performance between the
two queries is minimal.
In a table with over 1000 columns, the `SELECT *` query is slower and
less efficient.
#### Avoid too many tags
In InfluxDB, the primary key for a row is the combination of the point's