Допустим, в mongodb есть коллекция "товаров", подобная этой:
{name:"A",attr:["location":"us"],"eventTime":"2018-01-01"}
{name:"B",attr:["brand":"nike"],"eventTime":"2018-01-01"}
В прошлом я использовал искру, чтобы сгладить ее и сохранить в улье:
goodsDF.select($"name",explode($"attribute"))
Но теперь нам нужно обрабатывать инкрементные данные, например, на следующий день в третьей строке появился новый товар
{name:"A",attr:["location":"us"],"eventTime":"2018-01-01"}
{name:"B",attr:["brand":"nike"],"eventTime":"2018-01-01"}
{name:"C",attr:["location":"uk"],"eventTime":"2018-02-01"}
некоторые из нашей команды считают, что flink лучше при потоковой передаче, потому что flinkимеет приложение драйвера событий, потоковый конвейер и пакет, но spark - это просто микропакет.
, поэтому мы переходим на использование flink, но есть много кода, написанного искрой, например, "взорваться"выше, поэтому мой вопрос: возможно ли использовать flink для извлечения источника и сохранения в приемник, но в середине используйте spark для преобразования набора данных?
Если это невозможно, как насчет сохранить его?во временный приемник, скажем, некоторые файлы json, а затем спарк читает файлы и преобразует и сохраняет в куст. Но я боюсь, что это не имеет смысла, потому что для искры, это также инкрементные данные. Используйте flink, затем используйтеискра такая же, как использовать искруСтруктурированная потоковая передача напрямую.