Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Прямая материализация из Estuary в ClickHouse

Партнерская интеграция

Estuary предоставляет коннектор прямой материализации для ClickHouse, использующий собственный протокол ClickHouse и собственный формат ClickHouse.

Это позволяет Estuary:

  • Материализовать данные как в самоуправляемые экземпляры ClickHouse, так и в ClickHouse Cloud
  • Автоматически выполнять такие задачи, как создание таблиц и изменение схемы
  • Поддерживать мягкое и жёсткое удаление
  • Использовать ReplacingMergeTree для стандартных обновлений при слиянии или MergeTree для дельта-обновлений
  • Обеспечивать семантику доставки exactly-once

Информацию о рабочем процессе ClickPipes см. в интеграции Kafka ClickPipe от Estuary.

Руководство по настройке

Предварительные требования

Вам потребуются:

  • Аккаунт Estuary
  • Один или несколько capture в Estuary, получающих данные из нужных источников
  • Самоуправляемый экземпляр ClickHouse или аккаунт ClickHouse Cloud
  • Пользователь базы данных ClickHouse с учетными данными

Настройте ClickHouse для интеграции

Чтобы настроить коннектор ClickHouse для Estuary, соберите информацию об экземпляре ClickHouse и настройте разрешения пользователя.

  1. Скопируйте конечную точку хоста базы данных.

    Используйте порт 9440, если TLS включен, или 9000, если TLS отключен.

    Хост и порт вместе образуют адрес, который необходимо указать в Estuary.

  2. Предоставьте разрешения пользователю базы данных, которого будет использовать Estuary.

    Чтобы автоматически создавать таблицы и управлять ими, Estuary потребуются разрешения CREATE, SELECT, INSERT и другие для целевой базы данных, а также разрешения на обнаружение метаданных и управление партициями.

    Все необходимые разрешения можно предоставить, выполнив следующие SQL-команды и заменив <database> и <user> своими значениями:

    -- Доступ к целевой базе данных: CREATE TABLE, DROP TABLE, SELECT, INSERT, TRUNCATE и т. д.
    GRANT ALL ON <database>.* TO <user>;
    
    -- Доступ к системным таблицам для обнаружения метаданных и управления партициями.
    -- Эти разрешения НЕ предоставляются указанным выше разрешением для базы данных.
    GRANT SELECT ON system.columns TO <user>;
    GRANT SELECT ON system.parts TO <user>;
    GRANT SELECT ON system.tables TO <user>;
  3. При необходимости ограничьте системный доступ пользователя только целевой базой данных.

    Для этого можно использовать политики уровня строк. Например:

    CREATE ROW POLICY estuary_columns ON system.columns FOR SELECT USING database = '<database>' TO <user>;
    CREATE ROW POLICY estuary_parts ON system.parts FOR SELECT USING database = '<database>' TO <user>;
    CREATE ROW POLICY estuary_tables ON system.tables FOR SELECT USING database = '<database>' TO <user>;

Затем перейдите в Estuary, чтобы завершить настройку.

Создайте материализацию Estuary

  1. На панели мониторинга Estuary перейдите на страницу Destinations.

  2. Нажмите + New Materialization.

  3. Выберите коннектор ClickHouse.

  4. Заполните раздел Materialization Details:

    • Укажите уникальное имя материализации
    • Выберите плоскость данных (облачного провайдера и регион)
  5. Заполните раздел Endpoint Config, чтобы Estuary мог подключиться к экземпляру ClickHouse:

    • Address: хост и порт экземпляра
    • Database: имя целевой базы данных
    • Authentication: имя пользователя и пароль пользователя базы данных

    Также можно настроить необязательные параметры, например использование жёсткого удаления и режим SSL.

Настройте исходные collection

В разделе Source Collections выберите источники, которые нужно материализовать в ClickHouse.

  1. Свяжите существующий capture или добавьте отдельные collection данных для материализации в ClickHouse.
  2. При необходимости выберите collection данных из списка для дополнительной настройки. Доступны следующие параметры:
    • Выберите другое имя таблицы для collection
    • Выберите поведение слияния для collection (использовать ли режим дельта-обновлений)
    • Настройте выбор полей, чтобы определить, какие поля будут материализованы
  3. Когда настройка материализации данных в ClickHouse вас устроит, нажмите Next, а затем Save and Publish.

Estuary начнет загружать исторические данные из выбранных collection в ClickHouse, а затем будет передавать обновления по мере их поступления.

Дополнительные ресурсы

Подробнее о настройке коннектора ClickHouse в Estuary см. в документации Estuary:

Navigation