Я использую Flink 1.6, я знаю, что могу использовать собственный приемник и куст jdbc для записи в куст, или использовать JDBCAppendTableSink, но он все еще использует jdbc. Проблема в том, что куст jdbc не поддерживает метод batchExecute. Я думаю, что это будет очень медленно.
Затем я ищу другой способ: я записываю DataSet в hdfs с помощью метода writeAsText, затем создаю таблицу кустов из hdfs. Но все еще остается проблема: как добавить добавочные данные.
API-интерфейс WriteMode:
Enum FileSystem.WriteMode
Enum Constant and Description
NO_OVERWRITE
Creates the target file only if no file exists at that path already.
OVERWRITE
Creates a new target file regardless of any existing files or directories.
Например, первая партия, я записываю данные за сентябрь в улей, затем я получаю данные за октябрь, я хочу добавить их.
Но если я использую OVERWRITE
для того же файла hdfs, данные за сентябрь больше не будут существовать, если я использую NO_OVERWRITE
, я должен записать их в новый файл hdfs, а затем в новую таблицу кустов, нам нужно они в одной таблице улья. И я не знаю, как объединить 2 файла hdfs в таблицу улья.
Итак, как записать инкрементные данные в улей с помощью flink?