Перейти к содержанию

Flink windowed aggregation

Примеры3B · Общие setup/версии · Фактические проверки (архив рабочего проекта)

Тип материала: учебное практическое упражнение. Выполненные и непроверенные шаги указаны отдельно.

Команды выполняются из examples/processing после общего setup; $labPython — interpreter venv. Runtime и documented expected result различаются.

Зависимости и версии

Flink1.20.3/Java17, runtime Compose, windows.sql, prepared data.

Команды запуска

& $labPython prepare_inputs.py
docker compose -f compose-runtimes.yaml --profile flink up -d
docker compose -f compose-runtimes.yaml exec jobmanager /opt/flink/bin/sql-client.sh -f /opt/handbook/windows.sql

Тестовые данные

Prepared unique4 facts из raw5; prep проверяет conflicts и детерминированно удаляет identical duplicate. Flink example не заявляет live streaming dedup. SQL event_time — TIMESTAMP(3), UTC, HOP size10s/slide5s.

Ожидаемый результат

Пять rows, порядок вывода не фиксирован: t7 windows[-5,5)=75,[0,10)=275,[5,15)=200; t8[5,15)=50,[10,20)=50 относительно2026-11-01T00:00:00Z. Перекрывающиеся суммы нельзя складывать как независимый financial total.

Ограничения и статус проверки

Runtime job NOT_RUN. Bounded batch input не проверяет live watermark/idleness/checkpoints/late correction recovery. Таблица/TVF/JSON format требуют проверки на image; наличие SQL и YAML parsing её не заменяет.

Полный журнал ограничений (архив рабочего проекта) хранит NOT_RUN и failed runtime attempts; их нельзя считать выполненными integration tests.