Как читать Кафку Темы построчно в программе Flink - PullRequest
0 голосов
/ 24 июня 2019

Сначала я загружаю файл CSV в тему Kafka и могу напечатать тему через программу Flink. Код следующий:

 final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

    Properties prop = new Properties();
    prop.setProperty("bootstrap.servers", 
     "10.32.0.2:9092,10.32.0.3:9092,10.32.0.4:9092");
    prop.setProperty("group.id", "test");
    FlinkKafkaConsumer<String> myConsumer= new FlinkKafkaConsumer<> 
     ("flinkTopic", new SimpleStringSchema(),prop);
    myConsumer.setStartFromEarliest();
    DataStream<String> stream = env.addSource(myConsumer);
    stream.print();
    env.execute("Flink Streaming Java API Skeleton");

У меня вопрос: я хочу читать Темы построчно и обрабатывать каждую строку отдельно, не могли бы вы подсказать мне, как я могу читать Темы Кафки построчно?

Любая помощь будет очень признательна.

1 Ответ

3 голосов
/ 24 июня 2019

В качестве примеров того, что вы можете сделать, я рекомендую вам пройти через онлайн Обучение Apache Flink .Вы можете использовать такие операции, как filter, map, flatmap, Windows и ProcessFunctions, чтобы построчно обрабатывать поток.

Вам может быть интересно, как удобно работать с данными CSV.Самый простой подход заключается в использовании API таблиц / SQL, который имеет собственный соединитель Kafka и формат CSV .

Без использования движка Flink для SQL вы можете реализовать функцию map, которая преобразует каждую строку текста в POJO.Вот пример этого здесь .Или реализуйте свой собственный де-сериализатор, который вы используете вместо SimpleStringSchema.

...