Каков рекомендуемый подход для чтения / анализа / записи файла с использованием конвейера потока данных Google? - PullRequest
0 голосов
/ 03 апреля 2019

Необходимо настроить конвейер данных Google для обработки файла (чтение, преобразование и запись), а затем записать вывод в другой файл.Короче говоря, процесс ЧИТАЙТЕ> PARSE> TRANSFORM> WRITE.Возможно ли сделать это параллельно?Как сгруппировать записи на основе файла?Например: записи из входного файла A-IN.TXT должны быть записаны в выходной файл A-OUT.TXT.Есть ли какая-либо встроенная возможность для поддержки этого?

1 Ответ

0 голосов
/ 04 апреля 2019

Apache Beam (SDK, используемый Google Cloud Dataflow) предоставляет множество преобразований для обработки файлов.Например,

  • TextIO : чтение текстовых файлов и создание PCollction текстовых строк.
  • AvroIO : чтение файлов Avroи создайте PCollection записей.
  • FileIO : множество полезных преобразований для чтения и записи файлов.

Поток данных парализует чтение этих файлов (1) первоначальное разбиение на логические блоки перед чтением (2) динамическая перебалансировка работы для обработки отставших во время чтения.См. здесь для более подробной информации о динамическом перебалансировании работы.

TextIO, AvroIO и т. Д., В настоящее время не отслеживают входные файлы.Поэтому, вероятно, вам придется использовать преобразования, предлагаемые FIleIO (например, FileIO.match(), затем FileIO.readMatches()) и читать данные из ParDO и создавать PCollection, который содержит записи вместе с именем файла.Они могут быть записаны в соответствующие файлы с помощью функции динамического назначения , предлагаемой FileIO.

...