Merge branch 'master' into plugin_error_handling
commit
a1b1705069
|
@ -355,9 +355,9 @@ To install {{% product-name %}} on Linux, do one of the following:
|
|||
echo "943666881a1b8d9b849b74caebf02d3465d6beb716510d86a39f6c8e8dac7515 influxdata-archive.key" \
|
||||
| sha256sum --check - && cat influxdata-archive.key \
|
||||
| gpg --dearmor \
|
||||
| tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg > /dev/null \
|
||||
| sudo tee /etc/apt/trusted.gpg.d/influxdata-archive.gpg > /dev/null \
|
||||
&& echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' \
|
||||
| tee /etc/apt/sources.list.d/influxdata.list
|
||||
| sudo tee /etc/apt/sources.list.d/influxdata.list
|
||||
# Install influxdb
|
||||
sudo apt-get update && sudo apt-get install influxdb2
|
||||
```
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL binary string functions
|
||||
list_title: Binary string functions
|
||||
description: >
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
menu:
|
||||
influxdb3_cloud_dedicated:
|
||||
name: Binary string
|
||||
parent: sql-functions
|
||||
weight: 308
|
||||
|
||||
source: /content/shared/sql-reference/functions/binary-string.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content of this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/binary-string.md
|
||||
-->
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL hashing functions
|
||||
list_title: Hashing functions
|
||||
description: >
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
menu:
|
||||
influxdb3_cloud_dedicated:
|
||||
name: Hashing
|
||||
parent: sql-functions
|
||||
weight: 309
|
||||
|
||||
source: /shared/sql-reference/functions/hashing.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content for this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/hashing.md
|
||||
-->
|
|
@ -10,19 +10,21 @@ menu:
|
|||
parent: Operators
|
||||
weight: 302
|
||||
list_code_example: |
|
||||
| Operator | Meaning | Example |
|
||||
| :------: | :------------------------------------------------------- | :---------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
| Operator | Meaning | Example |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
|
||||
source: /content/shared/sql-reference/operators/comparison.md
|
||||
---
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL binary string functions
|
||||
list_title: Binary string functions
|
||||
description: >
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
menu:
|
||||
influxdb3_cloud_serverless:
|
||||
name: Binary string
|
||||
parent: sql-functions
|
||||
weight: 308
|
||||
|
||||
source: /content/shared/sql-reference/functions/binary-string.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content of this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/binary-string.md
|
||||
-->
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL hashing functions
|
||||
list_title: Hashing functions
|
||||
description: >
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
menu:
|
||||
influxdb3_cloud_serverless:
|
||||
name: Hashing
|
||||
parent: sql-functions
|
||||
weight: 309
|
||||
|
||||
source: /shared/sql-reference/functions/hashing.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content for this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/hashing.md
|
||||
-->
|
|
@ -10,19 +10,21 @@ menu:
|
|||
parent: Operators
|
||||
weight: 302
|
||||
list_code_example: |
|
||||
| Operator | Meaning | Example |
|
||||
| :------: | :------------------------------------------------------- | :---------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
| Operator | Meaning | Example |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
|
||||
source: /content/shared/sql-reference/operators/comparison.md
|
||||
---
|
||||
|
|
|
@ -37,14 +37,22 @@ installing InfluxDB Clustered.
|
|||
|
||||
## Setup, configure, and deploy InfluxDB Clustered
|
||||
|
||||
> [!Note]
|
||||
> #### Deploying in air-gapped environments
|
||||
>
|
||||
> To deploy InfluxDB Clustered in an air-gapped environment (without internet access),
|
||||
> use one of the following approaches:
|
||||
>
|
||||
> - **Recommended**: Directly use `kubit local apply`
|
||||
> - Helm (includes the kubit operator)
|
||||
> - Directly use the kubit operator
|
||||
>
|
||||
> For more information, see [Choose the right deployment tool for your environment](/influxdb3/clustered/install/set-up-cluster/configure-cluster/#choose-the-right-deployment-tool-for-your-environment)
|
||||
|
||||
{{< children type="ordered-list" >}}
|
||||
|
||||
|
||||
<!-- TODO: ADD CLUSTER ARCHITECTURE OVERVIEW -->
|
||||
|
||||
<!--
|
||||
|
||||
-------- TODO: ALL THIS INFORMATION NEEDS TO LAND IN THE ADMIN SECTION ---------
|
||||
<!---------- TODO: ALL THIS INFORMATION NEEDS TO LAND IN THE ADMIN SECTION ---------
|
||||
|
||||
### Updating your InfluxDB Cluster
|
||||
|
||||
|
|
|
@ -20,9 +20,64 @@ The AppInstance CRD is defined in a YAML file (use the `example-customer.yml`
|
|||
provided by InfluxData as a template).
|
||||
|
||||
We recommend editing the `AppInstance` resource directly as the primary method
|
||||
for configuring and managing your InfluxDB cluster. If you are required to use
|
||||
[Helm](https://helm.sh/), there is a InfluxDB Clustered Helm chart available
|
||||
for configuring and managing your InfluxDB cluster.
|
||||
After you have edited your `AppInstance`, use the `kubit` CLI or `kubectl` [deployment tool](/influxdb3/clustered/install/set-up-cluster/configure-cluster/#choose-the-right-deployment-tool-for-your-environment), depending on your requirements.
|
||||
|
||||
If you are required to use
|
||||
[Helm](https://helm.sh/), there is an InfluxDB Clustered Helm chart available
|
||||
that acts as a wrapper for the `AppInstance` resource and lets you use Helm to
|
||||
manage configuration changes in your InfluxDB cluster.
|
||||
|
||||
{{% expand-wrapper %}}
|
||||
{{% expand "Choose the right deployment tool for your environment" %}}
|
||||
|
||||
| Deployment Tool | Best For | Requirements | Considerations |
|
||||
|----------------|----------|--------------|----------------|
|
||||
| [**kubectl**](#when-to-use-kubectl) | Standard deployments | Cluster-wide permissions | Simplest option if you have required permissions |
|
||||
| [**kubit CLI**](#when-to-use-kubit-cli) | Limited permission environments or air-gapped | Local workstation access | Better for environments with permission restrictions |
|
||||
| [**Helm**](#when-to-use-helm) | Teams standardized on Helm | Helm installation (includes kubit operator) | Provides consistent deployment with other Helm-managed applications |
|
||||
|
||||
### When to use kubectl
|
||||
|
||||
Use the `kubectl` approach when:
|
||||
|
||||
- You have cluster-wide permissions to install CRDs
|
||||
- You prefer the simplest deployment method
|
||||
|
||||
> [!important]
|
||||
>
|
||||
> #### kubectl requires cluster-wide permissions
|
||||
>
|
||||
> InfluxDB Clustered uses an `AppInstance` Kubernetes custom resource (CR) to
|
||||
> configure and deploy your InfluxDB Cluster. Installing a `CustomResourceDefinition`
|
||||
> (CRD) requires cluster-wide permissions, so if you don't have these permissions,
|
||||
> `kubectl` may fail.
|
||||
|
||||
### When to use kubit CLI
|
||||
|
||||
Use the `kubit local apply` CLI approach when:
|
||||
|
||||
- You don't have permissions to install CRDs
|
||||
- You don't have permissions to install operators in the `kubit` namespace
|
||||
- You don't have permissions to create cluster-wide RBAC
|
||||
- You're working in an air-gapped environment
|
||||
- You want to preview generated YAML before applying
|
||||
- You don't want to run the operator in your cluster
|
||||
|
||||
The `kubit local apply` method is specifically designed to avoid having to install the operator in air-gapped environments, making it easier to implement. This approach processes the AppInstance resource on your local machine and then applies the resulting Kubernetes resources directly to the cluster without requiring the kubit operator to be running in the cluster.
|
||||
|
||||
### When to use Helm
|
||||
|
||||
Use the `Helm` approach when:
|
||||
|
||||
- Your team is standardized on Helm for Kubernetes deployments
|
||||
- You prefer consistent deployment methods across applications
|
||||
- You want simplified management of the full stack
|
||||
- You need better support for upgrades and rollbacks
|
||||
|
||||
The InfluxDB Clustered Helm chart includes the [kubecfg kubit operator](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#kubecfg-kubit-operator).
|
||||
|
||||
{{% /expand %}}
|
||||
{{% /expand-wrapper %}}
|
||||
|
||||
{{< children >}}
|
||||
|
|
|
@ -128,7 +128,7 @@ In both scenarios, you need a valid _pull secret_.
|
|||
|
||||
{{< tabs-wrapper >}}
|
||||
{{% tabs %}}
|
||||
[Public registry (non-air-gapped)](#)
|
||||
[Public registry](#)
|
||||
[Private registry (air-gapped)](#)
|
||||
{{% /tabs %}}
|
||||
|
||||
|
@ -136,7 +136,7 @@ In both scenarios, you need a valid _pull secret_.
|
|||
|
||||
<!--------------------------- BEGIN Public Registry --------------------------->
|
||||
|
||||
#### Public registry (non-air-gapped)
|
||||
#### Public registry
|
||||
|
||||
To pull from the InfluxData registry, you need to create a Kubernetes secret in the target namespace.
|
||||
|
||||
|
@ -161,40 +161,34 @@ If you change the name of the secret, you must also change the value of the
|
|||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!--------------------------- BEGIN Private Registry -------------------------->
|
||||
<!--------------------------- BEGIN PRIVATE REGISTRY (AIR-GAPPED) -------------------------->
|
||||
|
||||
#### Private registry (air-gapped)
|
||||
|
||||
If your Kubernetes cluster can't use a public network to download container images
|
||||
from the InfluxData container registry, do the following:
|
||||
from the InfluxData container registry, follow these steps to copy images and
|
||||
configure the AppInstance for a private registry:
|
||||
|
||||
1. Copy the images from the InfluxData registry to your own private registry.
|
||||
2. Configure your `AppInstance` resource with a reference to your private
|
||||
registry name.
|
||||
3. Provide credentials to your private registry.
|
||||
1. [Copy the images to your private registry](#copy-the-images-to-your-private-registry)
|
||||
2. [Configure your AppInstance](#configure-your-appinstance)
|
||||
|
||||
##### Copy the images
|
||||
##### Copy the images to your private registry
|
||||
|
||||
We recommend using [crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane)
|
||||
to copy images into your private registry.
|
||||
Use `crane` to copy images from the InfluxData registry to your own private registry.
|
||||
|
||||
1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation)
|
||||
for your system.
|
||||
2. Use the following command to create a container registry secret file and
|
||||
retrieve the necessary secrets:
|
||||
1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation)
|
||||
for your system.
|
||||
2. Create a container registry secret file and verify access:
|
||||
|
||||
{{% code-placeholders "PACKAGE_VERSION" %}}
|
||||
|
||||
<!-- pytest.mark.skip -->
|
||||
|
||||
```bash
|
||||
mkdir /tmp/influxdbsecret
|
||||
mkdir -p /tmp/influxdbsecret
|
||||
cp influxdb-docker-config.json /tmp/influxdbsecret/config.json
|
||||
DOCKER_CONFIG=/tmp/influxdbsecret \
|
||||
crane manifest \
|
||||
us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION
|
||||
```
|
||||
|
||||
{{% /code-placeholders %}}
|
||||
|
||||
---
|
||||
|
@ -244,8 +238,8 @@ manifest and the output is similar to the following error:
|
|||
Error: fetching manifest us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:<package-version>: GET https://us-docker.pkg.dev/v2/token?scope=repository%3Ainfluxdb2-artifacts%2Fclustered%2Finfluxdb%3Apull&service=: DENIED: Permission "artifactregistry.repositories.downloadArtifacts" denied on resource "projects/influxdb2-artifacts/locations/us/repositories/clustered" (or it may not exist)
|
||||
```
|
||||
|
||||
The list of images that you need to copy is included in the package metadata.
|
||||
You can obtain it with any standard OCI image inspection tool--for example:
|
||||
3. Extract the list of InfluxDB images from the package metadata:
|
||||
You can use any standard OCI image inspection tool--for example:
|
||||
|
||||
{{% code-placeholders "PACKAGE_VERSION" %}}
|
||||
|
||||
|
@ -269,7 +263,7 @@ us-docker.pkg.dev/influxdb2-artifacts/iox/iox@sha256:b59d80add235f29b806badf7410
|
|||
...
|
||||
```
|
||||
|
||||
Use `crane` to copy the images to your private registry:
|
||||
4. Use `crane` to copy the images to your private registry:
|
||||
|
||||
{{% code-placeholders "REGISTRY_HOSTNAME" %}}
|
||||
|
||||
|
@ -289,49 +283,50 @@ with the hostname of your private registry--for example:
|
|||
myregistry.mydomain.io
|
||||
```
|
||||
|
||||
|
||||
##### Configure your AppInstance
|
||||
|
||||
Set the `spec.package.spec.images.registryOverride` field in your
|
||||
`myinfluxdb.yml` to the location of your private registry--for example:
|
||||
Configure your `AppInstance` resource with a reference to your private registry name.
|
||||
|
||||
{{% code-placeholders "REGISTRY_HOSTNAME" %}}
|
||||
In your `myinfluxdb.yml`:
|
||||
|
||||
```yml
|
||||
1. Set `spec.package.spec.images.registryOverride` to the location of your private registry.
|
||||
2. If your private container registry requires pull secrets to access images, set `spec.imagePullSecrets.name` to the pull secret name.
|
||||
|
||||
{{% expand-wrapper %}}
|
||||
{{% expand "View `myinfluxdb.yml` AppInstance configuration" %}}
|
||||
{{% code-placeholders "REGISTRY_HOSTNAME | PULL_SECRET_NAME" %}}
|
||||
```yaml
|
||||
apiVersion: kubecfg.dev/v1alpha1
|
||||
kind: AppInstance
|
||||
# ...
|
||||
metadata:
|
||||
name: influxdb
|
||||
namespace: influxdb
|
||||
spec:
|
||||
package:
|
||||
spec:
|
||||
images:
|
||||
registryOverride: REGISTRY_HOSTNAME
|
||||
```
|
||||
|
||||
{{% /code-placeholders %}}
|
||||
|
||||
|
||||
##### Provide credentials to your private registry
|
||||
|
||||
If your private container registry requires pull secrets to access images, you
|
||||
can create the required kubernetes secrets, and then configure them in your
|
||||
AppInstance resource--for example:
|
||||
|
||||
{{% code-placeholders "PULL_SECRET_NAME" %}}
|
||||
|
||||
```yml
|
||||
apiVersion: kubecfg.dev/v1alpha1
|
||||
kind: AppInstance
|
||||
# ...
|
||||
spec:
|
||||
# Configure connection to PostgreSQL database
|
||||
values:
|
||||
global:
|
||||
catalog:
|
||||
dsn: "postgres://username:password@postgres-host:5432/influxdb?sslmode=require"
|
||||
# Configure S3-compatible object storage
|
||||
objectStorage:
|
||||
bucket: "influxdb-bucket"
|
||||
endpoint: "https://s3-endpoint"
|
||||
accessKeyId: "ACCESS_KEY"
|
||||
secretAccessKey: "SECRET_KEY"
|
||||
region: "region"
|
||||
# Configure image pull secrets if needed
|
||||
imagePullSecrets:
|
||||
- name: PULL_SECRET_NAME
|
||||
```
|
||||
|
||||
{{% /code-placeholders %}}
|
||||
{{% /expand %}}
|
||||
{{% /expand-wrapper %}}
|
||||
|
||||
|
||||
<!---------------------------- END Private Registry --------------------------->
|
||||
<!---------------------------- END Private Registry (AIR-GAPPED) --------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{< /tabs-wrapper >}}
|
||||
|
|
|
@ -203,19 +203,18 @@ Error: fetching manifest us-docker.pkg.dev/influxdb2-artifacts/clustered/influxd
|
|||
|
||||
{{< tabs-wrapper >}}
|
||||
{{% tabs %}}
|
||||
[Public registry (non-air-gapped)](#)
|
||||
[Public registry](#)
|
||||
[Private registry (air-gapped)](#)
|
||||
{{% /tabs %}}
|
||||
|
||||
{{% tab-content %}}
|
||||
|
||||
<!--------------------------- BEGIN Public Registry --------------------------->
|
||||
|
||||
#### Public registry (non-air-gapped)
|
||||
#### Public registry
|
||||
|
||||
To pull from the InfluxData registry, you need to create a Kubernetes secret in the target namespace.
|
||||
|
||||
```sh
|
||||
```bash
|
||||
kubectl create secret docker-registry gar-docker-secret \
|
||||
--from-file=.dockerconfigjson=influxdb-docker-config.json \
|
||||
--namespace influxdb
|
||||
|
@ -232,79 +231,97 @@ If you change the name of this secret, you must also change the value of the
|
|||
`imagePullSecrets.name` field in your `values.yaml`.
|
||||
|
||||
<!---------------------------- END Public Registry ---------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!--------------------------- BEGIN Private Registry -------------------------->
|
||||
|
||||
#### Private registry (air-gapped)
|
||||
|
||||
If your Kubernetes cluster can't use a public network to download container images
|
||||
from our container registry, do the following:
|
||||
For air-gapped environments, you need to:
|
||||
|
||||
1. Copy the images from the InfluxDB registry to your own private registry.
|
||||
2. Configure your `AppInstance` resource with a reference to your private
|
||||
registry name.
|
||||
3. Provide credentials to your private registry.
|
||||
1. [Set up Docker configuration](#set-up-docker-configuration)
|
||||
2. [Mirror InfluxDB images](#mirror-influxdb-images)
|
||||
3. [Mirror kubit operator images](#mirror-kubit-operator-images)
|
||||
4. [Configure registry access in values.yaml](#configure-registry-access-in-valuesyaml)
|
||||
|
||||
The list of images that you need to copy is included in the package metadata.
|
||||
You can obtain it with any standard OCI image inspection tool. For example:
|
||||
##### Set up Docker configuration
|
||||
|
||||
{{% code-placeholders "PACKAGE_VERSION" %}}
|
||||
Create a directory to store your Docker configuration:
|
||||
|
||||
```sh
|
||||
DOCKER_CONFIG=/tmp/influxdbsecret \
|
||||
crane config \
|
||||
us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION \
|
||||
| jq -r '.metadata["oci.image.list"].images[]' \
|
||||
> /tmp/images.txt
|
||||
```bash
|
||||
mkdir -p /tmp/influxdbsecret
|
||||
cp influxdb-docker-config.json /tmp/influxdbsecret/config.json
|
||||
```
|
||||
|
||||
{{% /code-placeholders %}}
|
||||
##### Mirror InfluxDB images
|
||||
|
||||
The output is a list of image names, similar to the following:
|
||||
Use `crane` to copy images from the InfluxData registry to your own private registry:
|
||||
|
||||
```
|
||||
us-docker.pkg.dev/influxdb2-artifacts/idpe/idpe-cd-ioxauth@sha256:5f015a7f28a816df706b66d59cb9d6f087d24614f485610619f0e3a808a73864
|
||||
us-docker.pkg.dev/influxdb2-artifacts/iox/iox@sha256:b59d80add235f29b806badf7410239a3176bc77cf2dc335a1b07ab68615b870c
|
||||
...
|
||||
1. [Install crane](https://github.com/google/go-containerregistry/tree/main/cmd/crane#installation) on your system.
|
||||
|
||||
2. Extract the list of InfluxDB images:
|
||||
|
||||
```bash
|
||||
DOCKER_CONFIG=/tmp/influxdbsecret \
|
||||
crane config \
|
||||
us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:PACKAGE_VERSION \
|
||||
| jq -r '.metadata["oci.image.list"].images[]' \
|
||||
> /tmp/influx-images.txt
|
||||
```
|
||||
|
||||
Replace {{% code-placeholder-key %}}`PACKAGE_VERSION`{{% /code-placeholder-key %}} with your InfluxDB Clustered package version.
|
||||
|
||||
3. Copy the images to your private registry:
|
||||
|
||||
```bash
|
||||
cat /tmp/influx-images.txt | xargs -I% crane cp % REGISTRY_HOSTNAME/%
|
||||
```
|
||||
|
||||
Replace {{% code-placeholder-key %}}`REGISTRY_HOSTNAME`{{% /code-placeholder-key %}} with your private registry hostname (e.g., `myregistry.mydomain.io`).
|
||||
|
||||
##### Mirror kubit operator images
|
||||
|
||||
In addition to the InfluxDB images, copy the kubit operator images:
|
||||
|
||||
```bash
|
||||
# Create a list of kubit-related images
|
||||
cat > /tmp/kubit-images.txt << EOF
|
||||
ghcr.io/kubecfg/kubit:v0.0.20
|
||||
ghcr.io/kubecfg/kubecfg/kubecfg:latest
|
||||
bitnami/kubectl:1.27.5
|
||||
registry.k8s.io/kubectl:v1.28.0
|
||||
EOF
|
||||
|
||||
# Copy kubit images to your private registry
|
||||
cat /tmp/kubit-images.txt | xargs -I% crane cp % YOUR_PRIVATE_REGISTRY/%
|
||||
```
|
||||
|
||||
Use `crane` to copy the images to your private registry:
|
||||
##### Configure registry access in values.yaml
|
||||
|
||||
Configure your `values.yaml` to use your private registry:
|
||||
|
||||
{{% code-placeholders "REGISTRY_HOSTNAME" %}}
|
||||
|
||||
```sh
|
||||
</tmp/images.txt xargs -I% crane cp % REGISTRY_HOSTNAME/%
|
||||
```
|
||||
|
||||
{{% /code-placeholders %}}
|
||||
|
||||
---
|
||||
|
||||
Replace {{% code-placeholder-key %}}`REGISTRY_HOSTNAME`{{% /code-placeholder-key %}}
|
||||
with the hostname of your private registry--for example:
|
||||
|
||||
```text
|
||||
myregistry.mydomain.io
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Set the
|
||||
`images.registryOverride` field in your `values.yaml` to the location of your
|
||||
private registry--for example:
|
||||
|
||||
{{% code-placeholders "REGISTRY_HOSTNAME" %}}
|
||||
|
||||
```yml
|
||||
```yaml
|
||||
# Configure registry override for all images
|
||||
images:
|
||||
registryOverride: REGISTRY_HOSTNAME
|
||||
```
|
||||
|
||||
# Configure kubit operator images
|
||||
kubit:
|
||||
controller:
|
||||
image: REGISTRY_HOSTNAME/ghcr.io/kubecfg/kubit:v0.0.20
|
||||
apply_step_image: REGISTRY_HOSTNAME/bitnami/kubectl:1.27.5
|
||||
render_step_image: REGISTRY_HOSTNAME/registry.k8s.io/kubectl:v1.28.0
|
||||
kubecfg_image: REGISTRY_HOSTNAME/ghcr.io/kubecfg/kubecfg/kubecfg:latest
|
||||
|
||||
# Configure image pull secrets if needed
|
||||
imagePullSecrets:
|
||||
- name: your-registry-pull-secret
|
||||
```
|
||||
{{% /code-placeholders %}}
|
||||
|
||||
Replace {{% code-placeholder-key %}}`REGISTRY_HOSTNAME`{{% /code-placeholder-key %}} with your private registry hostname.
|
||||
|
||||
<!---------------------------- END Private Registry --------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
|
@ -683,4 +700,114 @@ Replace the following:
|
|||
|
||||
---
|
||||
|
||||
{{< page-nav prev="/influxdb3/clustered/install/secure-cluster/auth/" prevText="Set up authentication" next="/influxdb3/clustered/install/set-up-cluster/licensing" nextText="Install your license" tab="Helm" >}}
|
||||
### Deploy your cluster
|
||||
|
||||
{{< tabs-wrapper >}}
|
||||
{{% tabs %}}
|
||||
[Standard deployment](#)
|
||||
[Air-gapped deployment](#)
|
||||
{{% /tabs %}}
|
||||
|
||||
{{% tab-content %}}
|
||||
|
||||
<!--------------------------- BEGIN Standard Deployment --------------------------->
|
||||
|
||||
#### Standard deployment (with internet access)
|
||||
|
||||
1. Add the InfluxData Helm chart repository:
|
||||
|
||||
```bash
|
||||
helm repo add influxdata https://helm.influxdata.com/
|
||||
```
|
||||
|
||||
2. Update your Helm repositories to ensure you have the latest charts:
|
||||
|
||||
```bash
|
||||
helm repo update
|
||||
```
|
||||
|
||||
3. Deploy the InfluxDB Clustered Helm chart with your custom values:
|
||||
|
||||
```bash
|
||||
helm install influxdb influxdata/influxdb3-clustered \
|
||||
-f values.yaml \
|
||||
--namespace influxdb \
|
||||
--create-namespace
|
||||
```
|
||||
|
||||
4. Verify the deployment:
|
||||
|
||||
```bash
|
||||
kubectl get pods -n influxdb
|
||||
```
|
||||
|
||||
If you need to update your deployment after making changes to your `values.yaml`:
|
||||
|
||||
```bash
|
||||
helm upgrade influxdb influxdata/influxdb3-clustered \
|
||||
-f values.yaml \
|
||||
--namespace influxdb
|
||||
```
|
||||
|
||||
<!---------------------------- END Standard Deployment ---------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!--------------------------- BEGIN Air-gapped Deployment -------------------------->
|
||||
|
||||
#### Air-gapped deployment
|
||||
|
||||
1. In your air-gapped environment, install the chart from the local tarball that you transferred:
|
||||
|
||||
```bash
|
||||
helm install influxdb ./influxdb3-clustered-X.Y.Z.tgz \
|
||||
-f values.yaml \
|
||||
--namespace influxdb \
|
||||
--create-namespace
|
||||
```
|
||||
|
||||
Replace `X.Y.Z` with the specific chart version you downloaded.
|
||||
|
||||
2. Verify the deployment:
|
||||
|
||||
```bash
|
||||
kubectl get pods -n influxdb
|
||||
```
|
||||
|
||||
If you need to update your deployment after making changes to your `values.yaml`:
|
||||
|
||||
```bash
|
||||
helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
|
||||
-f values.yaml \
|
||||
--namespace influxdb
|
||||
```
|
||||
|
||||
{{% note %}}
|
||||
#### Understanding kubit's role in air-gapped environments
|
||||
|
||||
When deploying with Helm in an air-gapped environment:
|
||||
|
||||
1. **Helm deploys the kubit operator** - The Helm chart includes the kubit operator, which needs its images mirrored to your private registry
|
||||
2. **Operator requires access to all InfluxDB images** - The kubit operator deploys the actual InfluxDB components using images from your private registry
|
||||
3. **Registry override is essential** - You must set the `images.registryOverride` and configure the kubit operator images correctly in the values file
|
||||
|
||||
This is why mirroring both the InfluxDB images and the kubit operator images is necessary for air-gapped deployments.
|
||||
{{% /note %}}
|
||||
|
||||
<!---------------------------- END Air-gapped Deployment --------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{< /tabs-wrapper >}}
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common issues
|
||||
|
||||
1. **Image pull errors**
|
||||
|
||||
```
|
||||
Error: failed to create labeled resources: failed to create resources: failed to create resources:
|
||||
Internal error occurred: failed to create pod sandbox: rpc error: code = Unknown
|
||||
desc = failed to pull image "us-docker.pkg.dev/...": failed to pull and unpack image "...":
|
||||
failed to resolve reference "...": failed to do request: ... i/o timeout
|
||||
|
|
|
@ -22,49 +22,32 @@ following tools:
|
|||
- **kubit**: A Kubernetes controller that can render and apply jsonnet
|
||||
templates based on the [kubecfg](https://github.com/kubecfg/kubecfg) jsonnet
|
||||
tooling and framework
|
||||
- **helm**: Uses the [InfluxDB Clustered Helm chart](https://github.com/influxdata/helm-charts/tree/master/charts/influxdb3-clustered), which includes the kubit operator.
|
||||
|
||||
InfluxDB Clustered uses an `AppInstance` Kubernetes custom resource (CR) to
|
||||
configure and deploy your InfluxDB Cluster.
|
||||
Installing a `CustomResourceDefinition` (CRD) requires cluster-wide permissions
|
||||
and may cause `kubectl` to fail if you do not have those permissions in your cluster.
|
||||
To compare these tools and deployment methods, see [Choose the right deployment tool for your environment](/influxdb3/clustered/install/set-up-cluster/configure-cluster/#choose-the-right-deployment-tool-for-your-environment).
|
||||
|
||||
`kubectl` uses your local credentials to install the `AppInstance` CRD.
|
||||
If you do not have the necessary permissions, you can
|
||||
[use the `kubit` CLI to manually install the package in your cluster](?t=kubit#kubectl-kubit-helm).
|
||||
## Prerequisites
|
||||
|
||||
{{% note %}}
|
||||
**If you meet any of the following criteria,
|
||||
[install and use the `kubit` CLI](?t=kubit#kubectl-kubit-helm)
|
||||
on your local machine. This allows you to act as the operator would and deploy
|
||||
your cluster, but from your terminal.**
|
||||
|
||||
- You do not have permissions to install a CRD.
|
||||
- You do not have permissions to install the operator in the `kubit` namespace.
|
||||
- You do not have permissions to create cluster-wide role-based access
|
||||
control (RBAC).
|
||||
- You want to preview the generated YAML.
|
||||
- You do not want to run the operator in your Kubernetes cluster.
|
||||
{{% /note %}}
|
||||
|
||||
You can also use [Helm](https://helm.sh/) and the
|
||||
[InfluxDB Clustered Helm chart](https://github.com/influxdata/helm-charts/tree/master/charts/influxdb3-clustered)
|
||||
to deploy your InfluxDB cluster.
|
||||
If you haven't already set up and configured your cluster, see how to
|
||||
[install InfluxDB Clustered](/influxdb3/clustered/install/).
|
||||
|
||||
<!-- Hidden anchor for links to the kubectl/kubit/helm tabs -->
|
||||
|
||||
<span id="kubectl-kubit-helm"></span>
|
||||
|
||||
{{< tabs-wrapper >}}
|
||||
{{% tabs %}}
|
||||
[kubectl](#)
|
||||
[kubit](#)
|
||||
[Helm](#)
|
||||
[kubit CLI](#)
|
||||
[helm](#)
|
||||
{{% /tabs %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!------------------------------- BEGIN kubectl ------------------------------->
|
||||
- [`kubectl` standard deployment (with internet access)](#kubectl-standard-deployment-with-internet-access)
|
||||
- [`kubectl` air-gapped deployment](#kubectl-air-gapped-deployment)
|
||||
|
||||
Use the `kubectl apply` command to apply your custom-configured `myinfluxdb.yml`
|
||||
## kubectl standard deployment (with internet access)
|
||||
|
||||
Use the `kubectl apply` command to apply your [custom-configured `myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/)
|
||||
and deploy your InfluxDB cluster:
|
||||
|
||||
```sh
|
||||
|
@ -73,55 +56,150 @@ kubectl apply \
|
|||
--namespace influxdb
|
||||
```
|
||||
|
||||
> [!Note]
|
||||
> Due to the additional complexity and maintenance requirements, using `kubectl apply` isn't
|
||||
> recommended for air-gapped environments.
|
||||
> Instead, consider using the [`kubit` CLI approach](#kubit-cli), which is specifically designed for air-gapped deployments.
|
||||
|
||||
<!-------------------------------- END kubectl -------------------------------->
|
||||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
<!-------------------------------- BEGIN kubit CLI -------------------------------->
|
||||
## Standard and air-gapped deployments
|
||||
|
||||
_This approach avoids the need for installing the kubit operator in the cluster,
|
||||
making it ideal for air-gapped clusters._
|
||||
|
||||
> [!Important]
|
||||
> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/#configure-access-to-the-influxDB-container-registry).
|
||||
|
||||
1. On a machine with internet access, download the [`kubit` CLI](https://github.com/kubecfg/kubit#cli-tool)--for example:
|
||||
|
||||
```bash
|
||||
curl -L -o kubit https://github.com/kubecfg/kubit/archive/refs/tags/v0.0.20.tar.gz
|
||||
chmod +x kubit
|
||||
```
|
||||
|
||||
Replace {{% code-placeholder-key %}}`v0.0.20`{{% /code-placeholder-key%}} with the [latest release version](https://github.com/kubecfg/kubit/releases/latest).
|
||||
|
||||
2. If deploying InfluxDB in an air-gapped environment (without internet access),
|
||||
transfer the binary to your air-gapped environment.
|
||||
|
||||
3. Use the `kubit local apply` command to process your [custom-configured `myinfluxdb.yml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/directly/) locally
|
||||
and apply the resulting resources to your cluster:
|
||||
|
||||
```bash
|
||||
# Point to Docker credentials that have access to your registry
|
||||
# (public registry for standard deployments or private registry for air-gapped)
|
||||
DOCKER_CONFIG=/path/to/credentials kubit local apply myinfluxdb.yml
|
||||
```
|
||||
|
||||
If your local system doesn't have required tools installed, use Docker mode:
|
||||
|
||||
```bash
|
||||
# For Linux or macOS
|
||||
DOCKER_CONFIG=/path/to/credentials kubit local apply --docker myinfluxdb.yml
|
||||
```
|
||||
|
||||
The `kubit local apply` command processes your AppInstance resource locally and
|
||||
applies the resulting Kubernetes resources directly to your cluster.
|
||||
|
||||
<!------------------------------- END kubit CLI ------------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!-------------------------------- BEGIN kubit -------------------------------->
|
||||
|
||||
1. [Install the `kubit` CLI](https://github.com/kubecfg/kubit#cli-tool)
|
||||
and related tools on your local machine.
|
||||
|
||||
2. Use the `kubit local apply` command to apply your custom-configured
|
||||
`myinfluxdb.yml` and deploy your InfluxDB Cluster.
|
||||
Set the `DOCKER_CONFIG` environment variable to the directory path of
|
||||
your InfluxDB Clustered pull secret credentials provided by InfluxData.
|
||||
|
||||
```sh
|
||||
DOCKER_CONFIG=/path/to/pullsecrets kubit local apply myinfuxdb.yml
|
||||
```
|
||||
|
||||
**NOTE:** By default, `kubit` will use tools that are installed on your local system.
|
||||
You can specify the `--docker` flag to opt-in to using containers instead. This will pull images
|
||||
for tool dependencies, meaning the required versions are tracked by `kubit`.
|
||||
|
||||
<!--------------------------------- END kubit --------------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{% tab-content %}}
|
||||
|
||||
<!-------------------------------- BEGIN Helm --------------------------------->
|
||||
- [Helm standard deployment (with internet access)](#helm-standard-deployment-with-internet-access)
|
||||
- [Helm air-gapped deployment](#helm-air-gapped-deployment)
|
||||
|
||||
1. Add the InfluxData Helm chart repository:
|
||||
## Helm standard deployment (with internet access)
|
||||
|
||||
```bash
|
||||
helm repo add influxdata https://helm.influxdata.com/
|
||||
```
|
||||
1. Add the InfluxData Helm chart repository:
|
||||
|
||||
2. Deploy your Helm chart using your modified local `values.yaml`:
|
||||
```bash
|
||||
helm repo add influxdata https://helm.influxdata.com/
|
||||
```
|
||||
|
||||
```bash
|
||||
helm upgrade \
|
||||
--install \
|
||||
influxdb \
|
||||
influxdata/influxdb3-clustered \
|
||||
-f ./values.yml \
|
||||
--namespace influxdb
|
||||
```
|
||||
2. Update your Helm repositories to ensure you have the latest charts:
|
||||
|
||||
```bash
|
||||
helm repo update
|
||||
```
|
||||
|
||||
3. Deploy the InfluxDB Clustered Helm chart with your [customized `values.yaml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#create-a-valuesyaml-file):
|
||||
|
||||
```bash
|
||||
helm install influxdb influxdata/influxdb3-clustered \
|
||||
-f values.yaml \
|
||||
--namespace influxdb \
|
||||
--create-namespace
|
||||
```
|
||||
|
||||
If you need to update your deployment after making changes to your `values.yaml`, use the `helm upgrade` command:
|
||||
|
||||
```bash
|
||||
helm upgrade influxdb influxdata/influxdb3-clustered \
|
||||
-f values.yaml \
|
||||
--namespace influxdb
|
||||
```
|
||||
|
||||
## Helm air-gapped deployment
|
||||
|
||||
> [!Important]
|
||||
> For air-gapped deployment, ensure you have [configured access to a private registry for InfluxDB images and the kubit operator](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#configure-access-to-the-influxDB-container-registry).
|
||||
|
||||
1. On a machine with internet access, download the Helm chart:
|
||||
|
||||
```bash
|
||||
# Add the InfluxData repository
|
||||
helm repo add influxdata https://helm.influxdata.com/
|
||||
|
||||
# Update the repositories
|
||||
helm repo update
|
||||
|
||||
# Download the chart as a tarball
|
||||
helm pull influxdata/influxdb3-clustered --version X.Y.Z
|
||||
```
|
||||
|
||||
Replace `X.Y.Z` with the specific chart version you want to use.
|
||||
|
||||
2. Transfer the chart tarball to your air-gapped environment using your secure file transfer method.
|
||||
|
||||
3. In your air-gapped environment, install the chart from the local tarball and values from your [customized `values.yaml`](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#create-a-valuesyaml-file):
|
||||
|
||||
```bash
|
||||
helm install influxdb ./influxdb3-clustered-X.Y.Z.tgz \
|
||||
-f values.yaml \
|
||||
--namespace influxdb \
|
||||
--create-namespace
|
||||
```
|
||||
|
||||
4. Verify the deployment:
|
||||
|
||||
```bash
|
||||
kubectl get pods -n influxdb
|
||||
```
|
||||
|
||||
If you need to update your deployment after making changes to your `values.yaml`, use the `helm upgrade` command:
|
||||
|
||||
```bash
|
||||
helm upgrade influxdb ./influxdb3-clustered-X.Y.Z.tgz \
|
||||
-f values.yaml \
|
||||
--namespace influxdb
|
||||
```
|
||||
|
||||
> [!Note]
|
||||
> #### kubit's role in air-gapped environments
|
||||
>
|
||||
> When deploying with Helm in an air-gapped environment:
|
||||
>
|
||||
> 1. **Helm deploys the kubit operator** - The Helm chart includes the kubit operator, which needs its images mirrored to your private registry
|
||||
> 2. **Operator requires access to all InfluxDB images** - The kubit operator deploys the actual InfluxDB components using images from your private registry
|
||||
> 3. **Registry override is essential** - You must set the `images.registryOverride` and configure the kubit operator images correctly in the values file
|
||||
>
|
||||
> This is why you need to [mirror InfluxDB images and kubit operator images](/influxdb3/clustered/install/set-up-cluster/configure-cluster/use-helm/#mirror-influxdb-images) for air-gapped deployments.
|
||||
|
||||
<!--------------------------------- END Helm ---------------------------------->
|
||||
|
||||
{{% /tab-content %}}
|
||||
{{< /tabs-wrapper >}}
|
||||
|
||||
|
@ -204,4 +282,24 @@ influxdb iox-shared-querier-7f5998b9b-fpt62 4/4 Running 1 (6
|
|||
influxdb kubit-apply-influxdb-g6qpx 0/1 Completed 0 8s
|
||||
```
|
||||
|
||||
## Troubleshoot deploying InfluxDB Clustered
|
||||
|
||||
### Common issues
|
||||
|
||||
1. **Image pull errors**
|
||||
- Check that registry override and image pull secrets are properly configured
|
||||
- For air-gapped: Verify all images are mirrored and `registryOverride` is correctly set
|
||||
|
||||
2. **Missing kubit binary**
|
||||
- Ensure you've transferred the correct version of kubit for your platform
|
||||
- Verify the binary has executable permissions
|
||||
|
||||
3. **Kubit operator failures in air-gapped environments**
|
||||
|
||||
- Ensure you've properly mirrored all kubit operator images and configured their references in your values file.
|
||||
|
||||
4. **PostgreSQL connectivity issues**
|
||||
- Verify network connectivity to your PostgreSQL database
|
||||
- Check that database credentials are correct in your configuration
|
||||
|
||||
{{< page-nav prev="/influxdb3/clustered/install/set-up-cluster/licensing/" prevText="Install your license" next="/influxdb3/clustered/install/set-up-cluster/test-cluster/" nextText="Test your cluster" >}}
|
||||
|
|
|
@ -27,7 +27,7 @@ InfluxDB Clustered requires the following prerequisite external dependencies:
|
|||
Stores the Write-Ahead Log (WAL) for
|
||||
[InfluxDB Ingesters](/influxdb3/clustered/reference/internals/storage-engine/#ingester).
|
||||
|
||||
The following walks through preparing these prerequisites.
|
||||
## Install prerequisites
|
||||
|
||||
- [Install kubectl](#install-kubectl)
|
||||
- [Set up your Kubernetes cluster](#set-up-your-kubernetes-cluster)
|
||||
|
@ -37,7 +37,7 @@ The following walks through preparing these prerequisites.
|
|||
- [Set up your PostgreSQL-compatible database](#set-up-your-postgresql-compatible-database)
|
||||
- [Set up local or attached storage](#set-up-local-or-attached-storage)
|
||||
|
||||
## Install kubectl
|
||||
### Install kubectl
|
||||
|
||||
Kubernetes provides the `kubectl` command line tool for communicating with a
|
||||
Kubernetes cluster's control plane. `kubectl` is used to manage your InfluxDB
|
||||
|
@ -53,7 +53,7 @@ InfluxDB Clustered Kubernetes deployments require `kubectl` 1.27 or higher.
|
|||
- [Install kubectl on macOS](https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/)
|
||||
- [Install kubectl on Windows](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/)
|
||||
|
||||
## Set up your Kubernetes cluster
|
||||
#### Set up your Kubernetes cluster
|
||||
|
||||
1. Deploy a Kubernetes cluster. The deployment process depends on your
|
||||
Kubernetes environment or Kubernetes cloud provider. Refer to the
|
||||
|
@ -175,7 +175,7 @@ following sizing for {{% product-name %}} components:
|
|||
Your sizing may need to be different based on your environment, cloud provider,
|
||||
and workload, but this is a reasonable starting size for your initial testing.
|
||||
|
||||
## Install the kubecfg kubit operator
|
||||
### Install the kubecfg kubit operator
|
||||
|
||||
The [`kubecfg kubit` operator](https://github.com/kubecfg/kubit) (maintained by InfluxData)
|
||||
simplifies the installation and management of the InfluxDB Clustered package.
|
||||
|
@ -199,7 +199,7 @@ operator **v0.0.18 or later**.
|
|||
kubectl apply -k 'https://github.com/kubecfg/kubit//kustomize/global?ref=v0.0.19'
|
||||
```
|
||||
|
||||
## Set up a Kubernetes ingress controller
|
||||
### Set up a Kubernetes ingress controller
|
||||
|
||||
[Kubernetes ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/)
|
||||
routes HTTP/S requests to services within the cluster and requires deploying an
|
||||
|
@ -208,19 +208,20 @@ You can provide your own ingress or you can install
|
|||
[Nginx Ingress Controller](https://github.com/kubernetes/ingress-nginx) to use
|
||||
the InfluxDB-defined ingress.
|
||||
|
||||
{{% note %}}
|
||||
InfluxDB Clustered components use gRPC/HTTP2 protocols. If using an external
|
||||
load balancer, you may need to explicitly enable these protocols on your load
|
||||
balancers.
|
||||
{{% /note %}}
|
||||
> [!Important]
|
||||
> #### Allow gRPC/HTTP2
|
||||
>
|
||||
> InfluxDB Clustered components use gRPC/HTTP2 protocols.
|
||||
> If using an external load balancer,
|
||||
> you may need to explicitly enable these protocols on your load
|
||||
> balancers.
|
||||
|
||||
## Set up your object store
|
||||
### Set up your object store
|
||||
|
||||
InfluxDB Clustered supports AWS S3 or S3-compatible storage (including Google
|
||||
Cloud Storage, Azure Blob Storage, and MinIO) for storing
|
||||
[InfluxDB Parquet files](/influxdb3/clustered/reference/internals/storage-engine/#object-store).
|
||||
Refer to your object storage provider's documentation for information about
|
||||
setting up an object store:
|
||||
Refer to your object storage provider's documentation for information about setting up an object store:
|
||||
|
||||
- [Create an AWS S3 bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)
|
||||
- [Create a Google Cloud Storage bucket](https://cloud.google.com/storage/docs/creating-buckets)
|
||||
|
@ -252,7 +253,7 @@ We **strongly** recommend the following:
|
|||
same namespace is possible, we do not recommend it for production environments.
|
||||
{{% /note %}}
|
||||
|
||||
### Configure object storage permissions
|
||||
#### Configure object storage permissions
|
||||
|
||||
Ensure the identity you use to connect to your S3-compatible object store has
|
||||
the correct permissions to allow InfluxDB to perform all the actions it needs to.
|
||||
|
@ -361,7 +362,7 @@ To configure permissions with MinIO, use the
|
|||
[example AWS access policy](#view-example-aws-s3-access-policy).
|
||||
{{% /note %}}
|
||||
|
||||
## Set up your PostgreSQL-compatible database
|
||||
### Set up your PostgreSQL-compatible database
|
||||
|
||||
The [InfluxDB Catalog](/influxdb3/clustered/reference/internals/storage-engine/#catalog)
|
||||
that stores metadata related to your time series data requires a PostgreSQL or
|
||||
|
@ -371,7 +372,7 @@ depends on the database and database provider you use.
|
|||
Refer to your database's or provider's documentation for setting up your
|
||||
PostgreSQL-compatible database.
|
||||
|
||||
### PostgreSQL-compatible database requirements
|
||||
#### PostgreSQL-compatible database requirements
|
||||
|
||||
- PostgreSQL version **13 or 14**.
|
||||
- **Minimum of 4 GB of memory** or equivalent provider-specific units.
|
||||
|
@ -389,7 +390,7 @@ While deploying everything in the same namespace is possible, we do not
|
|||
recommend it for production environments.
|
||||
{{% /note %}}
|
||||
|
||||
## Set up local or attached storage
|
||||
### Set up local or attached storage
|
||||
|
||||
The [InfluxDB Ingester](/influxdb3/clustered/reference/internals/storage-engine/#ingester)
|
||||
needs local or attached storage to store the Write-Ahead Log (WAL).
|
||||
|
|
|
@ -142,7 +142,7 @@ spec:
|
|||
|
||||
#### AppInstance image override bug fix
|
||||
|
||||
In [20240925-1257864](#20240925-1257864), the AppInstance image override was
|
||||
In 20240925-1257864, the AppInstance image override was
|
||||
broken with the introduction of strict always-on license enforcement.
|
||||
This release fixes that bug.
|
||||
|
||||
|
@ -151,49 +151,19 @@ Clustered in air-gapped environments where the deployment model involves
|
|||
overriding the default image repository to point to images copied to an
|
||||
air-gapped registry.
|
||||
|
||||
This release is an alternative to [20240925-1257864](#20240925-1257864) for
|
||||
This release is an alternative to 20240925-1257864 for
|
||||
customers who depend on this image override feature.
|
||||
|
||||
#### Upgrade bug fix
|
||||
|
||||
[20240925-1257864](#20240925-1257864) introduced a schema migration bug that
|
||||
20240925-1257864 introduced a schema migration bug that
|
||||
caused an `init` container in the `account` Pods to hang indefinitely.
|
||||
This would only affect InfluxDB Clustered during an upgrade; not a fresh install.
|
||||
The 20240925-1257864 release has been removed from the release notes, but
|
||||
relevant updates are included as part of this 20241024-1354148 release.
|
||||
|
||||
For customers who experience this bug when attempting to upgrade to
|
||||
[20240925-1257864](#20240925-1257864), upgrade to this 20241024-1354148 instead.
|
||||
|
||||
### Changes
|
||||
|
||||
#### Deployment
|
||||
|
||||
- Enable overriding the default CPU and memory resource requests and limits for
|
||||
the Garbage collector and Catalog services.
|
||||
- Remove the Gateway service and implement the newly introduced Core service.
|
||||
- Fix logic related to applying default resource limits for IOx components.
|
||||
- Support [`ResourceQuota`s](https://kubernetes.io/docs/concepts/policy/resource-quotas/)
|
||||
with the `enableDefaultResourceLimits` feature flag. This causes resource
|
||||
limits to be applied even to containers that don't normally have limits
|
||||
applied.
|
||||
|
||||
---
|
||||
|
||||
## 20240925-1257864 {date="2024-09-25" .checkpoint}
|
||||
|
||||
> [!Caution]
|
||||
> This release has a number of bugs in it which make it unsuitable for customer use.
|
||||
> If you are currently running this version, please upgrade to
|
||||
> [20241024-1354148](#20241024-1354148).
|
||||
|
||||
### Quickstart
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
package:
|
||||
image: us-docker.pkg.dev/influxdb2-artifacts/clustered/influxdb:202409XX-XXXXXXX
|
||||
```
|
||||
|
||||
### Highlights
|
||||
20240925-1257864, upgrade to this 20241024-1354148 instead.
|
||||
|
||||
#### Default to partial write semantics
|
||||
|
||||
|
@ -283,6 +253,14 @@ The installation of the Prometheus operator should be handled externally.
|
|||
|
||||
#### Deployment
|
||||
|
||||
- Enable overriding the default CPU and memory resource requests and limits for
|
||||
the Garbage collector and Catalog services.
|
||||
- Remove the Gateway service and implement the newly introduced Core service.
|
||||
- Fix logic related to applying default resource limits for IOx components.
|
||||
- Support [`ResourceQuota`s](https://kubernetes.io/docs/concepts/policy/resource-quotas/)
|
||||
with the `enableDefaultResourceLimits` feature flag. This causes resource
|
||||
limits to be applied even to containers that don't normally have limits
|
||||
applied.
|
||||
- Introduces the `nodeAffinity` and CPU/Memory requests setting for "granite"
|
||||
components. Previously, these settings were only available for core IOx
|
||||
components.
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL binary string functions
|
||||
list_title: Binary string functions
|
||||
description: >
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
menu:
|
||||
influxdb3_clustered:
|
||||
name: Binary string
|
||||
parent: sql-functions
|
||||
weight: 308
|
||||
|
||||
source: /content/shared/sql-reference/functions/binary-string.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content of this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/binary-string.md
|
||||
-->
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL hashing functions
|
||||
list_title: Hashing functions
|
||||
description: >
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
menu:
|
||||
influxdb3_clustered:
|
||||
name: Hashing
|
||||
parent: sql-functions
|
||||
weight: 309
|
||||
|
||||
source: /shared/sql-reference/functions/hashing.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content for this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/hashing.md
|
||||
-->
|
|
@ -10,19 +10,21 @@ menu:
|
|||
parent: Operators
|
||||
weight: 302
|
||||
list_code_example: |
|
||||
| Operator | Meaning | Example |
|
||||
| :------: | :------------------------------------------------------- | :---------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
| Operator | Meaning | Example |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
|
||||
source: /content/shared/sql-reference/operators/comparison.md
|
||||
---
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL binary string functions
|
||||
list_title: Binary string functions
|
||||
description: >
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
menu:
|
||||
influxdb3_core:
|
||||
name: Binary string
|
||||
parent: sql-functions
|
||||
weight: 308
|
||||
|
||||
source: /content/shared/sql-reference/functions/binary-string.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content of this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/binary-string.md
|
||||
-->
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL hashing functions
|
||||
list_title: Hashing functions
|
||||
description: >
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
menu:
|
||||
influxdb3_core:
|
||||
name: Hashing
|
||||
parent: sql-functions
|
||||
weight: 309
|
||||
|
||||
source: /shared/sql-reference/functions/hashing.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content for this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/hashing.md
|
||||
-->
|
|
@ -10,19 +10,21 @@ menu:
|
|||
parent: Operators
|
||||
weight: 302
|
||||
list_code_example: |
|
||||
| Operator | Meaning | Example |
|
||||
| :------: | :------------------------------------------------------- | :---------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
| Operator | Meaning | Example |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
|
||||
source: /content/shared/sql-reference/operators/comparison.md
|
||||
---
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL binary string functions
|
||||
list_title: Binary string functions
|
||||
description: >
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
menu:
|
||||
influxdb3_enterprise:
|
||||
name: Binary string
|
||||
parent: sql-functions
|
||||
weight: 308
|
||||
|
||||
source: /content/shared/sql-reference/functions/binary-string.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content of this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/binary-string.md
|
||||
-->
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: SQL hashing functions
|
||||
list_title: Hashing functions
|
||||
description: >
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
menu:
|
||||
influxdb3_enterprise:
|
||||
name: Hashing
|
||||
parent: sql-functions
|
||||
weight: 309
|
||||
|
||||
source: /shared/sql-reference/functions/hashing.md
|
||||
---
|
||||
|
||||
<!--
|
||||
The content for this page is at
|
||||
// SOURCE /content/shared/sql-reference/functions/hashing.md
|
||||
-->
|
|
@ -10,19 +10,21 @@ menu:
|
|||
parent: Operators
|
||||
weight: 302
|
||||
list_code_example: |
|
||||
| Operator | Meaning | Example |
|
||||
| :------: | :------------------------------------------------------- | :---------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
| Operator | Meaning | Example |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------- |
|
||||
| `=` | Equal to | `123 = 123` |
|
||||
| `<>` | Not equal to | `123 <> 456` |
|
||||
| `!=` | Not equal to | `123 != 456` |
|
||||
| `>` | Greater than | `3 > 2` |
|
||||
| `>=` | Greater than or equal to | `3 >= 2` |
|
||||
| `<` | Less than | `1 < 2` |
|
||||
| `<=` | Less than or equal to | `1 <= 2` |
|
||||
| `IS DISTINCT FROM` | Is distinct from | `0 IS DISTINCT FROM 1` |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | `0 IS NOT DISTINCT FROM 1` |
|
||||
| `~` | Matches a regular expression | `'abc' ~ 'a.*'` |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | `'Abc' ~* 'A.*'` |
|
||||
| `!~` | Does not match a regular expression | `'abc' !~ 'd.*'` |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | `'Abc' !~* 'a.*'` |
|
||||
|
||||
source: /content/shared/sql-reference/operators/comparison.md
|
||||
---
|
||||
|
|
|
@ -12,11 +12,14 @@ aggregate value.
|
|||
- [bool_or](#bool_or)
|
||||
- [count](#count)
|
||||
- [first_value](#first_value)
|
||||
- [grouping](#grouping)
|
||||
- [last_value](#last_value)
|
||||
- [max](#max)
|
||||
- [mean](#mean)
|
||||
- [median](#median)
|
||||
- [min](#min)
|
||||
- [nth_value](#nth_value)
|
||||
- [string_agg](#string_agg)
|
||||
- [sum](#sum)
|
||||
- [Statistical aggregate functions](#statistical-aggregate-functions)
|
||||
- [corr](#corr)
|
||||
|
@ -37,7 +40,9 @@ aggregate value.
|
|||
- [stddev_samp](#stddev_samp)
|
||||
- [var](#var)
|
||||
- [var_pop](#var_pop)
|
||||
- [var_population](#var_population)
|
||||
- [var_samp](#var_samp)
|
||||
- [var_sample](#var_sample)
|
||||
- [Approximate aggregate functions](#approximate-aggregate-functions)
|
||||
- [approx_distinct](#approx_distinct)
|
||||
- [approx_median](#approx_median)
|
||||
|
@ -57,11 +62,14 @@ aggregate value.
|
|||
- [bool_or](#bool_or)
|
||||
- [count](#count)
|
||||
- [first_value](#first_value)
|
||||
- [grouping](#grouping)
|
||||
- [last_value](#last_value)
|
||||
- [max](#max)
|
||||
- [mean](#mean)
|
||||
- [median](#median)
|
||||
- [min](#min)
|
||||
- [nth_value](#nth_value)
|
||||
- [string_agg](#string_agg)
|
||||
- [sum](#sum)
|
||||
|
||||
### array_agg
|
||||
|
@ -69,9 +77,8 @@ aggregate value.
|
|||
Returns an array created from the expression elements.
|
||||
|
||||
> [!Note]
|
||||
> `array_agg` returns a `LIST` arrow type which is not supported by InfluxDB.
|
||||
> To use with InfluxDB, use bracket notation to reference the index of an element
|
||||
> in the returned array. Arrays are 1-indexed.
|
||||
> `array_agg` returns a `LIST` arrow type. Use bracket notation to reference the
|
||||
> index of an element in the returned array. Arrays are 1-indexed.
|
||||
|
||||
```sql
|
||||
array_agg(expression)
|
||||
|
@ -85,8 +92,7 @@ array_agg(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `array_agg` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in the
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -124,18 +130,22 @@ avg(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `avg` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
avg(water_level) AS water_level_avg
|
||||
FROM h2o_feet
|
||||
avg(precip) AS avg_precip
|
||||
FROM weather
|
||||
GROUP BY location
|
||||
```
|
||||
|
||||
| location | water_level_avg |
|
||||
| :----------- | -----------------: |
|
||||
| coyote_creek | 5.359142420303919 |
|
||||
| santa_monica | 3.5307120942458843 |
|
||||
| location | avg_precip |
|
||||
| :------------ | -------------------: |
|
||||
| Concord | 0.027120658135283374 |
|
||||
| Hayward | 0.03708029197080292 |
|
||||
| San Francisco | 0.03750912408759125 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -397,6 +407,45 @@ GROUP BY location
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### grouping
|
||||
|
||||
Returns 1 if the data is aggregated across the specified column, or 0 if it is
|
||||
not aggregated in the result set.
|
||||
|
||||
```sql
|
||||
grouping(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: Expression to evaluate whether data is aggregated across the
|
||||
specified column. Can be a constant, column, or function.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `grouping` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
avg(temp_max) AS avg_max_temp,
|
||||
grouping(location) AS grouping
|
||||
FROM weather
|
||||
GROUP BY GROUPING SETS ((location), ())
|
||||
```
|
||||
|
||||
| location | avg_max_temp | grouping |
|
||||
| :------------ | ----------------: | -------: |
|
||||
| Concord | 75.54379562043796 | 0 |
|
||||
| Hayward | 69.12043795620438 | 0 |
|
||||
| San Francisco | 67.59945255474453 | 0 |
|
||||
| | 70.75456204379562 | 1 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### last_value
|
||||
|
||||
Returns the last element in an aggregation group according to the specified ordering.
|
||||
|
@ -453,18 +502,22 @@ _To return both the maximum value and its associated timestamp, use
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `max` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
max(water_level) AS water_level_max
|
||||
FROM h2o_feet
|
||||
max(precip) AS max_precip
|
||||
FROM weather
|
||||
GROUP BY location
|
||||
```
|
||||
|
||||
| location | water_level_max |
|
||||
| :----------- | --------------: |
|
||||
| santa_monica | 7.205 |
|
||||
| coyote_creek | 9.964 |
|
||||
| location | max_precip |
|
||||
| :------------ | ---------: |
|
||||
| Concord | 4.53 |
|
||||
| Hayward | 4.34 |
|
||||
| San Francisco | 4.02 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -489,18 +542,22 @@ median(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `median` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
median(water_level) AS water_level_max
|
||||
FROM h2o_feet
|
||||
median(temp_avg) AS median_temp_avg
|
||||
FROM weather
|
||||
GROUP BY location
|
||||
```
|
||||
|
||||
| location | water_level_median |
|
||||
| :----------- | -----------------: |
|
||||
| coyote_creek | 5.4645 |
|
||||
| santa_monica | 3.471 |
|
||||
| location | median_temp_avg |
|
||||
| :------------ | --------------: |
|
||||
| Concord | 61.0 |
|
||||
| Hayward | 59.0 |
|
||||
| San Francisco | 58.0 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -524,18 +581,103 @@ _To return both the minimum value and its associated timestamp, use
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `min` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
min(water_level) AS water_level_min
|
||||
FROM h2o_feet
|
||||
min(temp_min) AS min_temp_min
|
||||
FROM weather
|
||||
GROUP BY location
|
||||
```
|
||||
|
||||
| location | water_level_min |
|
||||
| :----------- | --------------: |
|
||||
| coyote_creek | -0.61 |
|
||||
| santa_monica | -0.243 |
|
||||
| location | min_temp_min |
|
||||
| :------------ | -----------: |
|
||||
| Concord | 28.0 |
|
||||
| Hayward | 32.0 |
|
||||
| San Francisco | 35.0 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### nth_value
|
||||
|
||||
Returns the nth value in a group of values.
|
||||
|
||||
```sql
|
||||
nth_value(expression, n [ORDER BY order_expression_1, ... order_expression_n])
|
||||
```
|
||||
|
||||
##### arguments
|
||||
|
||||
- **expression**: The column or expression to retrieve the nth value from.
|
||||
- **n**: The position (nth) of the value to retrieve, based on the ordering.
|
||||
- **order_expression_1, ... order_expression_n**: Expressions to order by.
|
||||
Can be a column or function, and any combination of arithmetic operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `nth_value` query example" %}}
|
||||
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
room,
|
||||
nth_value(temp, 3 ORDER BY time) AS "3rd_temp"
|
||||
FROM
|
||||
home
|
||||
GROUP BY
|
||||
room
|
||||
```
|
||||
|
||||
| room | 3rd_temp |
|
||||
| :---------- | -------: |
|
||||
| Living Room | 21.8 |
|
||||
| Kitchen | 22.7 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### string_agg
|
||||
|
||||
Concatenates the values of string expressions and places separator values between them.
|
||||
|
||||
```sql
|
||||
string_agg(expression, delimiter)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: The string expression to concatenate.
|
||||
Can be a column or any valid string expression.
|
||||
- **delimiter**: A literal string to use as a separator between the concatenated
|
||||
values.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `string_agg` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
string_agg(temp_avg::STRING, ', ') AS string_agg
|
||||
FROM
|
||||
weather
|
||||
WHERE
|
||||
time > '2020-01-01T00:00:00Z'
|
||||
AND time < '2020-01-05T00:00:00Z'
|
||||
GROUP BY
|
||||
location
|
||||
```
|
||||
|
||||
| location | string_agg |
|
||||
| :------------ | :--------------- |
|
||||
| San Francisco | 54.0, 52.0, 54.0 |
|
||||
| Hayward | 51.0, 50.0, 51.0 |
|
||||
| Concord | 53.0, 49.0, 51.0 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -556,18 +698,22 @@ sum(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sum` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather data](/influxdb/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
location,
|
||||
sum(water_level) AS water_level_sum
|
||||
FROM h2o_feet
|
||||
sum(precip) AS total_precip
|
||||
FROM weather
|
||||
GROUP BY location
|
||||
```
|
||||
|
||||
| location | water_level_sum |
|
||||
| :----------- | -----------------: |
|
||||
| santa_monica | 27024.070369358 |
|
||||
| coyote_creek | 40750.918963991004 |
|
||||
| location | total_precip |
|
||||
| :------------ | -----------------: |
|
||||
| Concord | 29.670000000000012 |
|
||||
| Hayward | 40.64 |
|
||||
| San Francisco | 41.110000000000014 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -593,7 +739,9 @@ GROUP BY location
|
|||
- [stddev_samp](#stddev_samp)
|
||||
- [var](#var)
|
||||
- [var_pop](#var_pop)
|
||||
- [var_population](#var_population)
|
||||
- [var_samp](#var_samp)
|
||||
- [var_sample](#var_sample)
|
||||
|
||||
### corr
|
||||
|
||||
|
@ -611,8 +759,7 @@ corr(expression1, expression2)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `corr` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -646,8 +793,7 @@ covar(expression1, expression2)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `covar` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -681,8 +827,7 @@ covar_pop(expression1, expression2)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `covar_pop` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -716,8 +861,7 @@ covar_samp(expression1, expression2)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `covar_samp` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1099,8 +1243,7 @@ stddev(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `stddev` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1134,8 +1277,7 @@ stddev_pop(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `stddev_pop` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1169,8 +1311,7 @@ stddev_samp(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `stddev_samp` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1204,8 +1345,7 @@ var(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `var` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1236,11 +1376,14 @@ var_pop(expression)
|
|||
- **expression**: Expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of arithmetic operators.
|
||||
|
||||
##### Aliases
|
||||
|
||||
- var_population
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `var_pop` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1258,6 +1401,10 @@ GROUP BY room
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### var_population
|
||||
|
||||
_Alias of [var_pop](#var_pop)._
|
||||
|
||||
### var_samp
|
||||
|
||||
Returns the statistical sample variance of a set of numbers.
|
||||
|
@ -1271,11 +1418,14 @@ var_samp(expression)
|
|||
- **expression**: Expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of arithmetic operators.
|
||||
|
||||
##### Aliases
|
||||
|
||||
- var_sample
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `var_samp` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1293,6 +1443,10 @@ GROUP BY room
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
### var_sample
|
||||
|
||||
_Alias of [var_samp](#var_samp)._
|
||||
|
||||
## Approximate aggregate functions
|
||||
|
||||
- [approx_distinct](#approx_distinct)
|
||||
|
@ -1317,8 +1471,7 @@ approx_distinct(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `approx_distinct` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1353,8 +1506,7 @@ approx_median(expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `approx_median` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1394,8 +1546,7 @@ approx_percentile_cont(expression, percentile, centroids)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `approx_percentile_cont` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -1433,8 +1584,7 @@ approx_percentile_cont_with_weight(expression, weight, percentile)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `approx_percentile_cont_with_weight` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
|
|
@ -0,0 +1,68 @@
|
|||
|
||||
Use binary string functions to encode and decode binary string values in
|
||||
SQL queries.
|
||||
|
||||
- [decode](#decode)
|
||||
- [encode](#encode)
|
||||
|
||||
## decode
|
||||
|
||||
Decode binary data from textual representation in string.
|
||||
|
||||
```sql
|
||||
decode(expression, format)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: Expression containing encoded string data.
|
||||
Can be a constant, column, or function, and any combination of string operators.
|
||||
- **format**: Encoding format of the encoded string. Supported formats are:
|
||||
- base64
|
||||
- hex
|
||||
|
||||
##### Related functions
|
||||
|
||||
[encode](#encode)
|
||||
|
||||
## encode
|
||||
|
||||
Encode binary data into a textual representation.
|
||||
|
||||
```sql
|
||||
encode(expression, format)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: Expression containing string or binary data.
|
||||
Can be a constant, column, or function, and any combination of string operators.
|
||||
- **format**: Encoding format to use. Supported formats are:
|
||||
- base64
|
||||
- hex
|
||||
|
||||
##### Related functions
|
||||
|
||||
[decode](#decode)
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `encode` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
encode(location::string, 'hex') AS location_encoded
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_encoded |
|
||||
| :------------ | :------------------------- |
|
||||
| Concord | 436f6e636f7264 |
|
||||
| Hayward | 48617977617264 |
|
||||
| San Francisco | 53616e204672616e636973636f |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
|
@ -5,6 +5,12 @@ functions for conditionally handling _null_ values:
|
|||
- [ifnull](#ifnull)
|
||||
- [nullif](#nullif)
|
||||
- [nvl](#nvl)
|
||||
- [nvl2](#nvl2)
|
||||
|
||||
<!-- Will come with next DataFusion upgrade
|
||||
- [greatest](#greatest)
|
||||
- [least](#least)
|
||||
-->
|
||||
|
||||
## coalesce
|
||||
|
||||
|
@ -50,10 +56,84 @@ FROM
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
<!--
|
||||
## greatest
|
||||
|
||||
Returns the greatest value in a list of expressions.
|
||||
Returns _null_ if all expressions are _null_.
|
||||
|
||||
```sql
|
||||
greatest(expression1[, ..., expression_n])
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression1, expression_n**: Expressions to compare and return the greatest value.
|
||||
Can be a constant, column, or function, and any combination of arithmetic operators.
|
||||
Pass as many expression arguments as necessary.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `greatest` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[Random numbers sample dataset](/influxdb/version/reference/sample-data/#random-numbers-sample-data)._
|
||||
|
||||
```sql
|
||||
SELECT greatest(a, b) AS greatest FROM numbers LIMIT 4
|
||||
```
|
||||
|
||||
| time | greatest |
|
||||
| ------------------- | ------------------: |
|
||||
| 2023-01-01T00:02:00 | -0.482943221384294 |
|
||||
| 2023-01-01T00:03:00 | -0.0729732928756677 |
|
||||
| 2023-01-01T00:04:00 | 1.77857552719844 |
|
||||
| 2023-01-01T00:05:00 | 0.741147445214238 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
-->
|
||||
|
||||
## ifnull
|
||||
|
||||
_Alias of [nvl](#nvl)._
|
||||
|
||||
<!--
|
||||
## least
|
||||
|
||||
Returns the least value in a list of expressions.
|
||||
Returns _null_ if all expressions are _null_.
|
||||
|
||||
```sql
|
||||
least(expression1[, ..., expression_n])
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression1, expression_n**: Expressions to compare and return the least value.
|
||||
Can be a constant, column, or function, and any combination of arithmetic operators.
|
||||
Pass as many expression arguments as necessary.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `least` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[Random numbers sample dataset](/influxdb/version/reference/sample-data/#random-numbers-sample-data)._
|
||||
|
||||
```sql
|
||||
SELECT least(a, b) AS least FROM numbers LIMIT 4
|
||||
```
|
||||
|
||||
| time | least |
|
||||
| ------------------- | -----------------: |
|
||||
| 2023-01-01T00:02:00 | -0.921037167720451 |
|
||||
| 2023-01-01T00:03:00 | -0.73880754843378 |
|
||||
| 2023-01-01T00:04:00 | -0.905980032168252 |
|
||||
| 2023-01-01T00:05:00 | -0.891164752631417 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
-->
|
||||
|
||||
## nullif
|
||||
|
||||
Returns _null_ if _expression1_ equals _expression2_; otherwise it returns _expression1_.
|
||||
|
@ -130,3 +210,45 @@ FROM
|
|||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## nvl2
|
||||
|
||||
Returns _expression2_ if _expression1_ is **not** _null_; otherwise it returns _expression3_.
|
||||
|
||||
```sql
|
||||
nvl2(expression1, expression2, expression3)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression1**: First expression to test for _null_.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **expression2**: Second expression to return if _expression1_ is not _null_.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **expression3**: Expression to return if _expression1_ is _null_.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `nvl2` query example" %}}
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
val1,
|
||||
val2,
|
||||
val3,
|
||||
nvl2(val1, val2, val3) AS nvl2
|
||||
FROM
|
||||
(values ('foo', 'bar', 'baz'),
|
||||
(NULL, 'bar', 'baz'),
|
||||
(NULL, NULL, 'baz'),
|
||||
) data(val1, val2, val3)
|
||||
```
|
||||
|
||||
| val1 | val2 | val3 | nvl2 |
|
||||
| :--: | :--: | :--: | :--: |
|
||||
| foo | bar | baz | bar |
|
||||
| | bar | baz | baz |
|
||||
| | | baz | baz |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
|
|
@ -0,0 +1,231 @@
|
|||
|
||||
Use hashing functions to hash string values in SQL queries using established
|
||||
hashing algorithms.
|
||||
|
||||
- [digest](#digest)
|
||||
- [md5](#md5)
|
||||
- [sha224](#sha224)
|
||||
- [sha256](#sha256)
|
||||
- [sha384](#sha384)
|
||||
- [sha512](#sha512)
|
||||
|
||||
## digest
|
||||
|
||||
Computes the binary hash of an expression using the specified algorithm.
|
||||
|
||||
```sql
|
||||
digest(expression, algorithm)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **algorithm**: String expression specifying algorithm to use.
|
||||
Must be one of the following:
|
||||
|
||||
- md5
|
||||
- sha224
|
||||
- sha256
|
||||
- sha384
|
||||
- sha512
|
||||
- blake2s
|
||||
- blake2b
|
||||
- blake3
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `digest` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
digest(location, 'sha256') AS location_digest
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_digest |
|
||||
| :------------ | :--------------------------------------------------------------- |
|
||||
| Concord | 21e60acfb20fca2e38c5e51191d44235949de045912dca77e978333c1ec965a2 |
|
||||
| Hayward | 5d5b651a71084f3117cca3381ff7102efbc318c2026e1d09d5d4707354883102 |
|
||||
| San Francisco | 5aa34886f7f3741de8460690b636f4c8b7c2044df88e2e8adbb4f7e6f8534931 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## md5
|
||||
|
||||
Computes an MD5 128-bit checksum for a string expression.
|
||||
|
||||
```sql
|
||||
md5(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `md5` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
md5(location) AS location_md5
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_md5 |
|
||||
| :------------ | :------------------------------- |
|
||||
| Concord | 7c6a8e5769c20331e6a1b93a44021dbc |
|
||||
| Hayward | 5823ccc25b256955c4e97cb4a23865ee |
|
||||
| San Francisco | f4334fdfa1c728eae375fe781e2e2d9d |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## sha224
|
||||
|
||||
Computes the SHA-224 hash of a binary string.
|
||||
|
||||
```sql
|
||||
sha224(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sha224` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
sha224(location) AS location_sha224
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_sha224 |
|
||||
| :------------ | :------------------------------------------------------- |
|
||||
| Concord | 3f6c0456de97d3d752672161db8e6f0df115979460a2276d64386114 |
|
||||
| Hayward | 767cfab6a1562e54f6906c8b5c9ee64583caa3f4b6c37a4298a7639f |
|
||||
| San Francisco | f723898f95bd53cdaf9c057b6f2cf0537b29e0bff077dabb39059b76 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## sha256
|
||||
|
||||
Computes the SHA-256 hash of a binary string.
|
||||
|
||||
```sql
|
||||
sha256(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sha256` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
sha256(location) AS location_sha256
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_sha256 |
|
||||
| :------------ | :--------------------------------------------------------------- |
|
||||
| Concord | 21e60acfb20fca2e38c5e51191d44235949de045912dca77e978333c1ec965a2 |
|
||||
| Hayward | 5d5b651a71084f3117cca3381ff7102efbc318c2026e1d09d5d4707354883102 |
|
||||
| San Francisco | 5aa34886f7f3741de8460690b636f4c8b7c2044df88e2e8adbb4f7e6f8534931 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## sha384
|
||||
|
||||
Computes the SHA-384 hash of a binary string.
|
||||
|
||||
```sql
|
||||
sha384(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sha384` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
sha384(location) AS location_sha384
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_sha384 |
|
||||
| :------------ | :----------------------------------------------------------------------------------------------- |
|
||||
| Concord | 19bf5ba95a6c4a28d2a997fa4e03e542d24b111593395b587a3b357af50cc687364f27b4e96935c234e2ae69236c7883 |
|
||||
| Hayward | 8b034ee0f7c8d191e145002722bf296a7f310f455458b9ffdbafcb2da2e2300d0f1e7868c6b1d512c81ae0c055979abd |
|
||||
| San Francisco | 15c0c4a0e80f198e922235ee30a5c2b1e288c88f61bfc55ef9723903a0e948a7de04b65aa35b4ba46251b90460bab625 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## sha512
|
||||
|
||||
Computes the SHA-512 hash of a binary string.
|
||||
|
||||
```sql
|
||||
sha512(expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sha512` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
location,
|
||||
sha512(location) AS location_sha512
|
||||
FROM weather
|
||||
```
|
||||
|
||||
| location | location_sha512 |
|
||||
| :------------ | :------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Concord | 227e28fd661eebb39b10f49728d17b03e3a1f0cc2d2a413a9f124292d77249a2c0d7cf99941fd3d2eabea1b2894698bbd12c2cf3a7137ec67fca221ee57e0ca7 |
|
||||
| Hayward | 2db79fba2fc2888f9826d95ce6bb2605d95b841da61f049e8a92467de0d6ec3161f3919275208a3c385f6412d7848bfc957e81cde550f4f28cd834a332381142 |
|
||||
| San Francisco | 4c84f24d166978fb59d77779bf9a54ac112cba8e5f826c50440b2d3063fa0cbb0e2ccd30c93261a0f96805f71d15c3e726c9e00426161880e6a5dad267b2d883 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
|
@ -13,6 +13,7 @@ performing mathematic operations:
|
|||
- [ceil](#ceil)
|
||||
- [cos](#cos)
|
||||
- [cosh](#cosh)
|
||||
- [cot](#cot)
|
||||
- [degrees](#degrees)
|
||||
- [exp](#exp)
|
||||
- [factorial](#factorial)
|
||||
|
@ -56,8 +57,7 @@ abs(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `abs` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT abs(temp) AS abs FROM home LIMIT 3
|
||||
|
@ -88,8 +88,7 @@ acos(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `acos` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT acos(temp * .01) AS acos FROM home LIMIT 3
|
||||
|
@ -120,8 +119,7 @@ acosh(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `acosh` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT acosh(temp) AS acosh FROM home LIMIT 3
|
||||
|
@ -152,8 +150,7 @@ asin(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `asin` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT asin(temp * .01) AS asin FROM home LIMIT 3
|
||||
|
@ -184,8 +181,7 @@ asinh(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `asinh` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT asinh(temp) AS asinh FROM home LIMIT 3
|
||||
|
@ -216,8 +212,7 @@ atan(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `atan` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT atan(temp * .01) AS atan FROM home LIMIT 3
|
||||
|
@ -248,8 +243,7 @@ atanh(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `atanh` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT atanh(temp * .01) AS atanh FROM home LIMIT 3
|
||||
|
@ -282,8 +276,7 @@ atan2(expression_y, expression_x)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `atan2` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT atan2(temp, hum) AS atan2 FROM home LIMIT 3
|
||||
|
@ -314,8 +307,7 @@ cbrt(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `cbrt` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT cbrt(temp) AS cbrt FROM home LIMIT 3
|
||||
|
@ -346,8 +338,7 @@ ceil(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `ceil` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT ceil(temp) AS ceil FROM home LIMIT 3
|
||||
|
@ -378,8 +369,7 @@ cos(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `cos` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT cos(temp) AS cos FROM home LIMIT 3
|
||||
|
@ -410,8 +400,7 @@ cosh(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `cosh` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT cosh(temp) AS cosh FROM home LIMIT 3
|
||||
|
@ -426,6 +415,38 @@ SELECT cosh(temp) AS cosh FROM home LIMIT 3
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## cot
|
||||
|
||||
Returns the cotangent of a number.
|
||||
|
||||
```sql
|
||||
cot(numeric_expression)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **numeric_expression**: Numeric expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `cot` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[Random numbers sample dataset](/influxdb/version/reference/sample-data/#random-numbers-sample-data)._
|
||||
|
||||
```sql
|
||||
SELECT cot(a) AS cot FROM numbers LIMIT 3
|
||||
```
|
||||
|
||||
| cot |
|
||||
| -----------------: |
|
||||
| 2.9293528483724423 |
|
||||
| 3.705570308335524 |
|
||||
| -3.314652247498361 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## degrees
|
||||
|
||||
Converts radians to degrees.
|
||||
|
@ -474,8 +495,7 @@ exp(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `exp` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT exp(temp) AS exp FROM home LIMIT 3
|
||||
|
@ -539,8 +559,7 @@ floor(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `floor` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT floor(temp) AS floor FROM home LIMIT 3
|
||||
|
@ -722,8 +741,7 @@ ln(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `ln` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT ln(temp) AS ln FROM home LIMIT 3
|
||||
|
@ -758,7 +776,7 @@ log([base, ]numeric_expression)
|
|||
{{% expand "View `log` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in the
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
{{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -795,8 +813,7 @@ log10(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `log10` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT log10(temp) AS log10 FROM home LIMIT 3
|
||||
|
@ -827,8 +844,7 @@ log2(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `log2` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT log2(temp) AS log2 FROM home LIMIT 3
|
||||
|
@ -928,8 +944,7 @@ power(base, exponent)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `power` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT power(temp, hum * .1) AS power FROM home LIMIT 3
|
||||
|
@ -992,8 +1007,7 @@ random()
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `random` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT temp * random() AS random FROM home LIMIT 3
|
||||
|
@ -1027,8 +1041,7 @@ round(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `round` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT round(temp) AS round FROM home LIMIT 3
|
||||
|
@ -1061,8 +1074,7 @@ signum(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `signum` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT signum(temp - 23) AS signum FROM home LIMIT 3
|
||||
|
@ -1093,8 +1105,7 @@ sin(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sin` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT sin(temp) AS sin FROM home LIMIT 3
|
||||
|
@ -1125,8 +1136,7 @@ sinh(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sinh ` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT sinh(temp) AS sinh FROM home LIMIT 3
|
||||
|
@ -1157,8 +1167,7 @@ sqrt(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `sqrt` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT sqrt(temp) AS sqrt FROM home LIMIT 3
|
||||
|
@ -1189,8 +1198,7 @@ tan(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `tan` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT tan(temp) AS tan FROM home LIMIT 3
|
||||
|
@ -1253,8 +1261,7 @@ trunc(numeric_expression)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `trunc` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{ influxdb3/home-sample-link }}._
|
||||
|
||||
```sql
|
||||
SELECT trunc(temp) AS trunc FROM home LIMIT 3
|
||||
|
|
|
@ -5,6 +5,7 @@ for performing a variety of operations:
|
|||
- [arrow_typeof](#arrow_typeof)
|
||||
- [interpolate](#interpolate)
|
||||
- [locf](#locf)
|
||||
- [version](#version)
|
||||
<!-- - [struct](#struct) -->
|
||||
|
||||
## arrow_cast
|
||||
|
@ -232,3 +233,11 @@ struct('A', 'B', 3, 4)
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
-->
|
||||
|
||||
## version
|
||||
|
||||
Returns the version of DataFusion.
|
||||
|
||||
```sql
|
||||
version()
|
||||
```
|
||||
|
|
|
@ -4,10 +4,55 @@ regular expression [syntax](https://docs.rs/regex/latest/regex/#syntax)
|
|||
(excluding some features such as look-around and back-references) and supports
|
||||
the following regular expression functions:
|
||||
|
||||
- [regexp_count](#regexp_count)
|
||||
- [regexp_like](#regexp_like)
|
||||
- [regexp_match](#regexp_match)
|
||||
- [regexp_replace](#regexp_replace)
|
||||
|
||||
## regexp_count
|
||||
|
||||
Returns the number of matches that a regular expression has in a string.
|
||||
|
||||
```sql
|
||||
regexp_count(str, regexp[, start, flags])
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **str**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **regexp**: Regular expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **start**: Optional start position (the first position is 1) to search for the regular expression.
|
||||
Can be a constant, column, or function.
|
||||
- **flags**: Optional regular expression flags that control the behavior of the
|
||||
regular expression. The following flags are supported:
|
||||
- **i**: (insensitive) Ignore case when matching.
|
||||
- **m**: (multi-line) `^` and `$` match the beginning and end of a line, respectively.
|
||||
- **s**: (single-line) `.` matches newline (`\n`).
|
||||
- **R**: (CRLF) When multi-line mode is enabled, `\r\n` is used to delimit lines.
|
||||
- **U**: (ungreedy) Swap the meaning of `x*` and `x*?`.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `regexp_count` query example" %}}
|
||||
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
room,
|
||||
regexp_count(room::STRING, '[Ro]', 1, 'i') AS regexp_count
|
||||
FROM home
|
||||
```
|
||||
|
||||
| room | regexp_count |
|
||||
| :---------- | -----------: |
|
||||
| Kitchen | 0 |
|
||||
| Living Room | 3 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## regexp_like
|
||||
|
||||
True if a regular expression has at least one match in a string;
|
||||
|
@ -34,8 +79,7 @@ regexp_like(str, regexp[, flags])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `regexp_like` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -73,11 +117,10 @@ regexp_match(str, regexp, flags)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `regexp_match` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
> [!Note]
|
||||
> `regexp_match` returns a _list_ Arrow type, which is not supported by InfluxDB.
|
||||
> `regexp_match` returns a _list_ Arrow type.
|
||||
> Use _bracket notation_ to reference a value in the list.
|
||||
> Lists use 1-based indexing.
|
||||
|
||||
|
@ -120,8 +163,7 @@ regexp_replace(str, regexp, replacement, flags)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `regexp_replace` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
|
|
@ -72,16 +72,25 @@ selector_min(expression, timestamp)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `selector_min` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
selector_min(water_level, time)['time'] AS time,
|
||||
selector_min(water_level, time)['value'] AS water_level
|
||||
FROM h2o_feet
|
||||
SELECT
|
||||
location,
|
||||
selector_min(temp_min, time)['time'] AS time,
|
||||
selector_min(temp_min, time)['value'] AS min_temp
|
||||
FROM
|
||||
weather
|
||||
GROUP BY
|
||||
location
|
||||
```
|
||||
|
||||
| time | water_level |
|
||||
| :------------------- | ----------: |
|
||||
| 2019-08-28T14:30:00Z | -0.61 |
|
||||
| location | time | min_temp |
|
||||
+---------------+---------------------+----------+
|
||||
| Concord | 2022-01-02T00:00:00 | 28.0 |
|
||||
| Hayward | 2021-01-26T00:00:00 | 32.0 |
|
||||
| San Francisco | 2022-01-02T00:00:00 | 35.0 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -105,16 +114,25 @@ selector_max(expression, timestamp)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `selector_max` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
selector_max(water_level, time)['time'] AS time,
|
||||
selector_max(water_level, time)['value'] AS water_level
|
||||
FROM h2o_feet
|
||||
SELECT
|
||||
location,
|
||||
selector_max(temp_max, time)['time'] AS time,
|
||||
selector_max(temp_max, time)['value'] AS max_temp
|
||||
FROM
|
||||
weather
|
||||
GROUP BY
|
||||
location
|
||||
```
|
||||
|
||||
| time | water_level |
|
||||
| :------------------- | ----------: |
|
||||
| 2019-08-28T07:24:00Z | 9.964 |
|
||||
| location | time | max_temp |
|
||||
| :------------ | :------------------ | -------: |
|
||||
| Concord | 2020-09-07T00:00:00 | 112.0 |
|
||||
| Hayward | 2022-09-06T00:00:00 | 107.0 |
|
||||
| San Francisco | 2020-09-06T00:00:00 | 102.0 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -138,16 +156,25 @@ selector_first(expression, timestamp)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `selector_first` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
selector_first(water_level, time)['time'] AS time,
|
||||
selector_first(water_level, time)['value'] AS water_level
|
||||
FROM h2o_feet
|
||||
SELECT
|
||||
location,
|
||||
selector_first(precip, time)['time'] AS time,
|
||||
selector_first(precip, time)['value'] AS first_precip
|
||||
FROM
|
||||
(SELECT * FROM weather WHERE precip > 0)
|
||||
GROUP BY
|
||||
location
|
||||
```
|
||||
|
||||
| time | water_level |
|
||||
| :------------------- | ----------: |
|
||||
| 2019-08-28T07:24:00Z | 9.964 |
|
||||
| location | time | first_precip |
|
||||
| :------------ | :------------------ | -----------: |
|
||||
| Concord | 2020-01-08T00:00:00 | 0.01 |
|
||||
| Hayward | 2020-01-09T00:00:00 | 0.17 |
|
||||
| San Francisco | 2020-01-07T00:00:00 | 0.03 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
@ -171,16 +198,25 @@ selector_last(expression, timestamp)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `selector_last` query example" %}}
|
||||
|
||||
_The following example uses the
|
||||
[NOAA Bay Area weather sample data](/influxdb3/version/reference/sample-data/#noaa-bay-area-weather-data)._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
selector_last(water_level, time)['time'] AS time,
|
||||
selector_last(water_level, time)['value'] AS water_level
|
||||
FROM h2o_feet
|
||||
SELECT
|
||||
location,
|
||||
selector_last(precip, time)['time'] AS time,
|
||||
selector_last(precip, time)['value'] AS last_precip
|
||||
FROM
|
||||
(SELECT * FROM weather WHERE precip > 0)
|
||||
GROUP BY
|
||||
location
|
||||
```
|
||||
|
||||
| time | water_level |
|
||||
| :------------------- | ----------: |
|
||||
| 2019-09-17T21:42:00Z | 4.938 |
|
||||
| location | time | last_precip |
|
||||
| :------------ | :------------------ | ----------: |
|
||||
| Concord | 2022-12-31T00:00:00 | 3.04 |
|
||||
| Hayward | 2022-12-31T00:00:00 | 4.34 |
|
||||
| San Francisco | 2022-12-31T00:00:00 | 3.67 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
|
|
@ -6,9 +6,10 @@ operating on string values:
|
|||
- [btrim](#btrim)
|
||||
- [char_length](#char_length)
|
||||
- [character_length](#character_length)
|
||||
- [chr](#chr)
|
||||
- [concat](#concat)
|
||||
- [concat_ws](#concat_ws)
|
||||
- [chr](#chr)
|
||||
- [contains](#contains)
|
||||
- [ends_with](#ends_with)
|
||||
- [find_in_set](#find_in_set)
|
||||
- [initcap](#initcap)
|
||||
|
@ -19,7 +20,6 @@ operating on string values:
|
|||
- [lower](#lower)
|
||||
- [lpad](#lpad)
|
||||
- [ltrim](#ltrim)
|
||||
- [md5](#md5)
|
||||
- [octet_length](#octet_length)
|
||||
- [overlay](#overlay)
|
||||
- [position](#position)
|
||||
|
@ -34,6 +34,8 @@ operating on string values:
|
|||
- [strpos](#strpos)
|
||||
- [substr](#substr)
|
||||
- [substr_index](#substr_index)
|
||||
- [substring](#substring)
|
||||
- [substring_index](#substring_index)
|
||||
- [to_hex](#to_hex)
|
||||
- [translate](#translate)
|
||||
- [trim](#trim)
|
||||
|
@ -64,8 +66,7 @@ ascii(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `ascii` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -106,8 +107,7 @@ bit_length(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `bit_length` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -151,8 +151,7 @@ btrim(str[, trim_str])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `btrim` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -177,6 +176,47 @@ _Alias of [length](#length)._
|
|||
|
||||
_Alias of [length](#length)._
|
||||
|
||||
## chr
|
||||
|
||||
Returns the character with the specified ASCII or Unicode code value.
|
||||
|
||||
```
|
||||
chr(expression)
|
||||
```
|
||||
|
||||
#### Arguments
|
||||
|
||||
- **expression**: Expression containing the ASCII or Unicode code value to operate on.
|
||||
Can be a constant, column, or function, and any combination of arithmetic or
|
||||
string operators.
|
||||
|
||||
##### Related functions
|
||||
|
||||
[ascii](#ascii)
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `chr` query example" %}}
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
ascii,
|
||||
chr(ascii) AS chr
|
||||
FROM
|
||||
(values (112),
|
||||
(75),
|
||||
(214)
|
||||
) data(ascii)
|
||||
```
|
||||
|
||||
| ascii | chr |
|
||||
| :---- | :-: |
|
||||
| 112 | p |
|
||||
| 75 | K |
|
||||
| 214 | Ö |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## concat
|
||||
|
||||
Concatenates multiple strings together.
|
||||
|
@ -198,8 +238,7 @@ concat(str[, ..., str_n])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `concat` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -244,8 +283,7 @@ concat_ws(separator, str[, ..., str_n])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `concat_ws` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
@ -267,46 +305,19 @@ LIMIT 3
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## chr
|
||||
## contains
|
||||
|
||||
Returns the character with the specified ASCII or Unicode code value.
|
||||
|
||||
```
|
||||
chr(expression)
|
||||
```
|
||||
|
||||
#### Arguments
|
||||
|
||||
- **expression**: Expression containing the ASCII or Unicode code value to operate on.
|
||||
Can be a constant, column, or function, and any combination of arithmetic or
|
||||
string operators.
|
||||
|
||||
##### Related functions
|
||||
|
||||
[ascii](#ascii)
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `chr` query example" %}}
|
||||
Returns true if a string contains a search string (case-sensitive).
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
ascii,
|
||||
chr(ascii) AS chr
|
||||
FROM
|
||||
(values (112),
|
||||
(75),
|
||||
(214)
|
||||
) data(ascii)
|
||||
contains(str, search_str)
|
||||
```
|
||||
|
||||
| ascii | chr |
|
||||
| :---- | :-: |
|
||||
| 112 | p |
|
||||
| 75 | K |
|
||||
| 214 | Ö |
|
||||
##### Arguments
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
- **str**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of operators.
|
||||
- **search_str**: The string to search for in _str_.
|
||||
|
||||
## ends_with
|
||||
|
||||
|
@ -486,8 +497,7 @@ left(str, n)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `left` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -534,8 +544,7 @@ length(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `length` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -612,8 +621,7 @@ lower(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `lower` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -654,8 +662,7 @@ lpad(str, n[, padding_str])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `lpad` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -714,40 +721,6 @@ FROM
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## md5
|
||||
|
||||
Computes an MD5 128-bit checksum for a string expression.
|
||||
|
||||
```sql
|
||||
md5(str)
|
||||
```
|
||||
|
||||
##### Arguments
|
||||
|
||||
- **expression**: String expression to operate on.
|
||||
Can be a constant, column, or function, and any combination of string operators.
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `md5` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
room,
|
||||
md5(room) AS md5
|
||||
FROM home
|
||||
```
|
||||
|
||||
| room | md5 |
|
||||
| :---------- | :------------------------------- |
|
||||
| Kitchen | 33fa00a66f2edf0d1c5697a9f8693ba8 |
|
||||
| Living Room | f45b0e6aec165544faccaf2cad820542 |
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## octet_length
|
||||
|
||||
Returns the length of a string in bytes.
|
||||
|
@ -773,8 +746,7 @@ octet_length(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `octet_length` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -929,8 +901,7 @@ replace(str, substr, replacement)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `replace` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -963,8 +934,7 @@ reverse(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `reverse` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1002,8 +972,7 @@ right(str, n)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `right` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1044,8 +1013,7 @@ rpad(str, n[, padding_str])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `rpad` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1160,8 +1128,7 @@ starts_with(str, substr)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `starts_with` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1202,8 +1169,7 @@ strpos(str, substr)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `strpos` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1241,8 +1207,7 @@ substr(str, start_pos[, length])
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `substr` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1306,6 +1271,14 @@ FROM
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## substring
|
||||
|
||||
_Alias of [substr](#substr)._
|
||||
|
||||
## substring_index
|
||||
|
||||
_Alias of [substr_index](#substr_index)._
|
||||
|
||||
## translate
|
||||
|
||||
Translates characters in a string to specified translation characters.
|
||||
|
@ -1323,8 +1296,7 @@ translate(str, chars, translation)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `translate` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1440,8 +1412,7 @@ upper(str)
|
|||
{{< expand-wrapper >}}
|
||||
{{% expand "View `upper` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
_The following example uses the {{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT DISTINCT
|
||||
|
@ -1470,7 +1441,7 @@ uuid()
|
|||
{{% expand "View `uuid` query example" %}}
|
||||
|
||||
_The following example uses the sample data set provided in the
|
||||
[Get started with InfluxDB tutorial](/influxdb/version/get-started/write/#construct-line-protocol)._
|
||||
{{< influxdb3/home-sample-link >}}._
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
|
|
|
@ -3,12 +3,14 @@ that are useful when working with time series data.
|
|||
|
||||
- [current_date](#current_date)
|
||||
- [current_time](#current_time)
|
||||
- [current_timestamp](#current_timestamp)
|
||||
- [date_bin](#date_bin)
|
||||
- [date_bin_gapfill](#date_bin_gapfill)
|
||||
- [date_bin_wallclock](#date_bin_wallclock)
|
||||
- [date_bin_wallclock_gapfill](#date_bin_wallclock_gapfill)
|
||||
- [date_trunc](#date_trunc)
|
||||
- [datetrunc](#datetrunc)
|
||||
- [date_format](#date_format)
|
||||
- [date_part](#date_part)
|
||||
- [datepart](#datepart)
|
||||
- [extract](#extract)
|
||||
|
@ -76,10 +78,6 @@ LIMIT 3
|
|||
|
||||
Returns the current UTC time.
|
||||
|
||||
> [!Note]
|
||||
> `current_date` returns a `TIME64` Arrow type, which isn't supported by InfluxDB.
|
||||
> To use with InfluxDB, [cast the return value to a string](/influxdb/version/query-data/sql/cast-types/#cast-to-a-string-type).
|
||||
|
||||
The `current_time()` return value is determined at query time and returns the same time,
|
||||
no matter when in the query plan the function executes.
|
||||
|
||||
|
@ -97,7 +95,7 @@ _The following example uses the sample data set provided in the
|
|||
SELECT
|
||||
time,
|
||||
temp,
|
||||
current_time()::STRING AS current_time
|
||||
current_time() AS current_time
|
||||
FROM home
|
||||
LIMIT 3
|
||||
```
|
||||
|
@ -111,6 +109,10 @@ LIMIT 3
|
|||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
|
||||
## current_timestamp
|
||||
|
||||
_Alias of [now](#now)._
|
||||
|
||||
## date_bin
|
||||
|
||||
Calculates time intervals and returns the start of the interval nearest to the specified timestamp.
|
||||
|
@ -397,7 +399,7 @@ date_bin_wallclock(interval, expression[, origin_timestamp])
|
|||
>
|
||||
> #### Avoid bins in time zone discontinuities
|
||||
>
|
||||
> [Time zone shifts](#time-zone-shifts) result in *discontinuities*–breaks
|
||||
> [Time zone shifts](#time-zone-shifts) result in _discontinuities_–breaks
|
||||
> in the continuity of time intervals (losing an hour or gaining an hour)–that
|
||||
> can result in unexpected timestamps when using `date_bin_wallclock`.
|
||||
> Avoid using an `interval` and `origin_timestamp` combination that results in a
|
||||
|
@ -536,7 +538,7 @@ date_bin_wallclock_gapfill(interval, expression[, origin_timestamp])
|
|||
>
|
||||
> #### Avoid bins in time zone discontinuities
|
||||
>
|
||||
> [Time zone shifts](#time-zone-shifts) result in *discontinuities*–breaks
|
||||
> [Time zone shifts](#time-zone-shifts) result in _discontinuities_–breaks
|
||||
> in the continuity of time intervals (losing an hour or gaining an hour)–that
|
||||
> can result in unexpected timestamps when using `date_bin_wallclock_gapfill`.
|
||||
> Avoid using an `interval` and `origin_timestamp` combination that results in a
|
||||
|
@ -761,6 +763,10 @@ ORDER BY week
|
|||
|
||||
_Alias of [date_trunc](#date_trunc)._
|
||||
|
||||
## date_format
|
||||
|
||||
_Alias of [to_char](#to_char)._
|
||||
|
||||
## date_part
|
||||
|
||||
Returns the specified part of the date as an integer.
|
||||
|
@ -954,6 +960,10 @@ no matter when in the query plan the function executes.
|
|||
now()
|
||||
```
|
||||
|
||||
##### Aliases
|
||||
|
||||
- [current_timestamp](#current_timestamp)
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `now` query example" %}}
|
||||
|
||||
|
@ -993,6 +1003,10 @@ to_char(expression, format)
|
|||
- **format**: [Rust Chrono format string](https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
||||
to use to convert the expression.
|
||||
|
||||
##### Aliases
|
||||
|
||||
- [date_format](#date_format)
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `to_char` query example" %}}
|
||||
|
||||
|
|
|
@ -2,19 +2,23 @@ Comparison operators evaluate the relationship between the left and right
|
|||
operands and returns `true` or `false`.
|
||||
|
||||
|
||||
| Operator | Meaning | |
|
||||
| :------: | :------------------------------------------------------- | :------------------------------------------------------ |
|
||||
| `=` | Equal to | [{{< icon "link" >}}](#equal-to) |
|
||||
| `<>` | Not equal to | [{{< icon "link" >}}](#not-equal-to) |
|
||||
| `!=` | Not equal to | [{{< icon "link" >}}](#not-equal-to) |
|
||||
| `>` | Greater than | [{{< icon "link" >}}](#greater-than) |
|
||||
| `>=` | Greater than or equal to | [{{< icon "link" >}}](#greater-than-or-equal) |
|
||||
| `<` | Less than | [{{< icon "link" >}}](#less-than) |
|
||||
| `<=` | Less than or equal to | [{{< icon "link" >}}](#less-than-or-equal) |
|
||||
| `~` | Matches a regular expression | [{{< icon "link" >}}](#regexp-match) |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-match-case-insensitive) |
|
||||
| `!~` | Does not match a regular expression | [{{< icon "link" >}}](#regexp-nomatch) |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-nomatch-case-insensitive) |
|
||||
| Operator | Meaning | |
|
||||
| :--------------------: | :------------------------------------------------------- | :------------------------------------------------------ |
|
||||
| `=` | Equal to | [{{< icon "link" >}}](#equal-to) |
|
||||
| `<>` | Not equal to | [{{< icon "link" >}}](#not-equal-to) |
|
||||
| `!=` | Not equal to | [{{< icon "link" >}}](#not-equal-to) |
|
||||
| `>` | Greater than | [{{< icon "link" >}}](#greater-than) |
|
||||
| `>=` | Greater than or equal to | [{{< icon "link" >}}](#greater-than-or-equal) |
|
||||
| `<` | Less than | [{{< icon "link" >}}](#less-than) |
|
||||
| `<=` | Less than or equal to | [{{< icon "link" >}}](#less-than-or-equal) |
|
||||
| `IS DISTINCT FROM` | Is distinct from | [{{< icon "link" >}}](#is-distinct-from) |
|
||||
| `IS NOT DISTINCT FROM` | Is not distinct from | [{{< icon "link" >}}](#is-not-distinct-from) |
|
||||
| `~` | Matches a regular expression | [{{< icon "link" >}}](#regexp-match) |
|
||||
| `~*` | Matches a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-match-case-insensitive) |
|
||||
| `!~` | Does not match a regular expression | [{{< icon "link" >}}](#regexp-nomatch) |
|
||||
| `!~*` | Does not match a regular expression _(case-insensitive)_ | [{{< icon "link" >}}](#regexp-nomatch-case-insensitive) |
|
||||
|
||||
<!-- | `<=>` | Three-way comparison _(alias of `IS NOT DISTINCT FROM`)_ | [{{< icon "link" >}}](#three-way-comparison) | -->
|
||||
|
||||
## = {#equal-to .monospace}
|
||||
|
||||
|
@ -169,6 +173,141 @@ SELECT 1 <= 2
|
|||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
## IS DISTINCT FROM {.monospace}
|
||||
|
||||
The `IS DISTINCT FROM` operator is a _NULL_-safe operator that returns
|
||||
`true` if both operands are not equal; otherwise, it returns `false`.
|
||||
This operator guarantees the result of a comparison is `true` or `false` and not
|
||||
an empty set.
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT 0 IS DISTINCT FROM NULL
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| Int64(0) IS DISTINCT FROM NULL |
|
||||
| :----------------------------- |
|
||||
| true |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
## IS NOT DISTINCT FROM {.monospace}
|
||||
|
||||
The `IS NOT DISTINCT FROM` operator is a _NULL_-safe operator that returns
|
||||
`true` if both operands are equal or _NULL_; otherwise, it returns `false`.
|
||||
This operator negates [`IS DISTINCT FROM`](#is-distinct-from).
|
||||
|
||||
<!--
|
||||
##### Aliases
|
||||
|
||||
- [`<=>`](#three-way-comparison)
|
||||
-->
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT NULL IS NOT DISTINCT FROM NULL
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| NULL IS NOT DISTINCT FROM NULL |
|
||||
| :----------------------------- |
|
||||
| true |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
<!-- IS NOT SUPPORTED YET
|
||||
## <=> {#three-way-comparison .monospace}
|
||||
|
||||
The `<=>` operator is a _NULL_-safe operator that returns `true` if both
|
||||
operands are equal or _NULL_; otherwise, it returns `false`.
|
||||
This operator is an alias for [`IS NOT DISTINCT FROM`](#is-not-distinct-from).
|
||||
|
||||
{{< expand-wrapper >}}
|
||||
{{% expand "View `<=>` operator examples" %}}
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT NULL <=> NULL
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| NULL IS NOT DISTINCT FROM NULL |
|
||||
| :----------------------------- |
|
||||
| true |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT 1 <=> NULL
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| Int64(1) IS NOT DISTINCT FROM NULL |
|
||||
| :--------------------------------- |
|
||||
| false |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT 1 <=> 2
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| Int64(1) IS NOT DISTINCT FROM Int64(2) |
|
||||
| :------------------------------------- |
|
||||
| false |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
{{< flex >}}
|
||||
{{% flex-content "two-thirds operator-example" %}}
|
||||
|
||||
```sql
|
||||
SELECT 1 <=> 1
|
||||
```
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{% flex-content "third operator-example" %}}
|
||||
|
||||
| Int64(1) IS NOT DISTINCT FROM Int64(1) |
|
||||
| :------------------------------------- |
|
||||
| true |
|
||||
|
||||
{{% /flex-content %}}
|
||||
{{< /flex >}}
|
||||
|
||||
{{% /expand %}}
|
||||
{{< /expand-wrapper >}}
|
||||
-->
|
||||
|
||||
## ~ {#regexp-match .monospace}
|
||||
|
||||
The `~` operator compares the left string operand to the right regular expression
|
||||
|
|
|
@ -52,7 +52,6 @@ This guide covers InfluxDB 3 Core (the open source release), including the follo
|
|||
* [Last values cache](#last-values-cache)
|
||||
* [Distinct values cache](#distinct-values-cache)
|
||||
* [Python plugins and the processing engine](#python-plugins-and-the-processing-engine)
|
||||
* [Diskless architecture](#diskless-architecture)
|
||||
|
||||
### Install and startup
|
||||
|
||||
|
@ -69,7 +68,6 @@ This guide covers InfluxDB 3 Core (the open source release), including the follo
|
|||
To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html):
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
|
||||
```bash
|
||||
curl -O https://www.influxdata.com/d/install_influxdb3.sh \
|
||||
&& sh install_influxdb3.sh
|
||||
|
@ -109,7 +107,6 @@ is available for x86_64 (AMD64) and ARM64 architectures.
|
|||
Pull the image:
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
|
||||
```bash
|
||||
docker pull quay.io/influxdb/influxdb3-core:latest
|
||||
```
|
||||
|
@ -131,7 +128,6 @@ influxdb3 --version
|
|||
If your system doesn't locate `influxdb3`, then `source` the configuration file (for example, .bashrc, .zshrc) for your shell--for example:
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
|
||||
```zsh
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
@ -148,6 +144,13 @@ and provide the following:
|
|||
- `--node-id`: A string identifier that determines the server's storage path
|
||||
within the configured storage location, and, in a multi-node setup, is used to reference the node.
|
||||
|
||||
> [!Note]
|
||||
> #### Diskless architecture
|
||||
>
|
||||
> InfluxDB 3 supports a diskless architecture that can operate with object
|
||||
> storage alone, eliminating the need for locally attached disks.
|
||||
> {{% product-name %}} can also work with only local disk storage when needed.
|
||||
|
||||
The following examples show how to start InfluxDB 3 with different object store configurations:
|
||||
|
||||
```bash
|
||||
|
@ -249,9 +252,14 @@ InfluxDB is a schema-on-write database. You can start writing data and InfluxDB
|
|||
After a schema is created, InfluxDB validates future write requests against it before accepting the data.
|
||||
Subsequent requests can add new fields on-the-fly, but can't add new tags.
|
||||
|
||||
{{% product-name %}} is optimized for recent data, but accepts writes from any time period. It persists that data in Parquet files for access by third-party systems for longer term historical analysis and queries. If you require longer historical queries with a compactor that optimizes data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/).
|
||||
> [!Note]
|
||||
> #### Core is optimized for recent data
|
||||
>
|
||||
> {{% product-name %}} is optimized for recent data but accepts writes from any time period.
|
||||
> The system persists data to Parquet files for historical analysis with [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/) or third-party tools.
|
||||
> For extended historical queries and optimized data organization, consider using [InfluxDB 3 Enterprise](/influxdb3/enterprise/get-started/).
|
||||
|
||||
The database provides three write API endpoints that respond to HTTP `POST` requests:
|
||||
{{% product-name %}} provides three write API endpoints that respond to HTTP `POST` requests:
|
||||
|
||||
#### /api/v3/write_lp endpoint
|
||||
|
||||
|
@ -368,39 +376,43 @@ The response is the following:
|
|||
InfluxDB rejects all points in the batch.
|
||||
The response is an HTTP error (`400`) status, and the response body contains `parsing failed for write_lp endpoint` and details about the problem line.
|
||||
|
||||
#### Data durability
|
||||
### Data flow
|
||||
|
||||
When you write data to InfluxDB, InfluxDB ingests the data and writes it to WAL files, created once per second, and to an in-memory queryable buffer.
|
||||
Later, InfluxDB snapshots the WAL and persists the data into object storage as Parquet files.
|
||||
For more information, see [diskless architecture](#diskless-architecture).
|
||||
The figure below shows how written data flows through the database.
|
||||
|
||||
> [!Note]
|
||||
> ##### Write requests return after WAL flush
|
||||
>
|
||||
> By default, InfluxDB acknowledges writes after flushing the WAL file to the Object store (occurring every second). For high throughput, you can send multiple concurrent write requests.
|
||||
>
|
||||
> To reduce the latency of writes, use the [`no_sync` write option](#no-sync-write-option), which acknowledges writes _before_ WAL persistence completes.
|
||||
{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}}
|
||||
|
||||
##### No sync write option
|
||||
1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If [`no_sync=true`](#no-sync-write-option), the server sends a response to acknowledge the write.
|
||||
2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If [`no_sync=false`](#no-sync-write-option) (default), the server sends a response to acknowledge the write.
|
||||
3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered.
|
||||
4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory.
|
||||
5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage.
|
||||
|
||||
The `no_sync` write option reduces latency by acknowledging write requests before WAL persistence completes. When set to `true`, InfluxDB validates the data, writes the data to the WAL, and then immediately confirms the write, without waiting for persistence to the Object store.
|
||||
#### Write responses
|
||||
|
||||
By default, InfluxDB acknowledges writes after flushing the WAL file to the Object store (occurring every second).
|
||||
For high write throughput, you can send multiple concurrent write requests.
|
||||
|
||||
#### Use no_sync for immediate write responses
|
||||
|
||||
To reduce the latency of writes, use the `no_sync` write option, which acknowledges writes _before_ WAL persistence completes.
|
||||
When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the Object store.
|
||||
|
||||
Using `no_sync=true` is best when prioritizing high-throughput writes over absolute durability.
|
||||
|
||||
- Default behavior (`no_sync=false`): Waits for data to be written to the Object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response.
|
||||
- With `no_sync=true`: Reduces write latency, but increases the risk of data loss in case of a crash before WAL persistence.
|
||||
|
||||
###### Immediate write using the HTTP API
|
||||
##### Immediate write using the HTTP API
|
||||
|
||||
The `no_sync` parameter controls when writes are acknowledged--for example:
|
||||
|
||||
|
||||
```sh
|
||||
curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&no_sync=true" \
|
||||
--data-raw "home,room=Sunroom temp=96"
|
||||
```
|
||||
|
||||
###### Immediate write using the influxdb3 CLI
|
||||
##### Immediate write using the influxdb3 CLI
|
||||
|
||||
The `no_sync` CLI option controls when writes are acknowledged--for example:
|
||||
|
||||
|
@ -422,7 +434,7 @@ To learn more about a subcommand, use the `-h, --help` flag:
|
|||
influxdb3 create -h
|
||||
```
|
||||
|
||||
### Query a database
|
||||
### Query data
|
||||
|
||||
InfluxDB 3 now supports native SQL for querying, in addition to InfluxQL, an
|
||||
SQL-like language customized for time series queries.
|
||||
|
@ -825,15 +837,4 @@ influxdb3 enable trigger --database mydb trigger1
|
|||
|
||||
For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/).
|
||||
|
||||
### Diskless architecture
|
||||
|
||||
InfluxDB 3 is able to operate using only object storage with no locally attached disk.
|
||||
While it can use only a disk with no dependencies, the ability to operate without one is a new capability with this release. The figure below illustrates the write path for data landing in the database.
|
||||
|
||||
{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}}
|
||||
|
||||
As write requests come in to the server, they are parsed, validated, and put into an in-memory WAL buffer. This buffer is flushed every second by default (can be changed through configuration), which will create a WAL file. Once the data is flushed to disk, it is put into a queryable in-memory buffer and then a response is sent back to the client that the write was successful. That data will now show up in queries to the server.
|
||||
|
||||
InfluxDB periodically snapshots the WAL to persist the oldest data in the queryable buffer, allowing the server to remove old WAL files. By default, the server will keep up to 900 WAL files buffered up (15 minutes of data) and attempt to persist the oldest 10 minutes, keeping the most recent 5 minutes around.
|
||||
|
||||
When the data is persisted out of the queryable buffer it is put into the configured object store as Parquet files. Those files are also put into an in-memory cache so that queries against the most recently persisted data do not have to go to object storage.
|
||||
|
|
|
@ -42,7 +42,6 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following
|
|||
* [Last values cache](#last-values-cache)
|
||||
* [Distinct values cache](#distinct-values-cache)
|
||||
* [Python plugins and the processing engine](#python-plugins-and-the-processing-engine)
|
||||
* [Diskless architecture](#diskless-architecture)
|
||||
* [Multi-server setups](#multi-server-setup)
|
||||
|
||||
### Install and startup
|
||||
|
@ -59,6 +58,7 @@ This guide covers Enterprise as well as InfluxDB 3 Core, including the following
|
|||
<!--------------- BEGIN LINUX AND MACOS -------------->
|
||||
To get started quickly, download and run the install script--for example, using [curl](https://curl.se/download.html):
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
```bash
|
||||
curl -O https://www.influxdata.com/d/install_influxdb3.sh \
|
||||
&& sh install_influxdb3.sh enterprise
|
||||
|
@ -97,6 +97,7 @@ is available for x86_64 (AMD64) and ARM64 architectures.
|
|||
|
||||
Pull the image:
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
```bash
|
||||
docker pull quay.io/influxdb/influxdb3-enterprise:latest
|
||||
```
|
||||
|
@ -117,6 +118,7 @@ influxdb3 --version
|
|||
|
||||
If your system doesn't locate `influxdb3`, then `source` the configuration file (for example, .bashrc, .zshrc) for your shell--for example:
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
```zsh
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
@ -133,16 +135,23 @@ and provide the following:
|
|||
- `--node-id`: A string identifier that determines the server's storage path
|
||||
within the configured storage location, and, in a multi-node setup, is used to reference the node.
|
||||
|
||||
> [!Note]
|
||||
> #### Diskless architecture
|
||||
>
|
||||
> InfluxDB 3 supports a diskless architecture that can operate with object
|
||||
> storage alone, eliminating the need for locally attached disks.
|
||||
> {{% product-name %}} can also work with only local disk storage when needed.
|
||||
|
||||
The following examples show how to start InfluxDB 3 with different object store configurations:
|
||||
|
||||
```bash
|
||||
# MEMORY
|
||||
# Memory object store
|
||||
# Stores data in RAM; doesn't persist data
|
||||
influxdb3 serve --node-id=local01 --object-store=memory
|
||||
```
|
||||
|
||||
```bash
|
||||
# FILESYSTEM
|
||||
# Filesystem object store
|
||||
# Provide the filesystem directory
|
||||
influxdb3 serve \
|
||||
--node-id=local01 \
|
||||
|
@ -155,8 +164,14 @@ To run the [Docker image](/influxdb3/enterprise/install/#docker-image) and persi
|
|||
- `-v /path/on/host:/path/in/container`: Mounts a directory from your filesystem to the container
|
||||
- `--object-store file --data-dir /path/in/container`: Uses the mount for server storage
|
||||
|
||||
> [!Note]
|
||||
>
|
||||
> The {{% product-name %}} Docker image exposes port `8181`, the `influxdb3` server default for HTTP connections.
|
||||
> To map the exposed port to a different port when running a container, see the Docker guide for [Publishing and exposing ports](https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/).
|
||||
|
||||
<!--pytest.mark.skip-->
|
||||
```bash
|
||||
# FILESYSTEM USING DOCKER
|
||||
# Filesystem object store with Docker
|
||||
# Create a mount
|
||||
# Provide the mount path
|
||||
docker run -it \
|
||||
|
@ -168,15 +183,29 @@ docker run -it \
|
|||
```
|
||||
|
||||
```bash
|
||||
# S3 (defaults to us-east-1 for region)
|
||||
# S3 object store (default is the us-east-1 region)
|
||||
# Specify the Object store type and associated options
|
||||
influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY]
|
||||
|
||||
```bash
|
||||
influxdb3 serve \
|
||||
--node-id=local01 \
|
||||
--object-store=s3 \
|
||||
--bucket=BUCKET \
|
||||
--aws-access-key=AWS_ACCESS_KEY \
|
||||
--aws-secret-access-key=AWS_SECRET_ACCESS_KEY
|
||||
```
|
||||
|
||||
```bash
|
||||
# Minio/Open Source Object Store (Uses the AWS S3 API, with additional parameters)
|
||||
# Specify the Object store type and associated options
|
||||
influxdb3 serve --node-id=local01 --object-store=s3 --bucket=[BUCKET] --aws-access-key=[AWS ACCESS KEY] --aws-secret-access-key=[AWS SECRET ACCESS KEY] --aws-endpoint=[ENDPOINT] --aws-allow-http
|
||||
# Minio or other open source object store
|
||||
# (using the AWS S3 API with additional parameters)
|
||||
# Specify the object store type and associated options
|
||||
|
||||
```bash
|
||||
influxdb3 serve --node-id=local01 --object-store=s3 --bucket=BUCKET \
|
||||
--aws-access-key=AWS_ACCESS_KEY \
|
||||
--aws-secret-access-key=AWS_SECRET_ACCESS_KEY \
|
||||
--aws-endpoint=ENDPOINT \
|
||||
--aws-allow-http
|
||||
```
|
||||
|
||||
_For more information about server options, run `influxdb3 serve --help`._
|
||||
|
@ -188,10 +217,12 @@ _For more information about server options, run `influxdb3 serve --help`._
|
|||
> Use the `docker kill` command to stop the container:
|
||||
>
|
||||
> 1. Enter the following command to find the container ID:
|
||||
> <!--pytest.mark.skip-->
|
||||
> ```bash
|
||||
> docker ps -a
|
||||
> ```
|
||||
> 2. Enter the command to stop the container:
|
||||
> <!--pytest.mark.skip-->
|
||||
> ```bash
|
||||
> docker kill <CONTAINER_ID>
|
||||
> ```
|
||||
|
@ -218,22 +249,43 @@ InfluxDB is a schema-on-write database. You can start writing data and InfluxDB
|
|||
After a schema is created, InfluxDB validates future write requests against it before accepting the data.
|
||||
Subsequent requests can add new fields on-the-fly, but can't add new tags.
|
||||
|
||||
The database has three write API endpoints that respond to HTTP `POST` requests:
|
||||
The database provides three write API endpoints that respond to HTTP `POST` requests:
|
||||
|
||||
* `/write?db=mydb&precision=ns`
|
||||
* `/api/v2/write?bucket=mydb&precision=ns`
|
||||
* `/api/v3/write_lp?db=mydb&precision=nanosecond&accept_partial=true`
|
||||
#### /api/v3/write_lp endpoint
|
||||
|
||||
{{% product-name %}} provides the `/write` and `/api/v2/write` endpoints for backward compatibility with clients that can write data to previous versions of InfluxDB.
|
||||
However, these APIs differ from the APIs in the previous versions in the following ways:
|
||||
{{% product-name %}} adds the `/api/v3/write_lp` endpoint.
|
||||
|
||||
{{<api-endpoint endpoint="/api/v3/write_lp?db=mydb&precision=nanosecond&accept_partial=true" method="post" >}}
|
||||
|
||||
This endpoint accepts the same line protocol syntax as previous versions,
|
||||
and supports the `?accept_partial=<BOOLEAN>` parameter, which
|
||||
lets you accept or reject partial writes (default is `true`).
|
||||
|
||||
#### /api/v2/write InfluxDB v2 compatibility endpoint
|
||||
|
||||
Provides backwards compatibility with clients that can write data to InfluxDB OSS v2.x and Cloud 2 (TSM).
|
||||
{{<api-endpoint endpoint="/api/v2/write?bucket=mydb&precision=ns" method="post" >}}
|
||||
|
||||
#### /write InfluxDB v1 compatibility endpoint
|
||||
|
||||
Provides backwards compatibility for clients that can write data to InfluxDB v1.x
|
||||
{{<api-endpoint endpoint="/write?db=mydb&precision=ns" method="post" >}}
|
||||
|
||||
Keep in mind that these compatibility APIs differ from the v1 and v2 APIs in previous versions in the following ways:
|
||||
|
||||
- Tags in a table (measurement) are _immutable_
|
||||
- A tag and a field can't have the same name within a table.
|
||||
|
||||
{{% product-name %}} adds the `/api/v3/write_lp` endpoint, which accepts the same line protocol syntax as previous versions, and supports an `?accept_partial=<BOOLEAN>` parameter, which
|
||||
lets you accept or reject partial writes (default is `true`).
|
||||
#### Write line protocol
|
||||
|
||||
The following code block is an example of [line protocol](/influxdb3/core/reference/syntax/line-protocol/), which shows the table name followed by tags, which are an ordered, comma-separated list of key/value pairs where the values are strings, followed by a comma-separated list of key/value pairs that are the fields, and ending with an optional timestamp. The timestamp by default is a nanosecond epoch, but you can specify a different precision through the `precision` query parameter.
|
||||
The following code block is an example of time series data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) syntax:
|
||||
|
||||
- `cpu`: the table name.
|
||||
- `host`, `region`, `applications`: the tags. A tag set is an ordered, comma-separated list of key/value pairs where the values are strings.
|
||||
- `val`, `usage_percent`, `status`: the fields. A field set is a comma-separated list of key/value pairs.
|
||||
- timestamp: If you don't specify a timestamp, InfluxData uses the time when data is written.
|
||||
The default precision is a nanosecond epoch.
|
||||
To specify a different precision, pass the `precision` query parameter.
|
||||
|
||||
```
|
||||
cpu,host=Alpha,region=us-west,application=webserver val=1i,usage_percent=20.5,status="OK"
|
||||
|
@ -244,12 +296,16 @@ cpu,host=Bravo,region=us-central,application=database val=5i,usage_percent=80.5,
|
|||
cpu,host=Alpha,region=us-west,application=webserver val=6i,usage_percent=25.3,status="Warn"
|
||||
```
|
||||
|
||||
##### Example: write data using the influxdb3 CLI
|
||||
|
||||
If you save the preceding line protocol to a file (for example, `server_data`), then you can use the `influxdb3` CLI to write the data--for example:
|
||||
|
||||
```bash
|
||||
influxdb3 write --database=mydb --file=server_data
|
||||
```
|
||||
|
||||
##### Example: write data using the /api/v3 HTTP API
|
||||
|
||||
The following examples show how to write data using `curl` and the `/api/3/write_lp` HTTP endpoint.
|
||||
To show the difference between accepting and rejecting partial writes, line `2` in the example contains a `string` value for a `float` field (`temp=hi`).
|
||||
|
||||
|
@ -279,7 +335,7 @@ With `accept_partial=true`:
|
|||
Line `1` is written and queryable.
|
||||
The response is an HTTP error (`400`) status, and the response body contains the error message `partial write of line protocol occurred` with details about the problem line.
|
||||
|
||||
##### Parsing failed for write_lp endpoint
|
||||
###### Parsing failed for write_lp endpoint
|
||||
|
||||
With `accept_partial=false`:
|
||||
|
||||
|
@ -310,19 +366,51 @@ The response is the following:
|
|||
InfluxDB rejects all points in the batch.
|
||||
The response is an HTTP error (`400`) status, and the response body contains `parsing failed for write_lp endpoint` and details about the problem line.
|
||||
|
||||
##### Data durability
|
||||
### Data flow
|
||||
|
||||
When you write data to InfluxDB, InfluxDB ingests the data and writes it to WAL files, created once per second, and to an in-memory queryable buffer.
|
||||
Later, InfluxDB snapshots the WAL and persists the data into object storage as Parquet files.
|
||||
For more information, see [diskless architecture](#diskless-architecture).
|
||||
The figure below shows how written data flows through the database.
|
||||
|
||||
> [!Note]
|
||||
> ##### Write requests return after WAL flush
|
||||
>
|
||||
> Because InfluxDB sends a write response after the WAL file has been flushed to the configured object store (default is every second), individual write requests might not complete quickly, but you can make many concurrent requests to achieve higher total throughput.
|
||||
> Future enhancements will include an API parameter that lets requests return without waiting for the WAL flush.
|
||||
{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}}
|
||||
|
||||
#### Create a database or table
|
||||
1. **Incoming writes**: The system validates incoming data and stores it in the write buffer (in memory). If [`no_sync=true`](#no-sync-write-option), the server sends a response to acknowledge the write.
|
||||
2. **WAL flush**: Every second (default), the system flushes the write buffer to the Write-Ahead Log (WAL) for persistence in the Object store. If [`no_sync=false`](#no-sync-write-option) (default), the server sends a response to acknowledge the write.
|
||||
3. **Query availability**: After WAL persistence completes, data moves to the queryable buffer where it becomes available for queries. By default, the server keeps up to 900 WAL files (15 minutes of data) buffered.
|
||||
4. **Long-term storage in Parquet**: Every ten minutes (default), the system persists the oldest data from the queryable buffer to the Object store in Parquet format. InfluxDB keeps the remaining data (the most recent 5 minutes) in memory.
|
||||
5. **In-memory cache**: InfluxDB puts Parquet files into an in-memory cache so that queries against the most recently persisted data don't have to go to object storage.
|
||||
|
||||
#### Write responses
|
||||
|
||||
By default, InfluxDB acknowledges writes after flushing the WAL file to the Object store (occurring every second).
|
||||
For high write throughput, you can send multiple concurrent write requests.
|
||||
|
||||
#### Use no_sync for immediate write responses
|
||||
|
||||
To reduce the latency of writes, use the `no_sync` write option, which acknowledges writes _before_ WAL persistence completes.
|
||||
When `no_sync=true`, InfluxDB validates the data, writes the data to the WAL, and then immediately responds to the client, without waiting for persistence to the Object store.
|
||||
|
||||
Using `no_sync=true` is best when prioritizing high-throughput writes over absolute durability.
|
||||
|
||||
- Default behavior (`no_sync=false`): Waits for data to be written to the Object store before acknowledging the write. Reduces the risk of data loss, but increases the latency of the response.
|
||||
- With `no_sync=true`: Reduces write latency, but increases the risk of data loss in case of a crash before WAL persistence.
|
||||
|
||||
##### Immediate write using the HTTP API
|
||||
|
||||
The `no_sync` parameter controls when writes are acknowledged--for example:
|
||||
|
||||
```sh
|
||||
curl "http://localhost:8181/api/v3/write_lp?db=sensors&precision=auto&no_sync=true" \
|
||||
--data-raw "home,room=Sunroom temp=96"
|
||||
```
|
||||
|
||||
##### Immediate write using the influxdb3 CLI
|
||||
|
||||
The `no_sync` CLI option controls when writes are acknowledged--for example:
|
||||
|
||||
```sh
|
||||
influxdb3 write --bucket=mydb --org=my_org --token=my-token --no-sync
|
||||
```
|
||||
|
||||
### Create a database or table
|
||||
|
||||
To create a database without writing data, use the `create` subcommand--for example:
|
||||
|
||||
|
@ -336,7 +424,7 @@ To learn more about a subcommand, use the `-h, --help` flag:
|
|||
influxdb3 create -h
|
||||
```
|
||||
|
||||
### Query the database
|
||||
### Query data
|
||||
|
||||
InfluxDB 3 now supports native SQL for querying, in addition to InfluxQL, an SQL-like language customized for time series queries.
|
||||
|
||||
|
@ -733,19 +821,6 @@ influxdb3 enable trigger --database mydb trigger1
|
|||
|
||||
For more information, see [Python plugins and the Processing engine](/influxdb3/version/plugins/).
|
||||
|
||||
### Diskless architecture
|
||||
|
||||
InfluxDB 3 is able to operate using only object storage with no locally attached disk.
|
||||
While it can use only a disk with no dependencies, the ability to operate without one is a new capability with this release. The figure below illustrates the write path for data landing in the database.
|
||||
|
||||
{{< img-hd src="/img/influxdb/influxdb-3-write-path.png" alt="Write Path for InfluxDB 3 Core & Enterprise" />}}
|
||||
|
||||
As write requests come in to the server, they are parsed, validated, and put into an in-memory WAL buffer. This buffer is flushed every second by default (can be changed through configuration), which will create a WAL file. Once the data is flushed to disk, it is put into a queryable in-memory buffer and then a response is sent back to the client that the write was successful. That data will now show up in queries to the server.
|
||||
|
||||
InfluxDB periodically snapshots the WAL to persist the oldest data in the queryable buffer, allowing the server to remove old WAL files. By default, the server will keep up to 900 WAL files buffered up (15 minutes of data) and attempt to persist the oldest 10 minutes, keeping the most recent 5 minutes around.
|
||||
|
||||
When the data is persisted out of the queryable buffer it is put into the configured object store as Parquet files. Those files are also put into an in-memory cache so that queries against the most recently persisted data do not have to go to object storage.
|
||||
|
||||
### Multi-server setup
|
||||
|
||||
{{% product-name %}} is built to support multi-node setups for high availability, read replicas, and flexible implementations depending on use case.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"license": "MIT",
|
||||
"resolutions": {
|
||||
"serialize-javascript": "^6.0.2"
|
||||
},
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.18.0",
|
||||
"@evilmartians/lefthook": "^1.7.1",
|
||||
|
@ -35,9 +35,9 @@
|
|||
"scripts": {
|
||||
"e2e:chrome": "npx cypress run --browser chrome",
|
||||
"e2e:o": "npx cypress open",
|
||||
"e2e:o:links": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/,http://localhost:1313/influxdb3/enterprise/\"; npx cypress open cypress/e2e/article-links.cy.js",
|
||||
"e2e:links": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/,http://localhost:1313/influxdb3/enterprise/\"; npx cypress run --spec cypress/e2e/article-links.cy.js",
|
||||
"e2e:api-docs": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/api/,http://localhost:1313/influxdb3/enterprise/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/management/,http://localhost:1313/influxdb3/cloud-dedicated/api/management/\"; npx cypress run --spec cypress/e2e/article-links.cy.js",
|
||||
"e2e:o:links": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/,http://localhost:1313/influxdb3/enterprise/\"; npx cypress open cypress/e2e/content/article-links.cy.js",
|
||||
"e2e:links": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/,http://localhost:1313/influxdb3/enterprise/\"; npx cypress run --spec cypress/e2e/content/article-links.cy.js",
|
||||
"e2e:api-docs": "export cypress_test_subjects=\"http://localhost:1313/influxdb3/core/api/,http://localhost:1313/influxdb3/enterprise/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/,http://localhost:1313/influxdb3/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/v1/,http://localhost:1313/influxdb/cloud-dedicated/api/management/,http://localhost:1313/influxdb3/cloud-dedicated/api/management/\"; npx cypress run --spec cypress/e2e/content/article-links.cy.js",
|
||||
"lint": "LEFTHOOK_EXCLUDE=test lefthook run pre-commit && lefthook run pre-push",
|
||||
"pre-commit": "lefthook run pre-commit",
|
||||
"test-content": "docker compose --profile test up"
|
||||
|
|
508
yarn.lock
508
yarn.lock
|
@ -2,18 +2,18 @@
|
|||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@antfu/install-pkg@^0.4.1":
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.4.1.tgz#d1d7f3be96ecdb41581629cafe8626d1748c0cf1"
|
||||
integrity sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==
|
||||
"@antfu/install-pkg@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-1.0.0.tgz#2912a150fc8b35ec912f583f90074ee98f64d66a"
|
||||
integrity sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==
|
||||
dependencies:
|
||||
package-manager-detector "^0.2.0"
|
||||
tinyexec "^0.3.0"
|
||||
package-manager-detector "^0.2.8"
|
||||
tinyexec "^0.3.2"
|
||||
|
||||
"@antfu/utils@^0.7.10":
|
||||
version "0.7.10"
|
||||
resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d"
|
||||
integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==
|
||||
"@antfu/utils@^8.1.0":
|
||||
version "8.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-8.1.1.tgz#95b1947d292a9a2efffba2081796dcaa05ecedfb"
|
||||
integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==
|
||||
|
||||
"@babel/code-frame@^7.0.0":
|
||||
version "7.26.2"
|
||||
|
@ -77,9 +77,9 @@
|
|||
integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
|
||||
|
||||
"@cypress/request@^3.0.7":
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.7.tgz#6a74a4da98d9e5ae9121d6e2d9c14780c9b5cf1a"
|
||||
integrity sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815"
|
||||
integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==
|
||||
dependencies:
|
||||
aws-sign2 "~0.7.0"
|
||||
aws4 "^1.8.0"
|
||||
|
@ -94,7 +94,7 @@
|
|||
json-stringify-safe "~5.0.1"
|
||||
mime-types "~2.1.19"
|
||||
performance-now "^2.1.0"
|
||||
qs "6.13.1"
|
||||
qs "6.14.0"
|
||||
safe-buffer "^5.1.2"
|
||||
tough-cookie "^5.0.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
@ -118,9 +118,9 @@
|
|||
kuler "^2.0.0"
|
||||
|
||||
"@eslint-community/eslint-utils@^4.2.0":
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56"
|
||||
integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.5.0.tgz#716637f508a8add5814cc64c56e58cce57bdbe93"
|
||||
integrity sha512-RoV8Xs9eNwiDvhv7M+xcL4PWyRyIXRY/FLp3buU4h1EYfdF7unWUy3dOjPqb3C7rMUewIcqwW850PgS8h1o1yg==
|
||||
dependencies:
|
||||
eslint-visitor-keys "^3.4.3"
|
||||
|
||||
|
@ -129,7 +129,7 @@
|
|||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
|
||||
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
|
||||
|
||||
"@eslint/config-array@^0.19.0":
|
||||
"@eslint/config-array@^0.19.2":
|
||||
version "0.19.2"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa"
|
||||
integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==
|
||||
|
@ -138,17 +138,22 @@
|
|||
debug "^4.3.1"
|
||||
minimatch "^3.1.2"
|
||||
|
||||
"@eslint/core@^0.11.0":
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.11.0.tgz#7a9226e850922e42cbd2ba71361eacbe74352a12"
|
||||
integrity sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==
|
||||
"@eslint/config-helpers@^0.1.0":
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.1.0.tgz#62f1b7821e9d9ced1b3f512c7ea731825765d1cc"
|
||||
integrity sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==
|
||||
|
||||
"@eslint/core@^0.12.0":
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.12.0.tgz#5f960c3d57728be9f6c65bd84aa6aa613078798e"
|
||||
integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.15"
|
||||
|
||||
"@eslint/eslintrc@^3.2.0":
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c"
|
||||
integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==
|
||||
"@eslint/eslintrc@^3.3.0":
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz#96a558f45842989cca7ea1ecd785ad5491193846"
|
||||
integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==
|
||||
dependencies:
|
||||
ajv "^6.12.4"
|
||||
debug "^4.3.2"
|
||||
|
@ -160,28 +165,28 @@
|
|||
minimatch "^3.1.2"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@eslint/js@9.20.0", "@eslint/js@^9.18.0":
|
||||
version "9.20.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.20.0.tgz#7421bcbe74889fcd65d1be59f00130c289856eb4"
|
||||
integrity sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==
|
||||
"@eslint/js@9.22.0", "@eslint/js@^9.18.0":
|
||||
version "9.22.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.22.0.tgz#4ff53649ded7cbce90b444b494c234137fa1aa3d"
|
||||
integrity sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==
|
||||
|
||||
"@eslint/object-schema@^2.1.6":
|
||||
version "2.1.6"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
|
||||
integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
|
||||
|
||||
"@eslint/plugin-kit@^0.2.5":
|
||||
version "0.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.6.tgz#a30084164a4ced1efb6ec31d3d04f581cb8929c0"
|
||||
integrity sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==
|
||||
"@eslint/plugin-kit@^0.2.7":
|
||||
version "0.2.7"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz#9901d52c136fb8f375906a73dcc382646c3b6a27"
|
||||
integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==
|
||||
dependencies:
|
||||
"@eslint/core" "^0.11.0"
|
||||
"@eslint/core" "^0.12.0"
|
||||
levn "^0.4.1"
|
||||
|
||||
"@evilmartians/lefthook@^1.7.1":
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.10.10.tgz#862c80eca5baa664cefb9b970500ea6d7f2d73dc"
|
||||
integrity sha512-MRIA0zJzUBbmcbecI7QjI08li4ffpmZ6DeVydEiZSg0vSx5mElEMEjDEjkI60eSV0XOm7LRbQKz2rfW6NqH8Cw==
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/@evilmartians/lefthook/-/lefthook-1.11.3.tgz#95c654b1aeac812efb34cda3d34f38dc3c9c3b25"
|
||||
integrity sha512-ic3gCgCnm7XQCxGLsnLXU+33J86iFuC5r4JYSWrMXo0rTjGT6EqKKpSDuA0r/1F14VZmdgmvRUTXTBOvXA2UXA==
|
||||
|
||||
"@humanfs/core@^0.19.1":
|
||||
version "0.19.1"
|
||||
|
@ -206,7 +211,7 @@
|
|||
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a"
|
||||
integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==
|
||||
|
||||
"@humanwhocodes/retry@^0.4.1":
|
||||
"@humanwhocodes/retry@^0.4.2":
|
||||
version "0.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161"
|
||||
integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==
|
||||
|
@ -217,18 +222,18 @@
|
|||
integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==
|
||||
|
||||
"@iconify/utils@^2.1.32":
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.2.1.tgz#635b9bd8fd3e5e53742471bc0b5291f1570dda41"
|
||||
integrity sha512-0/7J7hk4PqXmxo5PDBDxmnecw5PxklZJfNjIVG9FM0mEfVrvfudS22rYWsqVk6gR3UJ/mSYS90X4R3znXnqfNA==
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.3.0.tgz#1bbbf8c477ebe9a7cacaea78b1b7e8937f9cbfba"
|
||||
integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==
|
||||
dependencies:
|
||||
"@antfu/install-pkg" "^0.4.1"
|
||||
"@antfu/utils" "^0.7.10"
|
||||
"@antfu/install-pkg" "^1.0.0"
|
||||
"@antfu/utils" "^8.1.0"
|
||||
"@iconify/types" "^2.0.0"
|
||||
debug "^4.4.0"
|
||||
globals "^15.13.0"
|
||||
globals "^15.14.0"
|
||||
kolorist "^1.8.0"
|
||||
local-pkg "^0.5.1"
|
||||
mlly "^1.7.3"
|
||||
local-pkg "^1.0.0"
|
||||
mlly "^1.7.4"
|
||||
|
||||
"@isaacs/cliui@^8.0.2":
|
||||
version "8.0.2"
|
||||
|
@ -523,9 +528,9 @@
|
|||
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
|
||||
|
||||
"@types/node@*":
|
||||
version "22.13.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.4.tgz#3fe454d77cd4a2d73c214008b3e331bfaaf5038a"
|
||||
integrity sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==
|
||||
version "22.13.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.10.tgz#df9ea358c5ed991266becc3109dc2dc9125d77e4"
|
||||
integrity sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==
|
||||
dependencies:
|
||||
undici-types "~6.20.0"
|
||||
|
||||
|
@ -562,9 +567,9 @@
|
|||
"@types/node" "*"
|
||||
|
||||
"@vvago/vale@^3.4.2":
|
||||
version "3.9.5"
|
||||
resolved "https://registry.yarnpkg.com/@vvago/vale/-/vale-3.9.5.tgz#18114dbc38e90d4abd2fcb6ab88c6400f5a2bb60"
|
||||
integrity sha512-Ng+Ty/q2L2A8ovxMX6EVt8QPg5/wg1nBgVIzFqpgMmsVPN3rbtq6I8BrKABr4gZW4iEToOIPEGhCJwvNasMfMA==
|
||||
version "3.9.6"
|
||||
resolved "https://registry.yarnpkg.com/@vvago/vale/-/vale-3.9.6.tgz#5d21b9fa3d940c40853e7c47968ee70042f8bbef"
|
||||
integrity sha512-KD48GmGT5dgFWz14bJb154NVRzjiRbnZk8n+Pk824r2Cn78vzLxzB9mGvn0OcOTZXC3IhqyUUo9vZo/V9SGfTw==
|
||||
dependencies:
|
||||
axios "^1.4.0"
|
||||
rimraf "^5.0.0"
|
||||
|
@ -577,9 +582,9 @@ acorn-jsx@^5.3.2:
|
|||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||
|
||||
acorn@^8.14.0:
|
||||
version "8.14.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0"
|
||||
integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==
|
||||
version "8.14.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
|
||||
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
version "3.1.0"
|
||||
|
@ -684,15 +689,15 @@ at-least-node@^1.0.0:
|
|||
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
|
||||
|
||||
autoprefixer@>=10.2.5:
|
||||
version "10.4.20"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b"
|
||||
integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==
|
||||
version "10.4.21"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d"
|
||||
integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==
|
||||
dependencies:
|
||||
browserslist "^4.23.3"
|
||||
caniuse-lite "^1.0.30001646"
|
||||
browserslist "^4.24.4"
|
||||
caniuse-lite "^1.0.30001702"
|
||||
fraction.js "^4.3.7"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.1"
|
||||
picocolors "^1.1.1"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
aws-sign2@~0.7.0:
|
||||
|
@ -706,9 +711,9 @@ aws4@^1.8.0:
|
|||
integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==
|
||||
|
||||
axios@^1.4.0, axios@^1.7.4:
|
||||
version "1.7.9"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a"
|
||||
integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==
|
||||
version "1.8.2"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.2.tgz#fabe06e241dfe83071d4edfbcaa7b1c3a40f7979"
|
||||
integrity sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.6"
|
||||
form-data "^4.0.0"
|
||||
|
@ -794,7 +799,7 @@ braces@^3.0.3, braces@~3.0.2:
|
|||
dependencies:
|
||||
fill-range "^7.1.1"
|
||||
|
||||
browserslist@^4.23.3:
|
||||
browserslist@^4.24.4:
|
||||
version "4.24.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b"
|
||||
integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==
|
||||
|
@ -868,7 +873,7 @@ cachedir@^2.3.0:
|
|||
resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d"
|
||||
integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==
|
||||
|
||||
call-bind-apply-helpers@^1.0.1:
|
||||
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
|
||||
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
|
||||
|
@ -877,22 +882,22 @@ call-bind-apply-helpers@^1.0.1:
|
|||
function-bind "^1.1.2"
|
||||
|
||||
call-bound@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681"
|
||||
integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
|
||||
integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.1"
|
||||
get-intrinsic "^1.2.6"
|
||||
call-bind-apply-helpers "^1.0.2"
|
||||
get-intrinsic "^1.3.0"
|
||||
|
||||
callsites@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
|
||||
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
|
||||
|
||||
caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688:
|
||||
version "1.0.30001700"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz#26cd429cf09b4fd4e745daf4916039c794d720f6"
|
||||
integrity sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==
|
||||
caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702:
|
||||
version "1.0.30001703"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz#977cb4920598c158f491ecf4f4f2cfed9e354718"
|
||||
integrity sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==
|
||||
|
||||
careful-downloader@^3.0.0:
|
||||
version "3.0.0"
|
||||
|
@ -975,10 +980,10 @@ chownr@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
ci-info@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.1.0.tgz#92319d2fa29d2620180ea5afed31f589bc98cf83"
|
||||
integrity sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==
|
||||
ci-info@^4.1.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7"
|
||||
integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==
|
||||
|
||||
clean-stack@^2.0.0:
|
||||
version "2.2.0"
|
||||
|
@ -1113,6 +1118,11 @@ confbox@^0.1.8:
|
|||
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06"
|
||||
integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
|
||||
|
||||
confbox@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b"
|
||||
integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==
|
||||
|
||||
core-util-is@1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
|
@ -1154,9 +1164,9 @@ crypto-random-string@^4.0.0:
|
|||
type-fest "^1.0.1"
|
||||
|
||||
cypress@^14.0.1:
|
||||
version "14.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.0.3.tgz#7873d21f61d0559edb9c041316d450cf7ef9d5fa"
|
||||
integrity sha512-yIdvobANw3kS+KF/t5vwjjPNufBA8ux7iQHaWxPTkUw2yCKI72m9mKM24eOwE84Wk4ALPsSvEcGbDrwgmhr4RA==
|
||||
version "14.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.1.0.tgz#b2dbe7bbc529dc0c93ffd4e0e9fa59763afba0b8"
|
||||
integrity sha512-pPPj8Uu9NwjaaiXAEcjYZZmgsq6v9Zs1Nw6a+zRF+ANgYSNhH4S32SjFRsvMcuOHR/8dp4GBJhBPqIPSs+TxaA==
|
||||
dependencies:
|
||||
"@cypress/request" "^3.0.7"
|
||||
"@cypress/xvfb" "^1.2.4"
|
||||
|
@ -1169,7 +1179,7 @@ cypress@^14.0.1:
|
|||
cachedir "^2.3.0"
|
||||
chalk "^4.1.0"
|
||||
check-more-types "^2.24.0"
|
||||
ci-info "^4.0.0"
|
||||
ci-info "^4.1.0"
|
||||
cli-cursor "^3.1.0"
|
||||
cli-table3 "~0.6.1"
|
||||
commander "^6.2.1"
|
||||
|
@ -1217,9 +1227,9 @@ cytoscape-fcose@^2.2.0:
|
|||
cose-base "^2.2.0"
|
||||
|
||||
cytoscape@^3.29.2:
|
||||
version "3.31.0"
|
||||
resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.0.tgz#cffbbb8ca51db01cbf360e0cf59088db6d429837"
|
||||
integrity sha512-zDGn1K/tfZwEnoGOcHc0H4XazqAAXAuDpcYw9mUnUjATjqljyCNGJv8uEvbvxGaGHaVshxMecyl6oc6uKzRfbw==
|
||||
version "3.31.1"
|
||||
resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.31.1.tgz#29b12cac715fbb2aacc50cdf5cf1467aadde9c00"
|
||||
integrity sha512-Hx5Mtb1+hnmAKaZZ/7zL1Y5HTFYOjdDswZy/jD+1WINRU8KVi1B7+vlHdsTwY+VCFucTreoyu1RDzQJ9u0d2Hw==
|
||||
|
||||
"d3-array@1 - 2":
|
||||
version "2.12.1"
|
||||
|
@ -1655,9 +1665,9 @@ ecc-jsbn@~0.1.1:
|
|||
safer-buffer "^2.1.0"
|
||||
|
||||
electron-to-chromium@^1.5.73:
|
||||
version "1.5.102"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.102.tgz#81a452ace8e2c3fa7fba904ea4fed25052c53d3f"
|
||||
integrity sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==
|
||||
version "1.5.114"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz#f2bb4fda80a7db4ea273565e75b0ebbe19af0ac3"
|
||||
integrity sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
|
@ -1706,7 +1716,7 @@ es-errors@^1.3.0:
|
|||
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
|
||||
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
||||
|
||||
es-object-atoms@^1.0.0:
|
||||
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
|
||||
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
|
||||
|
@ -1738,10 +1748,10 @@ escape-string-regexp@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
||||
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
||||
|
||||
eslint-scope@^8.2.0:
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442"
|
||||
integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==
|
||||
eslint-scope@^8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.3.0.tgz#10cd3a918ffdd722f5f3f7b5b83db9b23c87340d"
|
||||
integrity sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==
|
||||
dependencies:
|
||||
esrecurse "^4.3.0"
|
||||
estraverse "^5.2.0"
|
||||
|
@ -1757,20 +1767,21 @@ eslint-visitor-keys@^4.2.0:
|
|||
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
|
||||
|
||||
eslint@^9.18.0:
|
||||
version "9.20.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.20.1.tgz#923924c078f5226832449bac86662dd7e53c91d6"
|
||||
integrity sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==
|
||||
version "9.22.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.22.0.tgz#0760043809fbf836f582140345233984d613c552"
|
||||
integrity sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
"@eslint-community/regexpp" "^4.12.1"
|
||||
"@eslint/config-array" "^0.19.0"
|
||||
"@eslint/core" "^0.11.0"
|
||||
"@eslint/eslintrc" "^3.2.0"
|
||||
"@eslint/js" "9.20.0"
|
||||
"@eslint/plugin-kit" "^0.2.5"
|
||||
"@eslint/config-array" "^0.19.2"
|
||||
"@eslint/config-helpers" "^0.1.0"
|
||||
"@eslint/core" "^0.12.0"
|
||||
"@eslint/eslintrc" "^3.3.0"
|
||||
"@eslint/js" "9.22.0"
|
||||
"@eslint/plugin-kit" "^0.2.7"
|
||||
"@humanfs/node" "^0.16.6"
|
||||
"@humanwhocodes/module-importer" "^1.0.1"
|
||||
"@humanwhocodes/retry" "^0.4.1"
|
||||
"@humanwhocodes/retry" "^0.4.2"
|
||||
"@types/estree" "^1.0.6"
|
||||
"@types/json-schema" "^7.0.15"
|
||||
ajv "^6.12.4"
|
||||
|
@ -1778,7 +1789,7 @@ eslint@^9.18.0:
|
|||
cross-spawn "^7.0.6"
|
||||
debug "^4.3.2"
|
||||
escape-string-regexp "^4.0.0"
|
||||
eslint-scope "^8.2.0"
|
||||
eslint-scope "^8.3.0"
|
||||
eslint-visitor-keys "^4.2.0"
|
||||
espree "^10.3.0"
|
||||
esquery "^1.5.0"
|
||||
|
@ -1856,6 +1867,11 @@ executable@^4.1.1:
|
|||
dependencies:
|
||||
pify "^2.2.0"
|
||||
|
||||
exsolve@^1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39"
|
||||
integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==
|
||||
|
||||
extend@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||
|
@ -1909,9 +1925,9 @@ fast-levenshtein@^2.0.6:
|
|||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.19.0"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.0.tgz#a82c6b7c2bb4e44766d865f07997785fecfdcb89"
|
||||
integrity sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==
|
||||
version "1.19.1"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5"
|
||||
integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
|
@ -2003,11 +2019,11 @@ follow-redirects@^1.15.6:
|
|||
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
|
||||
|
||||
foreground-child@^3.1.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
|
||||
integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
|
||||
integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.0"
|
||||
cross-spawn "^7.0.6"
|
||||
signal-exit "^4.0.1"
|
||||
|
||||
forever-agent@~0.6.1:
|
||||
|
@ -2096,23 +2112,23 @@ get-caller-file@^2.0.5:
|
|||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-intrinsic@^1.2.5, get-intrinsic@^1.2.6:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044"
|
||||
integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==
|
||||
get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
|
||||
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.1"
|
||||
call-bind-apply-helpers "^1.0.2"
|
||||
es-define-property "^1.0.1"
|
||||
es-errors "^1.3.0"
|
||||
es-object-atoms "^1.0.0"
|
||||
es-object-atoms "^1.1.1"
|
||||
function-bind "^1.1.2"
|
||||
get-proto "^1.0.0"
|
||||
get-proto "^1.0.1"
|
||||
gopd "^1.2.0"
|
||||
has-symbols "^1.1.0"
|
||||
hasown "^2.0.2"
|
||||
math-intrinsics "^1.1.0"
|
||||
|
||||
get-proto@^1.0.0:
|
||||
get-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
|
||||
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
|
||||
|
@ -2214,7 +2230,7 @@ globals@^14.0.0:
|
|||
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
|
||||
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
|
||||
|
||||
globals@^15.13.0, globals@^15.14.0:
|
||||
globals@^15.14.0:
|
||||
version "15.15.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8"
|
||||
integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==
|
||||
|
@ -2233,7 +2249,7 @@ globby@^14.0.0:
|
|||
|
||||
gopd@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
|
||||
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
|
||||
|
||||
got@^12.6.0:
|
||||
|
@ -2317,9 +2333,9 @@ http2-wrapper@^2.1.10:
|
|||
resolve-alpn "^1.2.0"
|
||||
|
||||
hugo-extended@>=0.101.0:
|
||||
version "0.144.1"
|
||||
resolved "https://registry.yarnpkg.com/hugo-extended/-/hugo-extended-0.144.1.tgz#10e2f319b1e2749914467eb49b8ef121041f1b24"
|
||||
integrity sha512-SMXTW7uJToyoTaneBX90Epme2Ae1udlY4S+8KPZwD2nk6F6ypu+g9aVsC4jwvo0udTx/f1/xlQ87n5r2XhzRTA==
|
||||
version "0.145.0"
|
||||
resolved "https://registry.yarnpkg.com/hugo-extended/-/hugo-extended-0.145.0.tgz#04fe311dc8176a6a7f909faf1c17c4d5b196ae5d"
|
||||
integrity sha512-ty+vVfBBxc6w9p4vKt1zbtIPLZi+N+3ibCfil18FtNpXuQhN3vwH/1KLNrj59tSZpMJjk12SosyeRHAefgIEXw==
|
||||
dependencies:
|
||||
careful-downloader "^3.0.0"
|
||||
log-symbols "^5.1.0"
|
||||
|
@ -2657,71 +2673,71 @@ lazy-ass@^1.6.0:
|
|||
resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
|
||||
integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
|
||||
|
||||
lefthook-darwin-arm64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.10.10.tgz#48a3eb7935cb171a36a037e61a68c0dc800efc5f"
|
||||
integrity sha512-hEypKdwWpmNSl4Q8eJxgmlGb2ybJj1+W5/v13Mxc+ApEmjbpNiJzPcdjC9zyaMEpPK4EybiHy8g5ZC0dLOwkpA==
|
||||
lefthook-darwin-arm64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.11.3.tgz#adb4c44d4f82a07f97e09deca36fb706d51514d5"
|
||||
integrity sha512-IYzAOf8Qwqk7q+LoRyy7kSk9vzpUZ5wb/vLzEAH/F86Vay9AUaWe1f2pzeLwFg18qEc1QNklT69h9p/uLQMojA==
|
||||
|
||||
lefthook-darwin-x64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.10.10.tgz#729f5ddd296f876da703496e5071a735e6cf3625"
|
||||
integrity sha512-9xNbeE78i4Amz+uOheg9dcy7X/6X12h98SUMrYWk7fONvjW/Bp9h6nPGIGxI5krHp9iRB8rhmo33ljVDVtTlyg==
|
||||
lefthook-darwin-x64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-darwin-x64/-/lefthook-darwin-x64-1.11.3.tgz#b77c231371f6f60ddaf097d500a4aae5c374eb80"
|
||||
integrity sha512-z/Wp7UMjE1Vyl+x9sjN3NvN6qKdwgHl+cDf98MKKDg/WyPE5XnzqLm9rLLJgImjyClfH7ptTfZxEyhTG3M3XvQ==
|
||||
|
||||
lefthook-freebsd-arm64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.10.10.tgz#24abbba49d5d6007381883bb122089f4d33f0e48"
|
||||
integrity sha512-GT9wYxPxkvO1rtIAmctayT9xQIVII5xUIG3Pv6gZo+r6yEyle0EFTLFDbmVje7p7rQNCsvJ8XzCNdnyDrva90g==
|
||||
lefthook-freebsd-arm64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.11.3.tgz#27665ae8ab91c40a137d2f5a68ba84594988c120"
|
||||
integrity sha512-QevwQ7lrv5wBCkk7LLTzT5KR3Bk/5nttSxT1UH2o0EsgirS/c2K5xSgQmV6m3CiZYuCe2Pja4BSIwN3zt17SMw==
|
||||
|
||||
lefthook-freebsd-x64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.10.10.tgz#e509ab6efe42741a0b8f57e87155f855c701366e"
|
||||
integrity sha512-2BB/HRhEb9wGpk5K38iNkHtMPnn+TjXDtFG6C/AmUPLXLNhGnNiYp+v2uhUE8quWzxJx7QzfnU7Ga+/gzJcIcw==
|
||||
lefthook-freebsd-x64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.11.3.tgz#30f5f398af759212dd68b8b5307229d04ce5c26c"
|
||||
integrity sha512-PYbcyNgdJJ4J2pEO9Ss4oYo5yq4vmQGTKm3RTYbRx4viSWR65hvKCP0C4LnIqspMvmR05SJi2bqe7UBP2t60EA==
|
||||
|
||||
lefthook-linux-arm64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.10.10.tgz#1c5c9339f86fa427d311026af92e9f84a89191a1"
|
||||
integrity sha512-GJ7GALKJ1NcMnNZG9uY+zJR3yS8q7/MgcHFWSJhBl+w4KTiiD/RAdSl5ALwEK2+UX36Eo+7iQA7AXzaRdAii4w==
|
||||
lefthook-linux-arm64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-linux-arm64/-/lefthook-linux-arm64-1.11.3.tgz#ac338808e1c560935704473707e7540171170618"
|
||||
integrity sha512-0pBMBAoafOAEg345eOPozsmRjWR0zCr6k+m5ZxwRBZbZx1bQFDqBakQ3TpFCphhcykmgFyaa1KeZJZUOrEsezA==
|
||||
|
||||
lefthook-linux-x64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.10.10.tgz#629f7f91618073ca8d712ff95e4f0e54d839af3c"
|
||||
integrity sha512-dWUvPM9YTIJ3+X9dB+8iOnzoVHbnNmpscmUqEOKSeizgBrvuuIYKZJGDyjEtw65Qnmn1SJ7ouSaKK93p5c7SkQ==
|
||||
lefthook-linux-x64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-linux-x64/-/lefthook-linux-x64-1.11.3.tgz#eea29dc603f34822c57f47bd9777bfa0e1ffa223"
|
||||
integrity sha512-eiezheZ/bisBCMB2Ur0mctug/RDFyu39B5wzoE8y4z0W1yw6jHGrWMJ4Y8+5qKZ7fmdZg+7YPuMHZ2eFxOnhQA==
|
||||
|
||||
lefthook-openbsd-arm64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.10.10.tgz#29859c0357f00ba828f73ada56fe709bd108bb15"
|
||||
integrity sha512-KnwDyxOvbvGSBTbEF/OxkynZRPLowd3mIXUKHtkg3ABcQ4UREalX+Sh0nWU2dNjQbINx7Eh6B42TxNC7h+qXEg==
|
||||
lefthook-openbsd-arm64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.11.3.tgz#b6eae9109a1a7520392317d635810e43cabe1b89"
|
||||
integrity sha512-DRLTzXdtCj/TizpLcGSqXcnrqvgxeXgn/6nqzclIGqNdKCsNXDzpI0D3sP13Vwwmyoqv2etoTak2IHqZiXZDqg==
|
||||
|
||||
lefthook-openbsd-x64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.10.10.tgz#2ff9cd0ed72f9d5deabdcc84fba4d8e1b6e14c50"
|
||||
integrity sha512-49nnG886CI3WkrzVJ71D1M2KWpUYN1BP9LMKNzN11cmZ0j6dUK4hj3nbW+NcrKXxgYzzyLU3FFwrc51OVy2eKA==
|
||||
lefthook-openbsd-x64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.11.3.tgz#4b681975fe17ad9615b92310ca094c4d292aa5ec"
|
||||
integrity sha512-l7om+ZjWpYrVZyDuElwnucZhEqa7YfwlRaKBenkBxEh2zMje8O6Zodeuma1KmyDbSFvnvEjARo/Ejiot4gLXEw==
|
||||
|
||||
lefthook-windows-arm64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.10.10.tgz#6ba521f289909cd1467b4f408f8ef8a1e87d278f"
|
||||
integrity sha512-9ni0Tsnk+O5oL7EBfKj9C5ZctD1mrTyHCtiu1zQJBbREReJtPjIM9DwWzecfbuVfrIlpbviVQvx5mjZ44bqlWw==
|
||||
lefthook-windows-arm64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-windows-arm64/-/lefthook-windows-arm64-1.11.3.tgz#0cf029605d0c2983bf287269b8347aed460561c5"
|
||||
integrity sha512-X0iTrql2gfPAkU2dzRwuHWgW5RcqCPbzJtKQ41X6Y/F7iQacRknmuYUGyC81funSvzGAsvlusMVLUvaFjIKnbA==
|
||||
|
||||
lefthook-windows-x64@1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.10.10.tgz#aac9caca3152df8f288713929c2ec31ee0a10b54"
|
||||
integrity sha512-gkKWYrlay4iecFfY1Ris5VcRYa0BaNJKMk0qE/wZmIpMgu4GvNg+f9BEwTMflkQIanABduT9lrECaL1lX5ClKw==
|
||||
lefthook-windows-x64@1.11.3:
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook-windows-x64/-/lefthook-windows-x64-1.11.3.tgz#6baac87f6fb36885dea0c360452049dd8d6dad44"
|
||||
integrity sha512-F+ORMn6YJXoS0EXU5LtN1FgV4QX9rC9LucZEkRmK6sKmS7hcb9IHpyb7siRGytArYzJvXVjPbxPBNSBdN4egZQ==
|
||||
|
||||
lefthook@^1.10.10:
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.10.10.tgz#29d0b221429f55d699785ddeeb6fa3c8f9951e6f"
|
||||
integrity sha512-YW0fTONgOXsephvXq2gIFbegCW19MHCyKYX7JDWmzVF1ZiVMnDBYUL/SP3i0RtFvlCmqENl4SgKwYYQGUMnvig==
|
||||
version "1.11.3"
|
||||
resolved "https://registry.yarnpkg.com/lefthook/-/lefthook-1.11.3.tgz#d4c23eade3f9d6c32900c356555ca6380c601513"
|
||||
integrity sha512-HJp37y62j3j8qzAOODWuUJl4ysLwsDvCTBV6odr3jIRHR/a5e+tI14VQGIBcpK9ysqC3pGWyW5Rp9Jv1YDubyw==
|
||||
optionalDependencies:
|
||||
lefthook-darwin-arm64 "1.10.10"
|
||||
lefthook-darwin-x64 "1.10.10"
|
||||
lefthook-freebsd-arm64 "1.10.10"
|
||||
lefthook-freebsd-x64 "1.10.10"
|
||||
lefthook-linux-arm64 "1.10.10"
|
||||
lefthook-linux-x64 "1.10.10"
|
||||
lefthook-openbsd-arm64 "1.10.10"
|
||||
lefthook-openbsd-x64 "1.10.10"
|
||||
lefthook-windows-arm64 "1.10.10"
|
||||
lefthook-windows-x64 "1.10.10"
|
||||
lefthook-darwin-arm64 "1.11.3"
|
||||
lefthook-darwin-x64 "1.11.3"
|
||||
lefthook-freebsd-arm64 "1.11.3"
|
||||
lefthook-freebsd-x64 "1.11.3"
|
||||
lefthook-linux-arm64 "1.11.3"
|
||||
lefthook-linux-x64 "1.11.3"
|
||||
lefthook-openbsd-arm64 "1.11.3"
|
||||
lefthook-openbsd-x64 "1.11.3"
|
||||
lefthook-windows-arm64 "1.11.3"
|
||||
lefthook-windows-x64 "1.11.3"
|
||||
|
||||
levn@^0.4.1:
|
||||
version "0.4.1"
|
||||
|
@ -2760,13 +2776,14 @@ listr2@^3.8.3:
|
|||
through "^2.3.8"
|
||||
wrap-ansi "^7.0.0"
|
||||
|
||||
local-pkg@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d"
|
||||
integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==
|
||||
local-pkg@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd"
|
||||
integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
|
||||
dependencies:
|
||||
mlly "^1.7.3"
|
||||
pkg-types "^1.2.1"
|
||||
mlly "^1.7.4"
|
||||
pkg-types "^2.0.1"
|
||||
quansync "^0.2.8"
|
||||
|
||||
locate-path@^6.0.0:
|
||||
version "6.0.0"
|
||||
|
@ -3006,7 +3023,7 @@ mkdirp@^1.0.3:
|
|||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mlly@^1.7.3, mlly@^1.7.4:
|
||||
mlly@^1.7.4:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f"
|
||||
integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==
|
||||
|
@ -3027,9 +3044,9 @@ ms@^2.1.1, ms@^2.1.3:
|
|||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
nanoid@^3.3.8:
|
||||
version "3.3.8"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
|
||||
integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
|
||||
version "3.3.9"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.9.tgz#e0097d8e026b3343ff053e9ccd407360a03f503a"
|
||||
integrity sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
|
@ -3183,10 +3200,12 @@ package-json-from-dist@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
|
||||
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
|
||||
|
||||
package-manager-detector@^0.2.0:
|
||||
version "0.2.9"
|
||||
resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.9.tgz#20990785afa69d38b4520ccc83b34e9f69cb970f"
|
||||
integrity sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==
|
||||
package-manager-detector@^0.2.8:
|
||||
version "0.2.11"
|
||||
resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-0.2.11.tgz#3af0b34f99d86d24af0a0620603d2e1180d05c9c"
|
||||
integrity sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==
|
||||
dependencies:
|
||||
quansync "^0.2.7"
|
||||
|
||||
parent-module@^1.0.0:
|
||||
version "1.0.1"
|
||||
|
@ -3243,10 +3262,10 @@ path-type@^6.0.0:
|
|||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-6.0.0.tgz#2f1bb6791a91ce99194caede5d6c5920ed81eb51"
|
||||
integrity sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==
|
||||
|
||||
pathe@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.2.tgz#5ed86644376915b3c7ee4d00ac8c348d671da3a5"
|
||||
integrity sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==
|
||||
pathe@^2.0.1, pathe@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716"
|
||||
integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
|
||||
|
||||
pend@~1.2.0:
|
||||
version "1.2.0"
|
||||
|
@ -3258,7 +3277,7 @@ performance-now@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||
integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
|
||||
|
||||
picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1:
|
||||
picocolors@^1.0.0, picocolors@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||
|
@ -3290,7 +3309,7 @@ pinkie@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
||||
integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
|
||||
|
||||
pkg-types@^1.2.1, pkg-types@^1.3.0:
|
||||
pkg-types@^1.3.0:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df"
|
||||
integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
|
||||
|
@ -3299,6 +3318,15 @@ pkg-types@^1.2.1, pkg-types@^1.3.0:
|
|||
mlly "^1.7.4"
|
||||
pathe "^2.0.1"
|
||||
|
||||
pkg-types@^2.0.1:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.1.0.tgz#70c9e1b9c74b63fdde749876ee0aa007ea9edead"
|
||||
integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==
|
||||
dependencies:
|
||||
confbox "^0.2.1"
|
||||
exsolve "^1.0.1"
|
||||
pathe "^2.0.3"
|
||||
|
||||
points-on-curve@0.2.0, points-on-curve@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1"
|
||||
|
@ -3376,9 +3404,9 @@ prettier-plugin-sql@^0.18.0:
|
|||
tslib "^2.6.2"
|
||||
|
||||
prettier@^3.2.5:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.1.tgz#22fac9d0b18c0b92055ac8fb619ac1c7bef02fb7"
|
||||
integrity sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw==
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5"
|
||||
integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==
|
||||
|
||||
pretty-bytes@^5.6.0:
|
||||
version "5.6.0"
|
||||
|
@ -3423,12 +3451,17 @@ punycode@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
|
||||
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
|
||||
|
||||
qs@6.13.1:
|
||||
version "6.13.1"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e"
|
||||
integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==
|
||||
qs@6.14.0:
|
||||
version "6.14.0"
|
||||
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930"
|
||||
integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
|
||||
dependencies:
|
||||
side-channel "^1.0.6"
|
||||
side-channel "^1.1.0"
|
||||
|
||||
quansync@^0.2.7, quansync@^0.2.8:
|
||||
version "0.2.8"
|
||||
resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.8.tgz#2e893d17bb754ba0988ea399ff0bc5f2a8467793"
|
||||
integrity sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
|
@ -3558,9 +3591,9 @@ ret@~0.1.10:
|
|||
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
|
||||
integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
|
||||
|
||||
rfdc@^1.3.0:
|
||||
version "1.4.1"
|
||||
|
@ -3609,9 +3642,9 @@ rw@1:
|
|||
integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
|
||||
|
||||
rxjs@^7.5.1:
|
||||
version "7.8.1"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
|
||||
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
|
||||
version "7.8.2"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
|
||||
integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
|
@ -3642,16 +3675,11 @@ seek-bzip@^1.0.5:
|
|||
dependencies:
|
||||
commander "^2.8.1"
|
||||
|
||||
semver@^7.3.4:
|
||||
semver@^7.3.4, semver@^7.5.3:
|
||||
version "7.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
|
||||
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
||||
|
||||
semver@^7.5.3:
|
||||
version "7.7.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.0.tgz#9c6fe61d0c6f9fa9e26575162ee5a9180361b09c"
|
||||
integrity sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==
|
||||
|
||||
serialize-javascript@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
|
||||
|
@ -3705,7 +3733,7 @@ side-channel-weakmap@^1.0.2:
|
|||
object-inspect "^1.13.3"
|
||||
side-channel-map "^1.0.1"
|
||||
|
||||
side-channel@^1.0.6:
|
||||
side-channel@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
|
||||
integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
|
||||
|
@ -3788,9 +3816,9 @@ spdx-license-ids@^3.0.0:
|
|||
integrity sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==
|
||||
|
||||
sql-formatter@^15.0.2:
|
||||
version "15.4.10"
|
||||
resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.4.10.tgz#f7f4745aa1b9fc3c8ce493bf882610ca6200dedf"
|
||||
integrity sha512-zQfiuxU1F/C7TNu+880BdL+fuvJTd1Kj8R0wv48dfZ27NR3z1PWvQFkH8ai/HrIy+NyvXCaZBkJHp/EeZFXSOA==
|
||||
version "15.4.11"
|
||||
resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.4.11.tgz#10a8205aa82d60507811360d4735e81d4a21c137"
|
||||
integrity sha512-AfIjH0mYxv0NVzs4mbcGIAcos2Si20LeF9GMk0VmVA4A3gs1PFIixVu3rtcz34ls7ghPAjrDb+XbRly/aF6HAg==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
get-stdin "=8.0.0"
|
||||
|
@ -3974,22 +4002,22 @@ through@^2.3.8:
|
|||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
|
||||
|
||||
tinyexec@^0.3.0:
|
||||
tinyexec@^0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2"
|
||||
integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
|
||||
|
||||
tldts-core@^6.1.77:
|
||||
version "6.1.77"
|
||||
resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.77.tgz#0fa4563163a7a61d72c4b05650fb66fc7e815500"
|
||||
integrity sha512-bCaqm24FPk8OgBkM0u/SrEWJgHnhBWYqeBo6yUmcZJDCHt/IfyWBb+14CXdGi4RInMv4v7eUAin15W0DoA+Ytg==
|
||||
tldts-core@^6.1.84:
|
||||
version "6.1.84"
|
||||
resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.84.tgz#f8ac2af9969bf9c2f7a99fa05d9c667b5e5b768c"
|
||||
integrity sha512-NaQa1W76W2aCGjXybvnMYzGSM4x8fvG2AN/pla7qxcg0ZHbooOPhA8kctmOZUDfZyhDL27OGNbwAeig8P4p1vg==
|
||||
|
||||
tldts@^6.1.32:
|
||||
version "6.1.77"
|
||||
resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.77.tgz#714e3d1989e562886f2ed97b65e95a8e9f9e92d9"
|
||||
integrity sha512-lBpoWgy+kYmuXWQ83+R7LlJCnsd9YW8DGpZSHhrMl4b8Ly/1vzOie3OdtmUJDkKxcgRGOehDu5btKkty+JEe+g==
|
||||
version "6.1.84"
|
||||
resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.84.tgz#fb58b1ceb70972a1ecd683606cea3d06c78f7238"
|
||||
integrity sha512-aRGIbCIF3teodtUFAYSdQONVmDRy21REM3o6JnqWn5ZkQBJJ4gHxhw6OfwQ+WkSAi3ASamrS4N4nyazWx6uTYg==
|
||||
dependencies:
|
||||
tldts-core "^6.1.77"
|
||||
tldts-core "^6.1.84"
|
||||
|
||||
tmp@~0.2.3:
|
||||
version "0.2.3"
|
||||
|
@ -4009,9 +4037,9 @@ to-regex-range@^5.0.1:
|
|||
is-number "^7.0.0"
|
||||
|
||||
tough-cookie@^5.0.0:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.1.tgz#4641c1fdbf024927e29c5532edb7b6e5377ea1f2"
|
||||
integrity sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA==
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7"
|
||||
integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==
|
||||
dependencies:
|
||||
tldts "^6.1.32"
|
||||
|
||||
|
@ -4131,9 +4159,9 @@ unzipper@^0.10.14:
|
|||
setimmediate "~1.0.4"
|
||||
|
||||
update-browserslist-db@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580"
|
||||
integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420"
|
||||
integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==
|
||||
dependencies:
|
||||
escalade "^3.2.0"
|
||||
picocolors "^1.1.1"
|
||||
|
@ -4348,6 +4376,6 @@ yocto-queue@^0.1.0:
|
|||
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
||||
|
||||
yocto-queue@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110"
|
||||
integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.0.tgz#4a29a93e7591328fa31768701e6ea66962401f79"
|
||||
integrity sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==
|
||||
|
|
Loading…
Reference in New Issue