---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - en/cookbook/specific-functions
  - ru/cookbook/specific-functions
  - href: ru/cookbook/specific-functions.md
    type: text/markdown
    title: Markdown version
csp:
  - script-src:
      - https://mc.yandex.ru
    img-src:
      - https://mc.yandex.ru
    connect-src:
      - https://mc.yandex.ru
      - wss://mc.yandex.ru
    child-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-ancestors:
      - 'blob:'
      - https://mc.yandex.ru
canonical: ru/cookbook/specific-functions.html
title: Подключение специфичных функций в DataLens On-premises
description: >-
  Из статьи вы узнаете, как расширить стандартную функциональность DataLens
  On-premises.
vcsPath: ru/cookbook/specific-functions.md
---

# Подключение специфичных функций

## Подключение Яндекс Карт {#maps}

В DataLens доступна схематическая карта мира. Посмотреть примеры использования геоаналитики можно на [демодашборде](https://datalens.yandex/demo).


![image](../_assets/datalens/cookbook/map.png)


### Что требуется от администратора {#results}

1. **Получить API-ключ**.

    Ваша организация должна получить [API-ключ для JavaScript API и Geocoding API](https://yandex.ru/dev/maps/commercial/). Это коммерческий продукт, его использование регулируется отдельным договором.

    {% note info %}

    При отсутствии ключа функция будет работать, пока не исчерпает лимит по количеству бесплатных запросов в сутки.

    {% endnote %}

1. **Включить функцию**. Это можно сделать двумя способами:

    * **Базовый**

        Функцию карт можно включить через добавление двух параметров при инициализации:

        ```shell
        ./init.sh --yandex-map --yandex-map-token <ваш_api_ключ_от_яндекс_карт>
        ```

    * **C отдельным `values`-файлом**

        `values.yaml` должен содержать полную конфигурацию.

1. **Настроить `values.yaml`**.

    При использовании ключа его нужно прописать в конфигурации DataLens.
    
    ```yaml
    # в вашем файле values.yaml
    features:
    yandex_map:
        enabled: true
        token: 'ВАШ_API_КЛЮЧ_ОТ_ЯНДЕКС_КАРТ' # если не используете ключ, то удалите эту строку
    ```

1. **Применить конфигурацию**.

    Выполните `./init.sh --values <ваш_файл>.yaml`, чтобы изменения вступили в силу.

После этого у пользователей в настройках карт появится возможность выбирать слои Яндекс Карты.

## Editor {#editor}

Editor — это песочница для продвинутых пользователей и разработчиков, которая позволяет создавать визуализации не из стандартного набора.

### Как это работает

* Пользователь пишет код на JavaScript.

* В коде могут использоваться библиотеки для создания сложных диаграмм или Gravity UI Charts, которая используется и самим DataLens.

* Данные для визуализации могут поступать из датасета или через JSON API Connector.

Посмотреть разные способы применения Editor можно на [демодашборде DataLens Editor](https://datalens.yandex/editor-demo).

Пример построения таблиц на основе датасета — в статье [«Создание таблицы на основе датасета»](../charts/editor/quickstart/from-dataset.md).

Пример построения таблицы на основе API Connector — в статье [«Создание таблицы через API»](../charts/editor/quickstart/from-api-connector.md).

### Что требуется от администратора

Editor активируется аналогично другим функциям параметром `--editor`.

После применения этой настройки у пользователей при создании чарта появится новый тип — **Editor**. Администратор не обязан уметь писать код для Editor, его задача — предоставить пользователям такую возможность.

## API Connector {#api-connector}

API Connector позволяет подключаться к произвольным HTTP API прямо из DataLens и использовать полученные данные для построения чартов в Editor.

### Что умеет

* отправлять GET- и POST-запросы к любому доступному API;
* работать по HTTP и HTTPS;
* передавать открытые заголовки: `Accept-Charset`, `Accept-Encoding`, `Accept-Language`, `Prefer`;
* передавать приватные (зашифрованные) заголовки для аутентификации: `Authorization`, `X-Api-Key`, `X-ClickHouse-User`, `X-ClickHouse-Key`.

{% note info %}

API Connector станет доступным после включения Editor.

{% endnote %}

### Как попробовать

1. В воркбуке нажмите **Создать** → **Подключение**.
1. В разделе **Файлы и сервисы** выберите **API Connector**.
1. Укажите хост, порт, путь к эндпоинту и разрешенные методы.
1. При необходимости добавьте заголовки авторизации — они будут храниться в зашифрованном виде.
1. Сохраните подключение и используйте его в Editor-чартах.


![image](../_assets/datalens/cookbook/api-connector.png)


Подробнее можно почитать в статье [Создание подключения API Connector](../operations/connection/create-api-connector.md).

## Кейс {#case-example}

Аналитик просит вас включить слой **Спутник** на картах в DataLens. Что из перечисленного является обязательным условием для выполнения этой задачи?

* Включить `features.editor.enabled: true`.
* Получить коммерческий API-ключ для Яндекс Карт и прописать его в `values.yaml`.
* Увеличить количество реплик пода `data-api`.
* Создать подключение к базе данных с геокоординатами.

{% cut "Узнать ответ" %}

* Включить `features.editor.enabled: true`.

    Неверно. Editor — это отдельная функция для кастомных визуализаций, она не связана с Яндекс Картами.

* Получить коммерческий API-ключ для Яндекс Карт и прописать его в `values.yaml`.

    Верно. Слои **Спутник** и **Гибрид** предоставляются коммерческим API Яндекс Карт и требуют наличия ключа.

* Увеличить количество реплик пода `data-api`.

    Неверно. Производительность `data-api` не влияет на доступность слоев карт.

* Создать подключение к базе данных с геокоординатами.

    Неверно. Это необходимо для создания чарта с картой, но не для включения самих слоев карт в интерфейсе.

{% endcut %}

## Итоги {#results}

Теперь вы знаете, как расширить стандартную функциональность DataLens, предоставив пользователям доступ к Яндекс Картам и редактору чартов. Ваша роль как администратора — это включение и настройка платформы, а создание контента — задача аналитиков.
