は、あなたが現在TextIO
とAvroIO
に実装されてrecently added機能.withHintMatchesManyFiles()
を、使用することができます。例えば
:このヒントを使用して
PCollection<String> lines = p.apply(TextIO.read()
.from("gs://some-bucket/many/files/*")
.withHintMatchesManyFiles());
は変換が多数のファイルを読み取るための最適化された方法で実行させる:このケースで読み取ることができるファイルの数は事実上無制限であり、パイプラインはこのヒントなしでより速く、安く、信頼性高く実行されるでしょう。
しかし、filepatternが実際に少数のファイル(たとえば、数十または数百のファイル)と一致する場合は、ヒントがないとパフォーマンスが低下することがあります。同じ注意点とfilepatternsのPCollection<String>
を読み取る可能read()
のより柔軟でスケーラブルなバージョン(それぞれString
がfilepatternである)であるボンネットの下で、このヒントは、変換は、それぞれTextIO.readAll()
又はAvroIO.readAll()
を介して実行させる
、 :ファイルパターンと一致するファイルの総数が少ない場合、単純にread()
よりも悪く実行され、パイプライン構築時にfilepatternが指定されます。