CTAS с partitioning для Iceberg из streaming source

Senior SQL data_engineering

Условие задания

**Контекст:** в Kafka topic `events.raw` приходят 100M events/день. Нужно построить Iceberg таблицу для self-service analytics с правильным partitioning.

**Существующая Kafka таблица в Trino:**

[см. код в задании]

**Задание:**

1. Создать **Iceberg таблицу** `iceberg.analytics.events` через CTAS
2. Partition by **day(event_time)** + **country** (для partition pruning)
3. Sort within partition by `(user_id, event_time)` для compression
4. Format = Parquet, compression = ZSTD
5. После создания — запускать **OPTIMIZE** еженедельно для compaction

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

CREATE TABLE iceberg.analytics.events
WITH (
  partitioning = ARRAY['day(event_time)', 'country'],
  format = 'PARQUET',
  format_version = '2',
  -- Compression
  parquet_compression_codec = 'ZSTD',
  -- Sort within partition for better compression
  sorted_by = ARRAY['user_id', 'event_time']
) AS
SELECT
  user_id,
  event_time,
  event_type,
  country,
  amount,
  metadata
FROM kafka.events.raw
WHERE event_time >= TIMESTAMP '2026-01-01 00:00:00'
  AND event_time < CURRENT_TIMESTAMP;

Темы

Trino CTAS Iceberg partitioning streaming

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "CTAS с partitioning для Iceberg из streaming source"?

Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: Trino, CTAS, Iceberg, partitioning, streaming.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «SQL»?

На zasqlpython.ru есть 520+ SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.

← Все задания