Google AnalyticsデータをBigQueryに毎日エクスポートしており、これらがメインのレポートデータセットの基礎を形成しています。
時間の経過とともに、データを充実させるために使用する追加のもののために新しい列を追加する必要があります。たとえば、URLから「レポートカテゴリ」へのマッピングなどです。
これは、処理されたテーブルに新しい列として追加するだけで簡単です(現在、すべてのエンリッチメントに対して約10の処理ステップがあります)。
この問題は、利害関係者が質問した場合です-その新しい列を履歴データに追加できますか?
現在、私はすべての毎日のジョブを再実行する必要がありますが、これは非常に遅く、コストがかかります。
これは頻繁に発生するため、新しいフィールドを追加したり、古いダーティを修正したりする必要がある場合は、すべてのデータを本質的に削除して再作成する必要があるという事実に合わせて、データパイプラインを再設計することを真剣に考えています。データか何か。
私はただもっと良い方法があるかどうか疑問に思っています
ベストプラクティスとは何か、そして基本的に歴史的なシェマを更新する必要がある同様の問題が誰かにあるかどうか、そして基本的に私が現在行っていることを単にドロップして再作成せずにそれを行う方法があるかどうか疑問に思っています。
現在のアプローチをより明確にするために、[ga_sessions_yyyymmdd]テーブルを作成し、一連の[ga_data_prepN_yyyymmdd]テーブルを作成しています。ここでは、各ステップで新しい列を追加するか、何らかの方法でデータを削減します。現在、これらのステップは11あり、毎回100以上の列すべてを乗車しています。これは私がデザインを遠ざけることを試みるものです。現在、各段階の列の90%は、おそらくhit_keyなどに基づいて最後に結合できるため、タッチする必要さえありません。
バラバラにしようとするのは少し面倒です。
既存の履歴テーブルのスキーマに新しい列を追加することは可能ですが、新しく追加された列の値はNULLになります。これらの列に値を入力する必要がある場合は、おそらくUPDATEDMLステートメントを使用するのが最善の方法です。試してみる方法の詳細はこちらです:BigQueryはUPDATE、DELETE、およびINSERT(SQL DML)ステートメントをサポートしていますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加