Skip to content

Commit 7c9ae0f

Browse files
authored
Merge pull request #5573 from influxdata/5568-clustered-docs-need-to-be-updated-claim-hard-limit-of-250-columns-per-database
5568 clustered docs need to be updated claim hard limit of 250 columns per database
2 parents 78b9925 + 4a00926 commit 7c9ae0f

File tree

19 files changed

+708
-511
lines changed

19 files changed

+708
-511
lines changed

.ci/vale/styles/Google/Units.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ nonword: true
55
level: error
66
tokens:
77
- \b\d+(?:B|kB|MB|GB|TB)
8-
- \b\d+(?:ns|ms|s|min|h|d)
8+
# Ignore duration literals in code blocks.
9+
- \b(?!\`)\d+(?:ns|ms|s|min|h|d)

content/influxdb/cloud-dedicated/admin/databases/_index.md

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ menu:
1111
parent: Administer InfluxDB Cloud
1212
weight: 101
1313
influxdb/cloud-dedicated/tags: [databases]
14+
related:
15+
- /influxdb/cloud-dedicated/write-data/best-practices/schema-design/
16+
- /influxdb/cloud-dedicated/reference/cli/influxctl/
17+
alt_links:
18+
cloud: /influxdb/cloud/admin/buckets/
19+
cloud_serverless: /influxdb/cloud-serverless/admin/buckets/
20+
clustered: /influxdb/cloud-dedicated/admin/databases/
21+
oss: /influxdb/v2/admin/buckets/
1422
---
1523

1624
An InfluxDB database is a named location where time series data is stored.
@@ -19,11 +27,13 @@ Each InfluxDB database has a [retention period](#retention-periods).
1927
{{% note %}}
2028
**If coming from InfluxDB v1**, the concepts of databases and retention policies
2129
have been combined into a single concept--database. Retention policies are no
22-
longer part of the InfluxDB data model. However, InfluxDB Cloud Dedicated does
30+
longer part of the InfluxDB data model.
31+
However, {{% product-name %}} does
2332
support InfluxQL, which requires databases and retention policies.
2433
See [InfluxQL DBRP naming convention](/influxdb/cloud-dedicated/admin/databases/create/#influxql-dbrp-naming-convention).
2534

26-
**If coming from InfluxDB v2 or InfluxDB Cloud**, _database_ and _bucket_ are synonymous.
35+
**If coming from InfluxDB v2, InfluxDB Cloud (TSM), or InfluxDB Cloud Serverless**,
36+
_database_ and _bucket_ are synonymous.
2737
{{% /note %}}
2838

2939
## Retention periods
@@ -40,9 +50,10 @@ never be removed by the retention enforcement service.
4050

4151
## Table and column limits
4252

43-
In {{< product-name >}}, table (measurement) and column limits can be
44-
customized when [creating](#create-a-database) or
45-
[updating a database](#update-a-database).
53+
You can customize [table (measurement) limits](#table-limit) and
54+
[table column limits](#column-limit) when you
55+
[create](#create-a-database) or
56+
[update a database](#update-a-database) in {{< product-name >}}.
4657

4758
### Table limit
4859

@@ -60,7 +71,8 @@ cluster in the following ways:
6071
{{% expand "**May improve query performance** <em style='opacity:.5;font-weight:normal;'>View more info</em>" %}}
6172

6273
Schemas with many measurements that contain
63-
[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
74+
[focused sets of tags and fields](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#design-for-performance)
75+
can make it easier for the query engine to
6476
identify what partitions contain the queried data, resulting in better
6577
query performance.
6678

@@ -72,7 +84,7 @@ data by measurement and time range and stores each partition as a Parquet
7284
file in your cluster's object store. By increasing the number of measurements
7385
(tables) you can store in your database, you also increase the potential for
7486
more `PUT` requests into your object store as InfluxDB creates more partitions.
75-
Each `PUT` request incurs a monetary cost and will increase the operating cost of
87+
Each `PUT` request incurs a monetary cost and increases the operating cost of
7688
your cluster.
7789

7890
{{% /expand %}}
@@ -91,20 +103,33 @@ operating cost of your cluster.
91103

92104
**Default maximum number of columns**: 250
93105

94-
Time, fields, and tags are each represented by a column in a table.
106+
**Configurable maximum number of columns**: 1000
107+
108+
Each row must include a time column, with the remaining columns representing
109+
tags and fields.
110+
As a result, a table with 250 columns can have one time column and up to
111+
249 field and tag columns.
112+
113+
If you attempt to write to a table and exceed the column limit, the write
114+
request fails and InfluxDB returns an error.
115+
116+
If you update the column limit for a database, the limit applies to newly
117+
created tables; doesn't override the column limit for existing tables.
118+
95119
Increasing your column limit affects your {{% product-name omit=" Clustered" %}}
96120
cluster in the following ways:
97121

98122
{{< expand-wrapper >}}
99-
{{% expand "May adversely affect query performance" %}}
100-
101-
At query time, the InfluxDB query engine identifies what table contains the queried
102-
data and then evaluates each row in the table to match the conditions of the query.
103-
The more columns that are in each row, the longer it takes to evaluate each row.
104-
105-
Through performance testing, InfluxData has identified 250 columns as the
106-
threshold where query performance may be affected
107-
(depending on the shape of and data types in your schema).
123+
{{% expand "May adversely affect system performance" %}}
124+
125+
When creating or updating a database, you can configure the table column limit to be
126+
lower than the default or up to 1000, based on your requirements.
127+
InfluxData identified 250 columns as the safe limit for maintaining system
128+
performance and stability.
129+
Exceeding this threshold can result in
130+
[wide schemas](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#avoid-wide-schemas),
131+
which can negatively impact performance and resource use,
132+
depending on your queries, the shape of your schema, and data types in the schema.
108133

109134
{{% /expand %}}
110135
{{< /expand-wrapper >}}

content/influxdb/cloud-dedicated/admin/databases/update.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ to update a database in your {{< product-name omit=" Clustered" >}} cluster.
5757

5858
- Database name
5959
- _Optional_: Database [retention period](/influxdb/cloud-dedicated/admin/databases/#retention-periods).
60-
Default is infinite (`0`).
61-
- _Optional_: Database table (measurement) limit. Default is `500`.
62-
- _Optional_: Database column limit. Default is `250`.
60+
Default is infinite (`0`).
61+
- _Optional_: Database [table (measurement) limit](/influxdb/cloud-dedicated/admin/databases/#table-limit).
62+
Default is `500`.
63+
- _Optional_: Database [column limit](/influxdb/cloud-dedicated/admin/databases/#column-limit).
64+
Default is `250`.
6365

6466
{{% code-placeholders "DATABASE_NAME|30d|500|200" %}}
6567

content/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/optimize-queries.md

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,31 @@ related:
1515
- /influxdb/cloud-dedicated/query-data/execute-queries/analyze-query-plan/
1616
aliases:
1717
- /influxdb/cloud-dedicated/query-data/execute-queries/optimize-queries/
18+
- /influxdb/cloud-dedicated/query-data/execute-queries/analyze-query-plan/
1819
---
1920

2021
Optimize SQL and InfluxQL queries to improve performance and reduce their memory and compute (CPU) requirements.
2122
Learn how to use observability tools to analyze query execution and view metrics.
2223

2324
- [Why is my query slow?](#why-is-my-query-slow)
2425
- [Strategies for improving query performance](#strategies-for-improving-query-performance)
26+
- [Query only the data you need](#query-only-the-data-you-need)
2527
- [Analyze and troubleshoot queries](#analyze-and-troubleshoot-queries)
2628

2729
## Why is my query slow?
2830

2931
Query performance depends on time range and complexity.
3032
If a query is slower than you expect, it might be due to the following reasons:
3133

32-
- It queries data from a large time range.
34+
- It queries data from a large time range.
3335
- It includes intensive operations, such as querying many string values or `ORDER BY` sorting or re-sorting large amounts of data.
3436

3537
## Strategies for improving query performance
3638

3739
The following design strategies generally improve query performance and resource use:
3840

3941
- Follow [schema design best practices](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/) to make querying easier and more performant.
40-
- Query only the data you need--for example, include a [`WHERE` clause](/influxdb/cloud-dedicated/reference/sql/where/) that filters data by a time range.
41-
InfluxDB v3 stores data in a Parquet file for each measurement and day, and retrieves files from the Object store to answer a query.
42-
The smaller the time range in your query, the fewer files InfluxDB needs to retrieve from the Object store.
42+
- [Query only the data you need](#query-only-the-data-you-need).
4343
- [Downsample data](/influxdb/cloud-dedicated/process-data/downsample/) to reduce the amount of data you need to query.
4444

4545
Some bottlenecks may be out of your control and are the result of a suboptimal execution plan, such as:
@@ -52,9 +52,41 @@ Some bottlenecks may be out of your control and are the result of a suboptimal e
5252
{{% note %}}
5353
#### Analyze query plans to view metrics and recognize bottlenecks
5454

55-
To view runtime metrics for a query, such as the number of files scanned, use the [`EXPLAIN ANALYZE` keywords](/influxdb/cloud-dedicated/reference/sql/explain/#explain-analyze) and learn how to [analyze a query plan](/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/analyze-query-plan/).
55+
To view runtime metrics for a query, such as the number of files scanned, use
56+
the [`EXPLAIN ANALYZE` keywords](/influxdb/cloud-dedicated/reference/sql/explain/#explain-analyze)
57+
and learn how to [analyze a query plan](/influxdb/cloud-dedicated/query-data/troubleshoot-and-optimize/analyze-query-plan/).
5658
{{% /note %}}
5759

60+
### Query only the data you need
61+
62+
#### Include a WHERE clause
63+
64+
InfluxDB v3 stores data in a Parquet file for each partition.
65+
By default, {{< product-name >}} partitions tables by day, but you can also
66+
[custom-partition your data](/influxdb/cloud-dedicated/admin/custom-partitions/).
67+
At query time, InfluxDB retrieves files from the Object store to answer a query.
68+
To reduce the number of files that a query needs to retrieve from the Object store,
69+
include a [`WHERE` clause](/influxdb/cloud-dedicated/reference/sql/where/) that
70+
filters data by a time range or by specific tag values.
71+
72+
#### SELECT only columns you need
73+
74+
Because InfluxDB v3 is a columnar database, it only processes the columns
75+
selected in a query, which can mitigate the query performance impact of
76+
[wide schemas](/influxdb/cloud-dedicated/write-data/best-practices/schema-design/#avoid-wide-schemas).
77+
78+
However, a non-specific query that retrieves a large number of columns from a
79+
wide schema can be slower and less efficient than a more targeted
80+
query--for example, consider the following queries:
81+
82+
- `SELECT time,a,b,c`
83+
- `SELECT *`
84+
85+
If the table contains 10 columns, the difference in performance between the
86+
two queries is minimal.
87+
In a table with over 1000 columns, the `SELECT *` query is slower and
88+
less efficient.
89+
5890
## Analyze and troubleshoot queries
5991

6092
Use the following tools to analyze and troubleshoot queries and find performance bottlenecks:

content/influxdb/cloud-dedicated/reference/cli/influxctl/database/create.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ influxctl database create [flags] <DATABASE_NAME>
102102

103103
| Flag | | Description |
104104
| :--- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- |
105-
| | `--retention-period` | Database retention period (default is `0s`, infinite) |
106-
| | `--max-tables` | Maximum tables per database (default is 500, `0` uses default) |
107-
| | `--max-columns` | Maximum columns per table (default is 250, `0` uses default) |
105+
| | `--retention-period` | [Database retention period ](/influxdb/cloud-dedicated/admin/databases/#retention-periods)(default is `0s`, infinite) |
106+
| | `--max-tables` | [Maximum tables per database](/influxdb/cloud-dedicated/admin/databases/#table-limit) (default is 500, `0` uses default) |
107+
| | `--max-columns` | [Maximum columns per table](/influxdb/cloud-dedicated/admin/databases/#column-limit) (default is 250, `0` uses default) |
108108
| | `--template-tag` | Tag to add to partition template (can include multiple of this flag) |
109109
| | `--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) |
110110
| | `--template-timeformat` | Timestamp format for partition template (default is `%Y-%m-%d`) |

content/influxdb/cloud-dedicated/reference/cli/influxctl/database/update.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ table (measurement), or column limits in InfluxDB.
1414

1515
## Usage
1616

17+
<!-- pytest.mark.skip -->
18+
1719
```sh
1820
influxctl database update [flags] <DATABASE_NAME>
1921
```
@@ -28,9 +30,9 @@ influxctl database update [flags] <DATABASE_NAME>
2830

2931
| Flag | | Description |
3032
| :--- | :------------------- | :----------------------------------------------------------- |
31-
| | `--retention-period` | Database retention period (default is 0s or infinite) |
32-
| | `--max-tables` | Maximum tables per database (default is 500, 0 uses default) |
33-
| | `--max-columns` | Maximum columns per table (default is 250, 0 uses default) |
33+
| | `--retention-period` | [Database retention period ](/influxdb/cloud-dedicated/admin/databases/#retention-periods)(default is `0s` or infinite) |
34+
| | `--max-tables` | [Maximum tables per database](/influxdb/cloud-dedicated/admin/databases/#table-limit) (default is 500, 0 uses default) |
35+
| | `--max-columns` | [Maximum columns per table](/influxdb/cloud-dedicated/admin/databases/#column-limit) (default is 250, 0 uses default) |
3436
| `-h` | `--help` | Output command help |
3537

3638
{{% caption %}}

0 commit comments

Comments
 (0)