私たちは、イベント (1 日あたり最大 1 ギガのイベント) を bigquery に保存するゲーム会社です。クエリのコストを下げるために、イベントは月間およびアプリケーションごとに分割されます。
さて、私たちの問題です。
現在のソリューションは、テーブル スキーマの新しいバージョンにつながる新しいタイプのイベントの追加をサポートしています。このバージョンも表に追加されました。
つまり、 events_app1_v2_201308およびevents_app1_v2_201308
9 月に新しい列タイプのイベントを追加すると、 events_app1_v3_201309も取得されます
関連するテーブル (日付範囲) を見つけて、bigquery のカンマ区切りの FROM 句のように結合するコードを作成しました。
しかし、異なるバージョンのイベント テーブルでユニオンを作成すると、これが機能しないことに気付きました。
これに対処する方法の賢い解決策を持っている人は誰ですか!?
現在、JSON 構造が役立つかどうかを調査しています。現在のソリューションは、フラット カラムです。[タイムスタンプ、イベント ID、値、値、値、...]
https://developers.google.com/bigquery/query-reference#fromから
注: 他の多くの SQL ベースのシステムとは異なり、BigQuery はカンマ構文を使用して、結合ではなくテーブル ユニオンを示します。これは、互換性のある !? を使用して、複数のテーブルに対してクエリを実行できることを意味します。スキーマは次のとおりです。