フラット化されたデータセットがあり、各行にはユーザー属性 (年齢、場所など)、登録および訪問日時が含まれています。1 日あたりのパーティション。1 日あたり最大 1,000 万行の訪問、2,500 万人のユーザー、毎日 500 万人のユーザー。これは現在、数か月のデータで機能しており、1 年間で約 30 億行以上になります。
効率とサイズの削減のために、ネストされた行に移動することを考えていました。各ユーザーは、登録と訪問の日時のみを含むネストされたレコードを持ちます。
大きな変更を行う前に、1 行あたり 64K の制限を超えないと仮定して、それに応じてクエリを変更します。これは、行を平坦化するよりも優れたパフォーマンスを発揮しますか?
問題:
ネストを使用すると、訪問日ごとに毎日のパーティションが失われます。これは、それらを 1 つのレコードにネストするためです。(月ごとに分割できますか?)
ロードするときは、CSV を JSON に変換し、各行をロードするパーティションを知る必要があるため、パーティション分割をキャンセルすると思います。
- より少ないパーティションでのクエリのパフォーマンスは向上しますが、ネストされた方が優れているはずですか?
ありがとう