1

従来のデータ モデリングでは、時間単位および日単位のロールアップ テーブルを作成して、データ ストレージを削減し、クエリの応答時間を改善します。ただし、同様のロールアップ テーブルを作成しようとすると、「応答が大きすぎて返せません」というエラーが発生しやすくなります。BigQuery でロールアップ テーブルを作成するための推奨される方法は何ですか? ストレージとクエリのコストを削減するために、データを削減する必要があります。

どうも!

4

2 に答える 2

1

最近発表された BigQuery 機能により、大きな結果が得られます。

フラグと宛先テーブルを指定できるようになりました。任意のサイズの結果は、指定されたテーブルに格納されます。

https://developers.google.com/bigquery/docs/queries#largequeryresults

于 2013-06-12T02:06:08.197 に答える
0

すべてのデータを単一のテーブルに追加しているように聞こえますが、クエリを実行するための小さなテーブルを作成したいと考えています...それは正しいですか?

1 つのオプションは、データを 1 時間ごとのスライスにロードしてから、write_disposition=WRITE_APPEND を使用してテーブル コピー操作を実行することにより、日次および「すべて」のテーブルを作成することです。または、クエリで複数のテーブルを使用できます。たとえばselect foo from table20130101,table20130102,table20130102。(これは結合ではなく、UNION ALL を実行することに注意してください。これは、bigquery クエリ構文の癖です)。

テーブルのレイアウトを変更するのが難しい場合、現在、クエリ結果のサイズを大きくすることはサポートされていませんが、これは最もリクエストの多い機能の 1 つであり、優先度が高い機能です。

また、bigquery は可能な限り並列でクエリを処理するため、小さなテーブルを作成してもクエリのパフォーマンスが向上するとは限りません。テーブルの一部のみを保存する場合を除き、ストレージ コストは削減されません。もちろん、大きなテーブルに対してクエリを実行するとコストが高くなるため、クエリのコストが削減されます。

シナリオをもう少し説明していただければ、より具体的なアドバイスを提供できるかもしれません。

于 2013-05-01T20:12:59.147 に答える