Интеграция объектного хранилища с ClickHouse Cloud
ClickPipes для объектного хранилища предоставляют простой и надежный способ приема данных из Amazon S3 и Google Cloud Storage в ClickHouse Cloud. Поддерживается как одноразовый, так и непрерывный прием данных с семантикой exactly-once.
Предварительные условия
Вы ознакомлены с введением в ClickPipes.
Создание вашего первого ClickPipe
- В консоли облака выберите кнопку
Data Sourcesв меню слева и нажмите "Настроить ClickPipe".
- Выберите ваш источник данных.
- Заполните форму, предоставив вашему ClickPipe имя, описание (по желанию), вашу IAM роль или учетные данные и URL-адрес корзины. Вы можете указать несколько файлов, используя шаблоны, похожие на bash. Для получения дополнительной информации, см. документацию по использованию шаблонов в пути.
- В пользовательском интерфейсе будет отображен список файлов в указанной корзине. Выберите ваш формат данных (в данный момент мы поддерживаем подмножество форматов ClickHouse) и если вы хотите включить непрерывный прием данных Более подробная информация ниже.
- На следующем шаге вы можете выбрать, хотите ли вы принимать данные в новую таблицу ClickHouse или повторно использовать существующую. Следуйте инструкциям на экране, чтобы изменить имя таблицы, схему и настройки. Вы можете видеть предварительный просмотр ваших изменений в образце таблицы сверху.
Вы также можете настроить расширенные настройки, используя предоставленные элементы управления.
- В качестве альтернативы, вы можете решить принимать ваши данные в существующую таблицу ClickHouse. В этом случае пользовательский интерфейс позволит вам сопоставить поля из источника с полями ClickHouse в выбранной таблице назначения.
Вы также можете сопоставить виртуальные столбцы, такие как _path или _size, с полями.
- Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.
Разрешения: ClickPipes создаст специализированного пользователя для записи данных в таблицу назначения. Вы можете выбрать роль для этого внутреннего пользователя, используя пользовательскую роль или одну из предопределенных ролей:
Полный доступ: полный доступ к кластеру. Требуется, если вы используете материализованное представление или словарь с таблицей назначения.Только для таблицы назначения: разрешенияINSERTтолько в таблицу назначения.
- Нажимая "Завершить настройку", система зарегистрирует ваш ClickPipe, и вы сможете увидеть его в сводной таблице.
Сводная таблица предоставляет элементы управления для отображения примерных данных из источника или таблицы назначения в ClickHouse.
А также элементы управления для удаления ClickPipe и отображения сводки задания на прием данных.
- Поздравляем! вы успешно настроили ваш первый 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 Контроль доступа для получения дополнительной информации.