問題タブ [spotify-scio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
487 参照

google-bigquery - PCollection (SCollection) のサイズが BigQuery テーブルの入力サイズと比べて非常に大きいのはなぜですか?

ここに画像の説明を入力

上の画像は、spotify の scio で実行される Apache Beam データフロー ジョブへの入力であるビッグ クエリ テーブルのテーブル スキーマです。scio に慣れていない場合、これは Apache Beam Java SDK の Scala ラッパーです。特に、「SCollection は PCollection をラップします」。BigQuery ディスクの入力テーブルは 136 GB ですが、データフロー UI で SCollection のサイズを見ると、504.91 GB です。 ここに画像の説明を入力

データの圧縮と表現では BigQuery の方がはるかに優れている可能性が高いことは理解していますが、サイズが 3 倍を超えるとかなり高いようです。明確にするために、タイプ セーフな Big Query ケース クラス (Clazz と呼びましょう) 表現を使用しているため、SCollection の型は SCollection[TableRow] ではなく SCollection[Clazz] です。TableRow は、Java JDK のネイティブ表現です。メモリ割り当てを抑える方法に関するヒントはありますか? 入力の特定の列タイプに関連しています:バイト、文字列、レコード、フロートなど?