Asopitech With · アクセス解析
Google Analytics with Alopex DB
Google Analyticsは、サイトとアプリの利用者の動きを測るアクセス解析です。これをAlopex DBで作り直すと…?
更新: 2026/10/12
どんなサービスか
Google Analyticsは、サイトとアプリで利用者がどう動いたかを測るサービスです。ページの表示や購入などのイベントを集め、レポートで見せます。扱うデータは、イベント、利用者、セッション、そしてイベントに付く項目です。
データの置き場所
- カラムナーテーブル:イベントをカラムナーテーブルに追記し、日ごと、ページごと、流入元ごとの件数をSQLで集計します。
- JSON:イベントごとに違う項目は、JSONの列に持ちます。
- SQLテーブル:サイト、目標、レポートの定義をテーブルに持ちます。
分析では、PythonからDataFrameとして読み、そのまま集計や可視化に使います。
配置の形
Alopex DBをサーバーとして動かし、サイトとアプリからイベントを受けます。分析する人は、同じファイルをCLIやPythonで開いて集計します。
Alopex DBが合う理由
アクセス解析は、増え続けるイベントを速く集計できることが要です。Alopex DBは、カラムナーテーブル、SQLの集計、DataFrameの分析を1つのデータベースで行えます。
コードで見る
イベントをためて、ページ別のページビュー数をSQLの集計で出します。レポートの中心だけを取り出したコードです。
import alopex
db = alopex.Database.open("ga.alopex")
# イベントをためる(ページ表示などの記録)
db.execute_sql("""
CREATE TABLE IF NOT EXISTS events (
id INTEGER PRIMARY KEY,
name TEXT,
page TEXT,
ymd DATE
)
""")
events = [
(1, "page_view", "/top", "2026-10-20"),
(2, "page_view", "/top", "2026-10-20"),
(3, "page_view", "/pricing", "2026-10-20"),
(4, "page_view", "/top", "2026-10-21"),
(5, "purchase", "/pricing", "2026-10-21"),
]
for e in events:
db.execute_sql("INSERT INTO events (id, name, page, ymd) VALUES (?, ?, ?, ?)", list(e))
# ページ別のページビュー数を、多い順に集計する
rows = db.execute_sql("""
SELECT page, COUNT(*) AS views
FROM events
WHERE name = ?
GROUP BY page
ORDER BY views DESC
""", ["page_view"])
for row in rows:
print(row["page"], row["views"])増え続けるイベントを、GROUP BY でページ別・日別にまとめます。レポートはSQLの集計そのものです。
イベントをカラムナーテーブルにため、SQLとDataFrameで集計できるAlopex DBで、アクセス解析を自分の手元に持ってみませんか。手引きはクイックスタートです。