2016-11-17 14 views
2

私はga_sessions_yyyymmddデータを再処理しようとしていますが、ga_sessionsが[channelGrouping]というフィールドを使用したことはありませんが、最近のデータではそうです。BQ GAエクスポートの変更を処理するには?

私の仕事は最新バージョンのga_sessionsではうまくいきますが、earleir ga_sessionsデータを再処理しようとすると、[channelGrouping]フィールドがないのでジョブが失敗します。

明らかに通常はこれがあなたが望むものですが、この場合はそうではありません。私は最新のga_sessionsスキーマに固執していて、欠けているcolsをnullに設定するだけです。

これを回避する手段はありますか?

おそらく、ga_sessions_template_latestという空のテーブルを作成し、それをga_sessions_ dailyテーブルの処理対象にする必要があります。これは、古いga_sessionsを新しい構造に 'アップグレード'している可能性があります。

添付されたスクリーンショットは、私が意味するものです(私の組合の考え方は実際にはga_sessionsのネストされたフィールドのために恐ろしいでしょう)。 enter image description here

+0

SQLレガシーto SQLクエリを書き留めてみてください.2番目のクエリはこれまでのようなときにGoogleから推薦されました。詳細については、 https://cloud.google.com/bigquery/docs/reference/standard-sql/ を参照してください。これはスキーマが失敗するトレッドです http://stackoverflow.com/questions/40654768/how -to-handle-bq-ga-export-changes –

答えて

1

まだこのようなスクリプトはありません。しかし、テーブルはプロジェクトの下にあるので、それらを更新することができます。スクリプトを作成し、最新のスキーマ・セットの列が欠落しているすべての表でスキーマを更新できます。

  • 私は、最新のテーブルスキーマを取得するスクリプトを想定しています。
  • 次に、過去のテーブルに1つずつ戻って比較を行い、欠落している列を識別し、それらを必須ではなくヌル値として定義し、スキーマを読み取り+追加の列を適用してテーブルに対して更新を実行します。データは変更されません。ヌル値を持つ列が追加されます。

ウェブUIからも試用できます。

関連する問題