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

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

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

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

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

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

  1. В консоли облака выберите кнопку Data Sources в меню слева и нажмите "Настроить ClickPipe".
  1. Выберите ваш источник данных.
  1. Заполните форму, предоставив вашему ClickPipe имя, описание (по желанию), вашу IAM роль или учетные данные и URL-адрес корзины. Вы можете указать несколько файлов, используя шаблоны, похожие на bash. Для получения дополнительной информации, см. документацию по использованию шаблонов в пути.
  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 для приема больших объемов данных из объектного хранилища.

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

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

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

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

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

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

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

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

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

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

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

Ограничения

  • Любые изменения в целевой таблице, ее материализованных представлениях (включая каскадные материализованные представления) или целевых таблицах материализованных представлений не будут автоматически учитываться конвейером и могут привести к ошибкам. Вы должны остановить конвейер, внести необходимые изменения и затем перезапустить его, чтобы изменения были учтены и избежать ошибок и дублирования данных из-за повторных попыток.
  • Существуют ограничения на поддерживаемые типы представлений. Пожалуйста, прочитайте раздел о семантике exactly-once и поддержке представлений для получения дополнительной информации.
  • Аутентификация на основе ролей недоступна для ClickPipes S3 для развертываний ClickHouse Cloud в GCP или Azure. Она поддерживается только для развертываний ClickHouse Cloud в AWS.
  • ClickPipes будут пытаться принимать только объекты размером до 10 ГБ. Если файл превышает 10 ГБ, ошибка будет добавлена в специальную таблицу ошибок ClickPipes.
  • S3 / GCS ClickPipes не разделяют синтаксис списка с Табличной функцией 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. Когда это включено, ClickPipes будут непрерывно принимать данные из указанного пути, проверяя наличие новых файлов с частотой один раз каждые 30 секунд. Однако новые файлы должны быть лексически больше, чем последний принятый файл, что означает, что их имена должны определять порядок приема. Например, файлы с именами file1, file2, file3 и т.д. будут приниматься последовательно. Если новый файл добавляется с именем, например, file0, ClickPipes не примут его, так как он не лексически больше, чем последний принятый файл.

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

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

примечание

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

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

S3

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

GCS

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

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

ЧаВО

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

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

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

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