У нас есть сценарий использования потоковой передачи Spark, в котором нам нужно вычислить некоторые метрики из загруженных событий (в Kafka), но для вычислений требуются дополнительные метаданные, которых нет в событиях.
Очевидный шаблон проектирования IМожно подумать о том, чтобы сделать точечные запросы к таблицам метаданных (в основной БД) из задач Spark Executor и использовать эту информацию метаданных во время обработки каждого события.
Другая идея состоит в том, чтобы «обогатить» принятые данныесобытия в отдельном конвейере в качестве шага препроцессора перед отправкой их в Kafka. Это может быть сделано, скажем, другой службой или задачей.
Второй сценарий более полезен в тех случаях, когда домен / среда, в которой запускается Spark / hadoop, изолированы от домена главной БД, где хранятся все метаданные. .
Есть ли общее мнение о том, как следует проводить этот тип "обогащения"? Какие еще соображения мне здесь не хватает?