asopi tech
asopi techIndie Developer

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で、アクセス解析を自分の手元に持ってみませんか。手引きはクイックスタートです。

関連リンク