HTTP2Kafka прокси
Некоторые интеграции OpenLineage поддерживают только HttpTransport, но не KafkaTransport, например Trino.
HTTP → Kafka прокси Data.Rentgen — это опциональный компонент, который предоставляет простой HTTP API для получения событий выполнения OpenLineage в формате JSON и отправки их в топик Kafka как есть, чтобы они могли быть обработаны message-consumer соответствующим образом.
OpenLineage HttpTransport или KafkaTransport?
Введение http2kafka в цепочку немного снижает производительность:
- Он парсит все входящие события для целей валидации и маршрутизации. Чем больше событие, тем медленнее парсинг.
- Протокол HTTP/HTTPS гораздо сложнее TCP протокола Kafka и изначально имеет гораздо большую задержку.
Если интеграция OpenLineage поддерживает и HttpTransport, и KafkaTransport, а Kafka не использует сложную аутентификацию, не поддерживаемую OpenLineage (например, OAUTHBEARER), предпочтительно выбирать KafkaTransport.
Если это невозможно, http2kafka — это правильный выбор.
Установка и запуск
С помощью docker
-
Установите Docker
-
Установите docker-compose
-
Выполните следующую команду:
$ docker compose --profile http2kafka up -d --wait
...
docker-compose загрузит все необходимые образы, создаст контейнеры и запустит компонент.
Опции можно задать через файл .env или секцию environment в docker-compose.yml
docker-compose.yml
1 | |
.env.docker
1 | |
- После запуска и готовности компонента откройте http://localhost:8002/docs.
Без docker
-
Установите Python 3.10 или выше
-
Настройте message-broker
-
Создайте виртуальное окружение
$ python -m venv /some/.venv
...
$ source /some/.venv/activate
- Установите пакет
data-rentgenсо следующими дополнительными зависимостями:
$ pip install data-rentgen[http2kafka]
...
- Запустите процесс http2kafka
$ python -m data_rentgen.http2kafka --host 0.0.0.0 --port 8002
...
Это тонкая обертка вокруг uvicorn cli, опции и команды точно такие же.
- После запуска и готовности сервера откройте http://localhost:8002/docs.