Перейти к основному содержимому
Перейти к основному содержимому

Интеграция объектного хранилища с ClickHouse Cloud

Объектные хранилища ClickPipes предоставляют простой и надежный способ приема данных из Amazon S3, Google Cloud Storage, Azure Blob Storage и DigitalOcean Spaces в ClickHouse Cloud. Поддерживается как однократный, так и непрерывный прием данных с семантикой exactly-once.

Требования

Вы ознакомились с введением в ClickPipes.

Создание вашего первого ClickPipe

  1. В облачной консоли выберите кнопку Data Sources в меню слева и нажмите "Настроить ClickPipe".
Выбор импорта
  1. Выберите ваш источник данных.
Выбор типа источника данных
  1. Заполните форму, указав имя вашего ClickPipe, описание (по желанию), вашу IAM роль или учетные данные, а также URL корзины. Вы можете указать несколько файлов, используя шаблоны, похожие на bash. Дополнительную информацию смотрите в документации по использованию шаблонов в пути see the documentation on using wildcards in path.
Заполнение данных подключения
  1. Пользовательский интерфейс отобразит список файлов в указанной корзине. Выберите ваш формат данных (в настоящее время мы поддерживаем подмножество форматов ClickHouse) и определите, хотите ли вы включить непрерывный прием данных. Более подробная информация ниже.
Установка формата данных и темы
  1. На следующем шаге вы можете выбрать, хотите ли вы загружать данные в новую таблицу ClickHouse или повторно использовать существующую. Следуйте инструкциям на экране, чтобы изменить имя вашей таблицы, схему и настройки. Вы сможете увидеть предварительный просмотр ваших изменений в образце таблицы вверху.
Установка таблицы, схемы и настроек

Вы также можете настроить расширенные параметры, используя предоставленные инструменты.

Установка расширенных параметров
  1. В качестве альтернативы вы можете решить загрузить данные в существующую таблицу ClickHouse. В этом случае пользовательский интерфейс позволит вам сопоставить поля из источника с полями ClickHouse в выбранной целевой таблице.
Использовать существующую таблицу
к сведению

Вы также можете сопоставить виртуальные колонки, такие как _path или _size, с полями.

  1. В конце концов, вы можете настроить разрешения для внутреннего пользователя ClickPipes.

Разрешения: ClickPipes создаст специализированного пользователя для записи данных в целевую таблицу. Вы можете выбрать роль для этого внутреннего пользователя, используя пользовательскую роль или одну из предопределенных ролей:

  • Полный доступ: с полным доступом к кластеру. Это необходимо, если вы используете материализованное представление или словарь с целевой таблицей.
  • Только целевая таблица: с правами INSERT только для целевой таблицы.
Разрешения
  1. Нажав "Завершить настройку", система зарегистрирует ваш ClickPipe, и вы сможете увидеть его в сводной таблице.
Уведомление об успешном завершении
Уведомление о удалении

Сводная таблица предоставляет инструменты для отображения образцов данных из источника или целевой таблицы в ClickHouse.

Просмотр назначения

А также инструменты для удаления ClickPipe и отображения сводки задания на загрузку данных.

Просмотр сводки
  1. Поздравляем! Вы успешно настроили ваш первый ClickPipe. Если это ClickPipe для потоковой передачи, он будет работать непрерывно, загружая данные в реальном времени из вашего удаленного источника данных. В противном случае он загрузит пакет и завершит работу.

Поддерживаемые источники данных

НазваниеЛоготипТипСтатусОписание
Amazon S3Объектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.
Google Cloud StorageОбъектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.
DigitalOcean SpacesОбъектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.
Azure Blob StorageОбъектное хранилищеСтабильныйНастройте ClickPipes для загрузки больших объемов данных из объектного хранилища.

Больше коннекторов будет добавлено в ClickPipes, вы можете узнать больше, связавшись с нами.

Поддерживаемые форматы данных

Поддерживаемые форматы:

Семантика exactly-once

Во время загрузки больших наборов данных могут возникать различные типы ошибок, которые могут привести к частичной вставке или дублированию данных. Объектные хранилища ClickPipes устойчивы к сбоям вставки и обеспечивают семантику exactly-once. Это достигается путем использования временных "промежуточных" таблиц. Данные сначала вставляются в промежуточные таблицы. Если во время этой вставки что-то идет не так, промежуточную таблицу можно обрезать, и вставка может быть повторена из чистого состояния. Только когда вставка завершена и успешна, разделы в промежуточной таблице перемещаются в целевую таблицу. Чтобы узнать больше об этой стратегии, ознакомьтесь с этим блогом.

Поддержка представлений

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

Мы не создаем промежуточные таблицы для нематериализованных представлений. Это означает, что если у вас есть целевая таблица с одним или несколькими нижестоящими материализованными представлениями, эти материализованные представления должны избегать выбора данных через представление из целевой таблицы. В противном случае вы можете обнаружить, что в материализованном представлении отсутствуют данные.

Масштабирование

Объектные хранилища ClickPipes масштабируются в зависимости от минимального размера службы ClickHouse, определенного настроенными параметрами вертикального авто-масштабирования. Размер ClickPipe определяется при его создании. Последующие изменения в настройках службы ClickHouse не повлияют на размер ClickPipe.

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

Ограничения

  • Любые изменения в целевой таблице, ее материализованных представлениях (включая каскадные материализованные представления) или целевых таблицах материализованных представлений могут привести к временным ошибкам, которые будут повторены. Для достижения наилучших результатов мы рекомендуем остановить канал, внести необходимые изменения и потом снова запустить канал, чтобы изменения были учтены и избежать ошибок.
  • Существуют ограничения на типы представлений, которые поддерживаются. Пожалуйста, прочтите раздел о семантике exactly-once и поддержке представлений для получения дополнительной информации.
  • Аутентификация по ролям недоступна для S3 ClickPipes для развертываний ClickHouse Cloud в GCP или Azure. Она поддерживается только для развертываний ClickHouse Cloud на AWS.
  • ClickPipes будет пытаться загружать только объекты размером 10 ГБ или меньше. Если файл больше 10 ГБ, ошибка будет добавлена в таблицу ошибок ClickPipes.
  • Каналы Azure Blob Storage с непрерывным приемом на контейнерах с более чем 100k файлами будут иметь задержку около 10–15 секунд в обнаружении новых файлов. Задержка увеличивается с количеством файлов.
  • Объектные хранилища ClickPipes не используют один и тот же синтаксис перечисления, что S3 Table Function, или Azure с AzureBlobStorage Table function.
    • ? — Замещает любой одиночный символ
    • * — Замещает любое количество любых символов, за исключением / включая пустую строку
    • ** — Замещает любое количество любого символа включая / включая пустую строку
примечание

Это действительный путь (для S3):

https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz

Это недействительный путь. {N..M} не поддерживаются в ClickPipes.

https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/{documents-01,documents-02}.ndjson.gz

Непрерывный прием

ClickPipes поддерживает непрерывный прием данных из S3, GCS, Azure Blob Storage и DigitalOcean Spaces. При включении ClickPipes непрерывно загружает данные из указанного пути и опрашивает новые файлы с частотой раз в 30 секунд. Однако новые файлы должны быть лексически больше последнего загруженного файла. Это означает, что они должны быть названы так, чтобы определить порядок загрузки. Например, файлы с названиями file1, file2, file3 и т. д. будут загружены последовательным образом. Если новый файл добавляется с именем, например, file0, ClickPipes не загрузит его, потому что он не лексически больше последнего загруженного файла.

Архивная таблица

ClickPipes создаст таблицу рядом с вашей целевой таблицей с постфиксом s3_clickpipe_<clickpipe_id>_archive. Эта таблица будет содержать список всех файлов, которые были загружены ClickPipe. Эта таблица используется для отслеживания файлов во время загрузки и может быть использована для проверки загрузки файлов. Архивная таблица имеет TTL 7 дней.

примечание

Эти таблицы не будут видны с помощью консоли SQL ClickHouse Cloud, вам необходимо подключиться через внешний клиент, используя HTTPS или Нативное подключение, чтобы прочитать их.

Аутентификация

S3

Поддерживаются как публичные, так и защищенные корзины S3.

Публичные корзины должны разрешать как действия s3:GetObject, так и s3:ListBucket в своей политике.

Защищенные корзины можно получить, используя либо учетные данные IAM, либо IAM роль. Чтобы использовать IAM роль, вам необходимо создать IAM роль в соответствии с этим руководством. После создания скопируйте новый ARN роли IAM и вставьте его в конфигурацию ClickPipe как "IAM ARN роль".

GCS

Как и в S3, вы можете получить доступ к общим корзинам без конфигурации, а для защищенных корзин можно использовать HMAC Keys вместо учетных данных AWS IAM. Вы можете прочитать это руководство от Google Cloud о том, как настроить такие ключи.

Служебные аккаунты для GCS не поддерживаются напрямую. Для аутентификации с не публичными корзинами необходимо использовать HMAC (IAM) учетные данные. Разрешения службы аккаунта, прикрепленные к HMAC учетным данным, должны быть storage.objects.list и storage.objects.get.

DigitalOcean Spaces

В настоящее время поддерживаются только защищенные корзины для DigitalOcean Spaces. Для доступа к корзине и ее файлам вам требуются "Ключ доступа" и "Секретный ключ". Вы можете прочитать это руководство о том, как создать ключи доступа.

Azure Blob Storage

В настоящее время поддерживаются только защищенные корзины для Azure Blob Storage. Аутентификация осуществляется через строку подключения, которая поддерживает ключи доступа и общие ключи. Для получения дополнительной информации прочитайте это руководство.

Часто задаваемые вопросы

  • Поддерживает ли ClickPipes корзины GCS с префиксом gs://?

Нет. По причинам совместимости мы просим вас заменить префикс gs:// вашей корзины на https://storage.googleapis.com/.

  • Какие разрешения требуются для публичной корзины GCS?

allUsers требует соответствующего назначения ролей. Роль roles/storage.objectViewer должна быть предоставлена на уровне корзины. Эта роль предоставляет разрешение storage.objects.list, которое позволяет ClickPipes перечислять все объекты в корзине, что необходимо для загрузки и приема. Эта роль также включает разрешение storage.objects.get, которое необходимо для чтения или загрузки отдельных объектов в корзине. См. Контроль доступа Google Cloud для получения дополнительной информации.