データフローストリーミングパイプラインのストリームとして出力してDoFn内のファイルを読み込むのPubSubに送信 - >データフローストリーミング読むPubSubのIからファイルイベント/ O - > DoFnのUn-gzipはデータフローは、ライン
static class CustomDoFn extends DoFn<String, String>{
@Override
public void processElement(ProcessContext c) throws Exception {
String gcsPath = c.element();
Open ReadChannel with GCS
Get Stream from Channel
while((line = stream.ReadLine()) != null){
c.output(line) // Is this good way to read and send line down the pipeline?
}
}
//に-なるパイプライン
pipeline.apply(PubSubIO.Read()).
apply(ParDO.of(new CustomDoFn())).
apply(new CustomTX()).
apply(BigQueryIO.Write());
疑問は以下のとおりです。
1.それは正しい方法であり、 DoFnのループで出力を生成しますか?
2. Dofnの内部でFileBasedSource.FileBasedReaderをどのように使用できますか?
こんにちは、私はあなたの質問を理解していることを確認したいだけです。ファイルから読み込むストリーミングパイプラインを作成しますか?また、Pub/Subを使用してファイル名を受け取り、それらを読みたいと思っていますか?あなたのファイルサイズは非常に大きいですか?ファイルを読み込んで各行を出力する方法の1つの問題は、ファイル全体が実際に出力される前にメモリに読み込まれなければならないことです。大きなファイルの場合、これはうまく動作せず、OOMでも可能です。 –