Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Ispolzovanie vysokoproizvoditelnoy analitiki v vashem lakehouse s pomoschyu clic
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Использование высокопроизводительной аналитики в вашем lakehouse с помощью ClickHouse и Amazon S3 Tables

Источник: ClickHouse•12 ноября 2026 г. в 15:19

Использование высокопроизводительной аналитики в вашем lakehouse с помощью ClickHouse и Amazon S3 Tables

Подключите ClickHouse к Amazon S3 Tables для выполнения запросов к данным Iceberg на месте, трансформации розничной аналитики и записи повторно используемых результатов обратно для дашбордов и агентов ИИ.

Этот материал был первоначально опубликован AWS.

Организации все чаще хранят транзакционные и операционные данные в открытых табличных форматах, таких как Apache Iceberg, чтобы позволить различным движкам обработки работать с ними. Но эффективное хранение и организация данных — это лишь половина дела. В тот момент, когда людям и агентам требуется быстрый и целостный доступ к данным, их часто приходится копировать в отдельные системы с другими движками обработки. Создание такой копии обходится дорого, она устаревает сразу после создания, фрагментирует управление и привязывает результаты к одной системе.

Они предоставляют полностью управляемое, масштабируемое и экономичное хранилище для Apache Iceberg. Они хранят данные в открытом формате, доступном для чтения любым движком, совместимым с Iceberg. ClickHouse — это высокопроизводительная база данных реального времени, которая в сочетании с S3 Tables обеспечивает быструю аналитику без необходимости миграции.

В этой статье мы покажем, как использовать высокопроизводительный движок ClickHouse непосредственно для работы с данными в S3 Tables, используя двустороннее подключение между ними. Такой подход позволяет избежать копирования данных в отдельные системы. Вы можете выполнять запросы к своим таблицам Iceberg на месте, проводить трансформации с помощью ClickHouse SQL и записывать готовые результаты обратно, при этом S3 Tables остается единственным открытым источником достоверных данных.

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

В этом руководстве мы решаем четыре ключевые проблемы:

  • Стоимость копий: Каждый конвейер — это вычислительные мощности, хранилище и время инженеров, затраченные на дублирование данных, которые у вас уже есть.
  • Устаревание данных: Копия актуальна лишь на момент последней синхронизации, что часто заставляет аналитиков и агентов работать с устаревшими данными.
  • Разрастание управления: Каждая дополнительная копия — это еще одно место, которое нужно защищать, проверять и учитывать для обеспечения соответствия требованиям.
  • Привязка к поставщику: Если результаты хранятся только в проприетарном формате одного движка, другие инструменты не смогут использовать их без дополнительного экспорта.

Рисунок 1: Обзор решения

ClickHouse подключается к Amazon S3 Tables через REST-эндпоинт Iceberg с использованием движка базы данных DataLakeCatalog. При подключении ваш бакет с таблицами отображается как база данных внутри ClickHouse. Вы можете находить пространства имен, запрашивать существующие таблицы Iceberg, создавать новые таблицы и записывать результаты обратно, используя стандартный SQL ClickHouse.

Две системы имеют четко разделенные обязанности:

  • Amazon S3 Tables управляет хранилищем, метаданными Iceberg и автоматическим обслуживанием таблиц, включая компактизацию, истечение срока действия снимков и очистку неиспользуемых файлов. См. текущие значения по умолчанию.
  • ClickHouse предоставляет аналитический движок, включая колоночную обработку, параллельное выполнение запросов и возможность считывать только те данные, которые необходимы для каждого конкретного запроса.
  • Исходные данные физически находятся в S3 Tables. ClickHouse не хранит их локально, если вы намеренно не материализуете подмножество.
  • При чтении ClickHouse сначала обращается к каталогу Iceberg REST для получения текущих метаданных таблицы и снимка, а затем считывает только соответствующие объекты Parquet непосредственно из S3.
  • При записи ClickHouse записывает новые данные Parquet и объекты метаданных Iceberg в S3. Затем он фиксирует изменения, обновляя указатель корневых метаданных таблицы на новый снимок через каталог. Эта атомарная замена указателя означает, что читатели видят либо старый снимок, либо новый, но никогда не видят частичную запись.
  • Аутентификация использует AWS Signature Version 4. Запросы авторизуются через политики AWS Identity and Access Management (IAM), привязанные к удостоверению, которое использует ClickHouse.
🔗 Когда использовать эндпоинт AWS Glue Iceberg REST вместо этого: В этом руководстве мы используем прямой эндпоинт S3 Tables, так как это самый короткий путь для подключения одного движка к одному бакету таблиц. Если вашей организации требуется централизованное управление каталогами, детальный контроль доступа между несколькими движками или доступ между аккаунтами, используйте эндпоинт AWS Glue Iceberg REST.

🔗 Когда использовать эндпоинт AWS Glue Iceberg REST вместо этого:

Мы используем прямой эндпоинт S3 Tables в этом руководстве, так как это самый короткий путь для подключения одного движка к одному бакету таблиц. Если вашей организации требуется централизованное управление каталогами, детальный контроль доступа между несколькими движками или доступ между аккаунтами, используйте эндпоинт AWS Glue Iceberg REST.

Перед началом вам потребуется следующее:

  • ClickHouse 26.8 или новее (с открытым исходным кодом, самостоятельно управляемый). Описанный здесь путь чтения и записи S3 Tables пока недоступен в ClickHouse Cloud (управляемый вариант).
  • Аккаунт AWS с правами на создание бакета S3 Tables и ролей IAM.
  • Бакет таблиц Amazon S3 с как минимум одним пространством имен. Запишите регион AWS и ARN бакета таблиц (например, arn:aws:s3tables:us-east-1:123456789012:bucket/retail-analytics).
  • Сетевой доступ с вашего хоста ClickHouse к региональному эндпоинту S3 Tables (s3tables.<region>.amazonaws.com).
  • Роль IAM с минимально необходимыми правами для S3 Tables. См. следующий пример политики.

ClickHouse нуждается в удостоверении AWS для аутентификации в каталоге S3 Tables, а также для чтения и записи объектов от вашего имени. Вместо предоставления широкого доступа к аккаунту создайте роль IAM, которая предоставляет только те действия S3 Tables, которые требуются вашему рабочему процессу. Следующий пример политики предоставляет ClickHouse разрешение на перечисление, чтение и запись таблиц внутри одного бакета. Замените регион AWS, ID аккаунта и имя бакета на свои собственные значения.

Примечание: Правильное действие для фиксации записей Iceberg — s3tables:UpdateTableMetadataLocation. Оно обновляет указатель корневых метаданных таблицы, когда ClickHouse выполняет запись INSERT INTO. Ознакомьтесь с поддерживаемыми API Iceberg REST и тем, как они соотносятся с действиями IAM S3 Tables. В качестве лучшей практики безопасности используйте краткосрочные учетные данные в файлах конфигурации ClickHouse или SQL-запросах.

ClickHouse считывает учетные данные из стандартной цепочки учетных данных AWS (переменные окружения, профиль инстанса или файл конфигурации), поэтому учетные данные не отображаются в ваших SQL-запросах.

ClickHouse считывает учетные данные из стандартной цепочки учетных данных AWS (переменные окружения, профиль инстанса или файл конфигурации), поэтому учетные данные не отображаются в ваших SQL-запросах.

Это руководство подключает ClickHouse к бакету таблиц S3, выполняет трансформацию розничной аналитики по трем таблицам Iceberg и записывает готовый результат обратно в S3 Tables.

Ритейлер хранит три таблицы Iceberg в бакете S3 в пространстве имен retail. Аналитической команде требуется ежедневный обзор чистых продаж, проданных единиц, возвращенных единиц и коэффициентов возврата с разбивкой по продуктам, дням и регионам.

Сегодня для этого требуется многотабличное соединение (join), которое выполняется медленно, когда аналитики выполняют его интерактивно. Цель состоит в том, чтобы выполнить соединение один раз в ClickHouse и записать результат обратно в виде подготовленной таблицы daily_product_performance. Дашборды, отчеты и нисходящие инструменты смогут напрямую читать предварительно агрегированный результат из S3 Tables с низкой задержкой и высокой степенью параллелизма. Следующие шаги показывают, как подключить ClickHouse к S3 Tables.

Включите интеграцию с каталогом Iceberg и поддержку записи:

Затем создайте подключение к каталогу. Укажите свой собственный регион, идентификатор учетной записи и имя бакета таблиц:

ClickHouse выполняет аутентификацию с использованием цепочки учетных данных AWS на хосте. В SQL-запрос не встроены никакие учетные данные. Значение warehouse — это ARN вашего бакета таблиц. Вам не нужно регистрировать каждую таблицу по отдельности.

Выведите список всех таблиц, видимых через каталог:

S3 Tables используют одноуровневые пространства имен. Пространство имен и имя таблицы передаются в ClickHouse как единый идентификатор, поэтому вы должны использовать обратные кавычки.Примечание: это относится ко всем ссылкам на таблицы в данном руководстве.

Выполните аналитический запрос. Этот запрос соединяет покупки с возвратами, вычисляет чистые продажи после вычета возврата средств и группирует результат по дням, продуктам и регионам:

ClickHouse обрабатывает этот запрос параллельно и считывает из S3 Tables только те столбцы и группы строк, которые ему необходимы, благодаря метаданным Iceberg и отсечению столбцов Parquet.

Сначала создайте целевую таблицу в пространстве имен retail через то же подключение к каталогу:

Затем заполните ее с помощью INSERT INTO ... SELECT. Это повторно запускает преобразование из Шага 3 и записывает вывод напрямую в S3 Tables:

Проверьте результат:

Теперь таблица daily_product_performance находится в S3 Tables как стандартная таблица Iceberg. Любой движок, совместимый с Iceberg (Amazon Athena, Amazon Redshift, AWS Glue, Amazon EMR, DuckDB, Apache Spark, Trino или другие), который подключается к тому же бакету таблиц, может обнаружить ее и запросить без повторного выполнения соединений.

ИИ-агенты могут работать в сервисе AWS, таком как Amazon Bedrock, или в вашем собственном приложении. Они не работают внутри ClickHouse и не обращаются к S3 Tables напрямую. Вместо этого агент вызывает ClickHouse как инструмент или функцию, а ClickHouse использует подключение DataLakeCatalog и IAM-идентичность, настроенные ранее, для запроса S3 Tables и обратной записи подготовленных результатов.

Рассмотрим агента, перед которым поставлена задача расследовать всплеск возвратов товаров для определенного региона. Рабочий процесс агента выглядит следующим образом:

  • Чтение: агент вызывает ClickHouse (в качестве инструмента или функции) для запроса retail.purchases и retail.returns в S3 Tables, выполняя фильтрацию по интересующему региону и временному окну.
  • Анализ: на основе первого результата агент выполняет последующие запросы: уровень возвратов по категориям продуктов, сравнение с предыдущим периодом или корреляция с недавней промоакцией.
  • Запись: агент записывает свои подготовленные выводы (например, таблицу return_spike_investigation) обратно в S3 Tables через ClickHouse.

Рисунок 2: Рабочий процесс ИИ-агента с ClickHouse и Amazon S3 Tables

Эта архитектура имеет два основных преимущества:

  • Скорость: агенты часто выполняют цепочку зависимых запросов, где каждый запрос зависит от предыдущего результата. Параллельное колоночное выполнение ClickHouse обеспечивает высокую скорость каждого шага, сокращая общую задержку агента с минут до секунд.
  • Повторное использование: запись результатов обратно в S3 Tables в открытом формате Iceberg позволяет инструментам, движкам и другим агентам использовать их без привязки к определенному поставщику.

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

  • Одноуровневые пространства имен: S3 Tables поддерживают одноуровневые пространства имен через свою конечную точку Iceberg REST. К таблицам обращаются как namespace.table_name.
  • Региональная доступность: доступность S3 Tables зависит от региона AWS. Перед развертыванием проверьте текущий список регионов в Amazon S3 Tables.
  • Удаление таблиц: конечная точка S3 Tables Iceberg REST поддерживает DROP TABLE только с параметром purge=true. Если ClickHouse отправляет операцию удаления без этого флага, вы можете получить ошибку 400 Bad Request. Проверьте поведение ClickHouse по умолчанию перед выполнением операций удаления.
  • Характеристики производительности: запросы к таблицам Iceberg с помощью ClickHouse непосредственно в объектном хранилище имеют иные характеристики задержки и пропускной способности, чем запросы к локальной таблице MergeTree. Для исследований, пакетных преобразований и рабочих нагрузок с низким параллелизмом выполняйте запросы на месте. Для дашбордов и приложений, требующих стабильно низкой задержки при высоком параллелизме, ClickHouse рекомендует материализовать данные в MergeTree.
  • Поддержка ClickHouse Cloud: поддержка этого рабочего процесса в ClickHouse Cloud пока общедоступна не во всех регионах.
  • Автоматическое обслуживание таблиц: S3 Tables автоматически объединяют мелкие объекты в более крупные файлы (целевое значение по умолчанию: 512 МБ), удаляют истекшие снимки и неиспользуемые файлы. Вам не нужно планировать эти операции вручную.

Если при прохождении этой статьи вы создали ресурсы, ознакомьтесь со следующим, чтобы избежать постоянных начислений:

  • S3 Tables: S3 Tables имеют собственную модель ценообразования, основанную на хранилище, запросах и уплотнении. Удалите все тестовые таблицы и пространства имен, которые вам больше не нужны.
  • ClickHouse: если вы запустили инстанс Amazon Elastic Compute Cloud (Amazon EC2) для ClickHouse, прекратите его работу или остановите его, когда он не используется.
  • Ресурсы IAM: удалите роль IAM и политики, созданные для этого руководства, если они больше не нужны.

В этой статье был продемонстрирован практический рабочий процесс для анализа данных в Amazon S3 Tables с помощью ClickHouse без миграции данных. Подключив ClickHouse к S3 Tables через конечную точку Iceberg REST, вы можете запрашивать, преобразовывать и обогащать свои таблицы Iceberg на месте. Затем вы можете записать подготовленные результаты для использования любым совместимым с Iceberg движком. Это решает проблемы стоимости копирования данных, устаревания данных, разрастания систем управления и привязки к поставщику.

Тот же шаблон «чтение-преобразование-запись» распространяется на рабочие нагрузки ИИ-агентов, которым требуется быстрый итеративный доступ к аналитическим данным. В обоих случаях S3 Tables выступают в роли общего открытого источника истины, в то время как ClickHouse обеспечивает аналитическую скорость.

Для начала создайте бакет таблиц Amazon S3, подключите его к ClickHouse, используя шаги из этой статьи, и начните запрашивать свои таблицы Iceberg на месте.

← Все статьи

О чём эта статья

Ещё в разделе «Данные и аналитика»

Все →
Что такое серверный трекинг и как его настроить?
Plausible

Что такое серверный трекинг и как его настроить?

Sportradar расширяет Unified Odds Feed за счет ведущих киберспортивных провайдеров
Sportradar

Sportradar расширяет Unified Odds Feed за счет ведущих киберспортивных провайдеров

У современного стека данных был хороший забег
Posthog

У современного стека данных был хороший забег

Inovalon приобретает компанию DrFirst, специализирующуюся на интеллектуальном управлении медицинскими препаратами
Inovalon

Inovalon приобретает компанию DrFirst, специализирующуюся на интеллектуальном управлении медицинскими препаратами

Анонс хакатона Relate by Neo4j 2026: Создавайте ИИ-агентов на базе встроенной графовой базы данных
Neo4j

Анонс хакатона Relate by Neo4j 2026: Создавайте ИИ-агентов на базе встроенной графовой базы данных

Начните относиться к AI-агентам как к первоклассным пользователям
Mixpanel

Начните относиться к AI-агентам как к первоклассным пользователям

Ещё от ClickHouse

ClickHouse Managed Postgres выходит на рынок в статусе GA, а приобретение Xata добавляет сервису возможности для автономных агентов
ClickHouse

ClickHouse Managed Postgres выходит на рынок в статусе GA, а приобретение Xata добавляет сервису возможности для автономных агентов

Крупнейшее расширение ClickHouse за всю историю
ClickHouse

Крупнейшее расширение ClickHouse за всю историю

Langfuse запускает AI Gateway
ClickHouse

Langfuse запускает AI Gateway

Представляем ClickHouse Security в режиме закрытого предварительного просмотра на базе RunReveal
ClickHouse

Представляем ClickHouse Security в режиме закрытого предварительного просмотра на базе RunReveal

Анонс ClickHouse Observability — полностью управляемая наблюдаемость в ClickHouse Cloud
ClickHouse

Анонс ClickHouse Observability — полностью управляемая наблюдаемость в ClickHouse Cloud

Пользовательский интерфейс наблюдаемости в привычном виде мертв. Что дальше?
ClickHouse

Пользовательский интерфейс наблюдаемости в привычном виде мертв. Что дальше?