現在、Googleアナリティクスを提供し、セッションのアクティビティ(クリック、ダウンロードなど)を提供するGoogle Cloud Platformでホストされているアプリケーションを持っており、ウェブ登録でウェブ活動を関連付けています。リレーショナルデータベースからビッグデータへの移行
現時点では、私たちはすべてのクリックとセッションのプロファイルデータをMySQLに保存し、SQLクエリを使用して集計レポートとユーザー別レポートを生成していますが、データ量が増加するにつれて、クエリの応答が低下し、ページの読み込み時間が遅くなります。
この問題を解決する方法を検討するにあたり、DataprocとDataflowやNoSQLソリューションのようなGoogle Cloud Platformで利用できるツールを検討しましたが、私たちが現在のソリューションをどのように適用できるかを理解するのは苦労しています。これらのソリューションのいずれか。
現在、私たちのデータスキーマの目安は次のとおりです。
User table
- id
- name
- email
Profile table (web browser/device)
- id
- user id
- user agent string
Session table
- id
- profile id
- session string
Action table
- id
- session id
- action type
- action details
- timestamp
を私の研究に基づいて、最善の解決策になるかの私の理解は、同様のNoSQLデータベースソリューションに格納するアクションデータになりますデータをDataProcやDataFlowなどのレポートに生成するソリューションにデータを供給するBigTable。しかし、私たちの現在のスキーマは、リレーショナル・データをNoSQLソリューションに移行すべきではないことを示しているので、現在のスキーマは非常にリレーショナルな構造であるため、NoSQLソリューションへの移行オプションを削除しているようです。
私の質問は、これらのツールを正しく適用する方法を理解したことですか?または、より良い解決策がありますか? MySQLから離れることを検討する必要さえありますか?そうでない場合は、バックグラウンドでレポートデータを前処理/生成する可能性のあるソリューションはどのようなものがありますか?
セッションテーブルとアクションテーブルの値は更新されていますか?私はそれらの挿入だけを意味するのですか? –
セッションテーブルは、セッションごとのアクションカウントなどのデータをセッションテーブルに集約するcronジョブを介して更新されますが、アクションは挿入専用です。 –
一時セッションテーブルをMySQLに保存しておき、セッションが終了したり、その日の終わりにBigQueryにすべてダンプしたりできます。 –