Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex DataLens
    • Обзор
    • Добавление продукта из Marketplace
    • Создание партнерского коннектора
  • Аудитные логи Audit Trails

В этой статье:

  • Как стать партнером
  • Как создать коннектор
  • Как подключить нового пользователя
  • Работа пользователя с коннектором
  1. Marketplace
  2. Создание партнерского коннектора

Создание партнерского коннектора

Статья создана
Yandex Cloud
Обновлена 11 июня 2025 г.
  • Как стать партнером
  • Как создать коннектор
  • Как подключить нового пользователя
  • Работа пользователя с коннектором

Если вы партнер DataLens, вы можете создать свой коннектор (тип подключения) и добавить его в DataLens Marketplace или на страницу подключений. С помощью коннектора пользователи смогут создавать датасеты, чарты и дашборды на основе ваших данных.

Преимущества работы с коннектором для партнеров DataLens:

  • простой доступ пользователей к данным;
  • разграничение доступа к данным (каждый пользователь видит только те данные, которые вы ему предоставляете);
  • развертывание готового дашборда с вашими данными и возможность его изменять.

Как стать партнеромКак стать партнером

На главной странице Marketplace нажмите кнопку Предложить продукт и заполните заявку.

После подачи заявки с вами свяжутся менеджеры DataLens.

Передайте менеджерам DataLens информацию о продукте:

  • Название на русском и английском языках.
  • Описание на русском и английском языках.
  • Примеры использования на русском и английском языках.
  • Инструкцию для пользователей на русском и английском языках.
  • Иконку (вектор, SVG).
  • Цену и желаемый процесс оплаты (если продукт платный).
  • Контакты разработчика.

Как создать коннекторКак создать коннектор

Коннектор необходимо создать на базе кластера CH, в котором будут храниться данные ваших пользователей.

  1. Создайте кластер ClickHouse® в облаке.

    1. В кластере добавьте пользователя БД datalens с параметром readonly = 2.

      Примечание

      Если кластер переведен под управление SQL, то создать пользователя можно командой:

      CREATE USER IF NOT EXISTS <имя_пользователя> ON CLUSTER <имя_кластера>
          IDENTIFIED WITH plaintext_password by '<пароль_пользователя>'
          SETTINGS readonly = 2;
      
    2. В настройках включите Доступ из DataLens и Управление базами данных через SQL.

  2. Передайте пароль и список хостов кластера менеджерам DataLens, которые свяжутся с вами после оставления заявки в Marketplace.

  3. Сгенерируйте пару RSA-2048 ключей. Передайте открытый ключ и версию ключа менеджерам DataLens.
    Требования для генерации ключа: public_exponent=65537, key_size=2048. Версия ключа — целое число, версия необходима для бесшовной ротации ключей в будущем.

    Python-код для генерации пары ключей
    from cryptography.hazmat.primitives.asymmetric import rsa
    from cryptography.hazmat.primitives import serialization
    
    private_key = rsa.generate_private_key(
        public_exponent=65537,
        key_size=2048,
    )
    private_pem = private_key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.TraditionalOpenSSL,
        encryption_algorithm=serialization.NoEncryption()
    ).decode()
    
    public_key = private_key.public_key()
    public_pem = public_key.public_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PublicFormat.SubjectPublicKeyInfo
    ).decode()
    print(public_pem)
    
  4. DataLens также передаст вам открытую часть своего ключа и его версию.
    После этого DataLens создаст для вас коннектор, который будет отправлять запросы в ваш кластер ClickHouse®.

Как подключить нового пользователяКак подключить нового пользователя

  1. Добавьте в кластер ClickHouse® базы данных для ваших пользователей. Для каждого пользователя создайте в кластере ClickHouse® отдельную БД. К БД выдается доступ на чтение от БД пользователя datalens.

  2. Подготовьте токен доступа для пользователя:

    Важно

    Для каждого пользователя должен быть отдельный токен доступа в формате строки.

    1. Сгенерируйте JSON с именем БД клиента, например {"db_name":"client_1234383"}.
    2. Зашифруйте JSON открытым ключом DataLens. Параметры шифрования: padding scheme PKCS1 v1.5.
    3. Подпишите зашифрованную строку своим секретным ключом. Параметры подписи: padding scheme PKCS1 v1.5, signature hash algorithm: SHA1.
    4. Сгенерируйте токен доступа по схеме <datalens_key_version>:<partner_key_version>:<encrypted_data>:<signature>, где:
      • datalens_key_version и partner_key_version — версии ключей.
      • encrypted_data — зашифрованный JSON (результат шага 2.2), закодированный в Base64.
      • signature — подпись зашифрованного сообщения (результат шага 2.3), закодированная в Base64.
    Python-код для генерации токена доступа
     import json
     from base64 import b64encode, b64decode
     from cryptography.hazmat.primitives import serialization
     from cryptography.hazmat.primitives import hashes
     from cryptography.hazmat.primitives.asymmetric import padding
     
     public_key_datalens_pem = '''-----BEGIN PUBLIC KEY-----...''' # Публичный RSA-ключ DataLens.
     private_key_partner_pem = '''-----BEGIN RSA PRIVATE KEY-----...''' # Ваш приватный RSA-ключ. 
     datalens_key_version, partner_key_version = '1', '1' # Версии ключей.
     
     data = json.dumps({'db_name': 'db_name_123'}) # JSON с БД пользователя в кластере ClickHouse®.
     
     public_key_datalens = serialization.load_pem_public_key(public_key_datalens_pem.encode())
     private_key_partner = serialization.load_pem_private_key(
         private_key_partner_pem.encode(),
         password=None,
     )
     ciphertext = public_key_datalens.encrypt(data.encode(), padding.PKCS1v15()) # Зашифрованное JSON-сообщение с БД пользователя.
     signature = private_key_partner.sign(ciphertext, padding.PKCS1v15(), hashes.SHA1()) # Подпись зашифрованного сообщения. 
     
     access_token = ':'.join((
         datalens_key_version,
         partner_key_version,
         b64encode(ciphertext).decode(encoding='utf-8'),
         b64encode(signature).decode(encoding='utf-8'),
     ))
    
  3. Передайте токен доступа пользователю через ваш сайт или любым другим способом.

Работа пользователя с коннекторомРабота пользователя с коннектором

  1. Получает токен доступа для DataLens на вашем сайте.

  2. Переходит в DataLens Marketplace, приобретает коннектор или активирует бесплатный продукт.

  3. Переходит на страницу подключений DataLens и выбирает активированный коннектор из списка.

  4. Вводит переданный вами токен доступа на странице создания нового подключения. За счет этого подключение привязывается к БД, имя которой зашифровано в токене доступа.

    Пример подключения

    image

  5. Сохраняет подключение. После этого в DataLens разворачивается стандартный дашборд на основе данных коннектора.

См. такжеСм. также

  • Marketplace

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Добавление продукта из Marketplace
Следующая
Действующие правила
Проект Яндекса
© 2025 ООО «Яндекс.Облако»