Skip to content

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

Без 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, опции и команды точно такие же.

См. также

Конфигурация OpenAPI Альтернативы