このブログサイトに関する色々を可視化するダッシュボードをevidence biでつくったので、各種設定、コードなどのメモ
URLはこちら https://blog-dashboard.uni-3.app/
ヘッダ右上のアイコンからリンクをたどることもできる
構築
全体としては以下のようなツール群で構築している
データソース
GAとサーチコンソールを使っている関係で、すべてbigqueryから取得している
ブログ自体のメタデータもほしかったため、ブログサイトのリポジトリからgithub apiにてcontentを取得し、bigqueryに格納している。データ転送にはdltを用いた。詳細はこの記事https://blog.uni-3.app/dlt-load-github-contentに書いた
データ加工
いろんなところにクエリをかけるので切り分けが難しいが、気にしたことを書いておく。dbtでは、基本のstaging/intermediate/martsとしてスキーマを分けている。また、evidenceでは表示粒度や軸に合わせた集計や表示名の変更を行うクエリを実行する。
evidenceのクエリの実行環境として、データソース向け、duckdb向けの二箇所あることに注意する。sourcesに書かれたクエリはbuild時にparquetファイルとして元のデータソースから抽出され、buildフォルダ以下に設置される。queriesや、mdファイルに書かれたクエリは、duckdbのプロセスにてクライアント上で実行、処理される
クエリの切り分け例として、PVの順位を算出するときは、dbtで期間で絞る+ページURLのクリーニングなどを行い、日別のページごとのメトリクスをもつデータマートを作成する。evidenceにてPVランキングの算出を行っている
実際の内容はリポジトリ見る方がはやいかもしれない
https://github.com/uni-3/prefect/tree/main/dbt_project