Я использую потоки flink в микросервисной архитектуре для данных ETL от сервисов до баз данных отчетов и поиска. Чтобы отслеживать изменения данных, я в настоящее время генерирую пользовательское событие для RMQ, а затем использую потоки для разделения, агрегирования и преобразования данных на основе потребностей в отчетах и поиске.
Я перехожу на kafka в качестве брокера и debezium, чтобы получать данные из всех баз данных микросервисов. Я блуждаю, могу ли я использовать KStreams API или flink, или есть возможность объединить оба.

Поскольку Kafka Streams можно встроить в любое Java-приложение, теоретически ответ положительный.
Однако для целей ETL в этом нет необходимости, потому что Flink уже может выполнять фильтрацию, сопоставление, агрегирование операций между разными темами Kafka и даже разными кластерами (чего Kafka Streams делать не может).
У меня вопрос: либо эхо-система Kafka является идеальной основой для такого ETL, либо у нас есть возможность использовать KStream с Flink, что может обеспечить дополнительные преимущества. И я могу использовать большую часть моей существующей реализации Flink.
Да, стандартные операции готовы, но то, как вы развертываете Kafka Streams, не является заданным, как Flink. Оркестратор кластера отсутствует. Все, что я говорю, это то, что Flink имеет те же операции и более многофункционален с поддержкой внешней системы, так зачем пытаться интегрировать их, если вы не пытаетесь использовать, например, KTable.
Стандартные операции, такие как сопоставление или фильтрация, объединение и агрегирование, являются примерами потоковых процессоров, доступных в Кафка Потоки из коробки.