7

BigQuery コネクタを使用してBigQueryからデータを読み取ると、最初にすべてのデータが Google Cloud Storage にコピーされることがわかりました。次に、このデータを並列に Spark に読み込みますが、大きなテーブルを読み込むと、データのコピー段階で非常に長い時間がかかります。BigQuery から Spark にデータを読み込むより効率的な方法はありますか?

別の質問: 2 つの段階で構成される BigQuery からの読み取り (GCS へのコピー、GCS からの並列読み取り)。ステージのコピーは Spark クラスターのサイズの影響を受けますか、それとも一定の時間がかかりますか?

4

3 に答える 3

9

Google 社員が訂正してくれるかもしれませんが、私の知る限りそれが唯一の方法です。これは、ドキュメントによると、内部で Hadoop 用の BigQuery コネクタも使用しているためです。

Hadoop 用の BigQuery コネクタは、Hadoop ジョブを実行する前にデータを Google Cloud Storage バケットにダウンロードします。

補足として、これは Dataflow を使用する場合にも当てはまります。これも、最初に BigQuery テーブルを GCS にエクスポートし、次にそれらを並行して読み取ります。

コピー ステージ (基本的には BigQuery のエクスポート ジョブ) が Spark クラスターのサイズに影響されるかどうか、または固定時間であるかどうかにかかわらず、WRT ではありません。BigQuery エクスポート ジョブは非決定論的であり、BigQuery は独自のリソースを使用して GCS にエクスポートします。つまり、Spark クラスタにはエクスポートしません。

于 2017-01-04T11:47:20.483 に答える
5

spark-bigquery-connectorは、超高速の BigQueryストレージAPI を使用します。

于 2020-02-27T06:42:31.800 に答える