From 11a12320e5a3d7009bacd724613b2cd0c77c1f1a Mon Sep 17 00:00:00 2001 From: Ivan Blinkov Date: Wed, 7 May 2025 18:36:11 +0700 Subject: [PATCH 1/4] [docs] add DataLens integration --- .../visualization/_assets/datalens.jpeg | Bin 0 -> 37453 bytes .../integrations/visualization/datalens.md | 58 ++++++++++++++++++ .../visualization/toc-visualization.yaml | 2 + .../visualization/_assets/datalens.jpeg | Bin 0 -> 34776 bytes .../integrations/visualization/datalens.md | 58 ++++++++++++++++++ .../visualization/toc-visualization.yaml | 2 + 6 files changed, 120 insertions(+) create mode 100644 ydb/docs/en/core/integrations/visualization/_assets/datalens.jpeg create mode 100644 ydb/docs/en/core/integrations/visualization/datalens.md create mode 100644 ydb/docs/ru/core/integrations/visualization/_assets/datalens.jpeg create mode 100644 ydb/docs/ru/core/integrations/visualization/datalens.md diff --git a/ydb/docs/en/core/integrations/visualization/_assets/datalens.jpeg b/ydb/docs/en/core/integrations/visualization/_assets/datalens.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..c841e4e7bc099e9cd849db65b9f749fd748076da GIT binary patch literal 37453 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 literal 0 HcmV?d00001 diff --git a/ydb/docs/en/core/integrations/visualization/datalens.md b/ydb/docs/en/core/integrations/visualization/datalens.md new file mode 100644 index 000000000000..bb4891d67fab --- /dev/null +++ b/ydb/docs/en/core/integrations/visualization/datalens.md @@ -0,0 +1,58 @@ +# DataLens + +[DataLens](https://datalens.tech) is an open-source business intelligence (BI) and data visualization tool that enables users to analyze and display data from various sources, including {{ ydb-short-name }}. DataLens allows you to describe data models, create charts and other visualizations, build dashboards, and provide collaborative access to analytics. + +## Prerequisites + +DataLens must be [deployed and configured](https://datalens.tech/docs/en/quickstart.html). + +{% note info %} + +This article covers the integration of self-managed {{ ydb-short-name }} and DataLens. For documentation on integrating the respective managed services, refer to the [Yandex Cloud documentation](https://yandex.cloud/en/docs/datalens/operations/connection/create-ydb). + +{% endnote %} + +## Adding a database connection to {{ ydb-short-name }} {#add-database-connection} + +To create a connection to {{ ydb-short-name }}: + +1. Go to the [workbook](https://datalens.tech/docs/en/workbooks-collections/index.html) page or create a new one. +2. In the top right corner, click **Create** → **Connection**. +3. Select the **{{ ydb-short-name }}** connection. +4. Choose an authentication type: + + {% list tabs group=auth-type %} + + - Anonymous {#anonymous} + + * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. + * **Database path**. Specify the name of the database to connect to. + + - Password {#password} + + * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. + * **Database path**. Specify the name of the database to connect to. + * **Username**. Enter the username to connect to {{ ydb-short-name }}. + * **Password**. Enter the user password. + + - OAuth {#oauth} + + * **OAuth token**. Provide the OAuth token to access {{ ydb-short-name }}. + * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. + * **Database path**. Specify the name of the database to connect to. + + {% endlist %} + + * **Cache lifetime in seconds**. Set the cache lifetime or leave the default value. The recommended value is 300 seconds (5 minutes). + * **SQL query access level**. Allows the use of custom SQL queries to create a dataset. + +5. Click **Create connection**. +6. Specify a connection name and click **Create**. +7. Proceed to [creating a dataset](https://datalens.tech/docs/en/dataset/index.html). + +## Example + +![DataLens {{ ydb-short-name }} connection](_assets/datalens.jpeg) \ No newline at end of file diff --git a/ydb/docs/en/core/integrations/visualization/toc-visualization.yaml b/ydb/docs/en/core/integrations/visualization/toc-visualization.yaml index 08cd20e34ad4..bff5b0cac653 100644 --- a/ydb/docs/en/core/integrations/visualization/toc-visualization.yaml +++ b/ydb/docs/en/core/integrations/visualization/toc-visualization.yaml @@ -1,6 +1,8 @@ items: - name: Apache Superset href: superset.md +- name: DataLens + href: datalens.md - name: FineBI href: finebi.md - name: Grafana data source diff --git a/ydb/docs/ru/core/integrations/visualization/_assets/datalens.jpeg b/ydb/docs/ru/core/integrations/visualization/_assets/datalens.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..580828d8abff08d5a383afd174171fd6fd460f3a GIT binary patch literal 34776 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%0D#Z!{FFyN{TC2q&)vXcADmQ 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 Date: Wed, 7 May 2025 18:38:42 +0700 Subject: [PATCH 2/4] fixes --- ydb/docs/en/core/integrations/visualization/datalens.md | 6 +++--- ydb/docs/ru/core/integrations/visualization/datalens.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ydb/docs/en/core/integrations/visualization/datalens.md b/ydb/docs/en/core/integrations/visualization/datalens.md index bb4891d67fab..c789ec78512e 100644 --- a/ydb/docs/en/core/integrations/visualization/datalens.md +++ b/ydb/docs/en/core/integrations/visualization/datalens.md @@ -25,13 +25,13 @@ To create a connection to {{ ydb-short-name }}: - Anonymous {#anonymous} - * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Host name**. Specify the hostname for {{ ydb-short-name }} connection. * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. * **Database path**. Specify the name of the database to connect to. - Password {#password} - * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Host name**. Specify the hostname for {{ ydb-short-name }} connection. * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. * **Database path**. Specify the name of the database to connect to. * **Username**. Enter the username to connect to {{ ydb-short-name }}. @@ -40,7 +40,7 @@ To create a connection to {{ ydb-short-name }}: - OAuth {#oauth} * **OAuth token**. Provide the OAuth token to access {{ ydb-short-name }}. - * **Host name**. Specify the host path for {{ ydb-short-name }}. + * **Host name**. Specify the hostname for {{ ydb-short-name }} connection. * **Port**. Specify the connection port for {{ ydb-short-name }}. The default port is 2135. * **Database path**. Specify the name of the database to connect to. diff --git a/ydb/docs/ru/core/integrations/visualization/datalens.md b/ydb/docs/ru/core/integrations/visualization/datalens.md index 7b94ba96dc9e..bf531c122bc6 100644 --- a/ydb/docs/ru/core/integrations/visualization/datalens.md +++ b/ydb/docs/ru/core/integrations/visualization/datalens.md @@ -25,13 +25,13 @@ DataLens должен быть [развёрнут и настроен](https:// - Анонимный {#anonymous} - * **Имя хоста** — путь к хосту {{ ydb-short-name }}. + * **Имя хоста** — хостнейм для подключения к {{ ydb-short-name }}. * **Порт** — порт подключения к {{ ydb-short-name }}. По умолчанию — 2135. * **Путь к базе данных** — имя базы данных для подключения. - Пароль {#password} - * **Имя хоста** — путь к хосту {{ ydb-short-name }}. + * **Имя хоста** — хостнейм для подключения к {{ ydb-short-name }}. * **Порт** — порт подключения к {{ ydb-short-name }}. По умолчанию — 2135. * **Путь к базе данных** — имя базы данных для подключения. * **Имя пользователя** — имя пользователя для подключения к {{ ydb-short-name }}. @@ -40,7 +40,7 @@ DataLens должен быть [развёрнут и настроен](https:// - OAuth {#oauth} * **OAuth-токен** — OAuth-токен для доступа к {{ ydb-short-name }}. - * **Имя хоста** — путь к хосту {{ ydb-short-name }}. + * **Имя хоста** — хостнейм для подключения к {{ ydb-short-name }}. * **Порт** — порт подключения к {{ ydb-short-name }}. По умолчанию — 2135. * **Путь к базе данных** — имя базы данных для подключения. From 329cdb8f92f6fe8151c95949e8581f406f610111 Mon Sep 17 00:00:00 2001 From: Ivan Blinkov Date: Mon, 12 May 2025 19:02:41 +0700 Subject: [PATCH 3/4] Update toc-table.md --- .../en/core/integrations/visualization/_includes/toc-table.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ydb/docs/en/core/integrations/visualization/_includes/toc-table.md b/ydb/docs/en/core/integrations/visualization/_includes/toc-table.md index 4c66f46753c8..1aba3fb1057e 100644 --- a/ydb/docs/en/core/integrations/visualization/_includes/toc-table.md +++ b/ydb/docs/en/core/integrations/visualization/_includes/toc-table.md @@ -3,5 +3,6 @@ | Environment | Compatibility Level | Instruction | | --- | :---: | --- | | [Apache Superset](https://superset.apache.org) | [PostgreSQL wire protocol](../../../postgresql/intro.md) | [Instruction](../superset.md) | +| [DataLens](https://datalens.tech) | Full | [Instruction](../datalens.md) | | [FineBI](https://intl.finebi.com/) | [PostgreSQL wire protocol](../../../postgresql/intro.md) | [Instruction](../finebi.md) | -| [Grafana](https://grafana.com) | Full | [Instruction](../grafana.md) | \ No newline at end of file +| [Grafana](https://grafana.com) | Full | [Instruction](../grafana.md) | From fc08f7f8700e45558ae70487e34a9f91ab043ae3 Mon Sep 17 00:00:00 2001 From: Ivan Blinkov Date: Mon, 12 May 2025 19:03:03 +0700 Subject: [PATCH 4/4] Update toc-table.md --- .../ru/core/integrations/visualization/_includes/toc-table.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ydb/docs/ru/core/integrations/visualization/_includes/toc-table.md b/ydb/docs/ru/core/integrations/visualization/_includes/toc-table.md index 9a68e98cbd49..3ff8c5add804 100644 --- a/ydb/docs/ru/core/integrations/visualization/_includes/toc-table.md +++ b/ydb/docs/ru/core/integrations/visualization/_includes/toc-table.md @@ -3,5 +3,6 @@ | Среда | Уровень поддержки | Инструкция | | --- | :---: | --- | | [Apache Superset](https://superset.apache.org) | Через [PostgreSQL-совместимость](../../../postgresql/intro.md) | [Инструкция](../superset.md) | +| [DataLens](https://datalens.tech) | Полный | [Instruction](../datalens.md) | | [FineBI](https://intl.finebi.com) | Через [PostgreSQL-совместимость](../../../postgresql/intro.md) | [Инструкция](../finebi.md) | | [Grafana](https://grafana.com) | Полный| [Инструкция](../grafana.md) |