3

JSON として提供される「注文」と「注文明細」を含むテーブルがあり、それをBigQueryに JSON として簡単に保存できます。ファイルを行にフラット化するプロセスを実行できますが、負担が大きく、BigQuery テーブルが大きくなります。

BigQuery の最適なパフォーマンス構造はどれですか? 合計または製品、および注文明細行の売上に関するクエリがあるとします。

また、レコード列の「レコード」(または「注文行」) の数に対するベスト プラクティスは何ですか? それは数千を含むことができますか、それとも少数を対象としていますか? MongoDBドキュメント ベースのデータベースのようにクエリを実行すると仮定します。

これは、適切なアーキテクチャを計画するのに役立ちます。

4

1 に答える 1

2

BigQuery のカラム型アーキテクチャは、ネストされたフィールドと繰り返しフィールドを高いパフォーマンスで処理するように設計されており、通常、それらのレコードがフラット化された場合と同じくらい速くクエリ結果を返すことができます。実際、場合によっては (データや実行しているクエリの種類によっては) 既にネストされたレコードを使用することで、余分な手順を追加するサブクエリを実際に回避できる場合があります。

簡単な答え: フラット化について心配する必要はありません。データをネストされた構造に保持してください。通常、クエリのパフォーマンスはどちらの方法でも同じです。

ただし、2 番目の質問については、レコードの制限は、1 つのレコードに保存できるデータの量によって決まります。現在、BigQuery の行あたりの最大値は 100MBです。1 つのレコードに非常に多くの繰り返しフィールドを含めることができますが、この制限に収まる必要があります。

于 2012-11-02T19:55:38.583 に答える