**Matomo から Umami へのウェブ解析移行**

1. **移行準備**
   - 現在の Matomo インスタンスからすべてのデータと設定をエクスポートします。
   - Matomo データベースのバックアップを必ず取得してください。

2. **Umami の設置**
   - お好みのホスティング環境(Docker、Fly.io など)に Umami をデプロイします。
   - データベース接続設定と環境変数を構成します。

3. **データインポート**
   - Umami のインポートツールまたはスクリプトを使用して過去のデータをロードします。
   - 訪問数・ページビュー・イベントなど主要指標が正しく表示されることを確認します。

4. **トラッキングコード更新**
   - すべてのウェブページで Matomo の追跡スニペットを Umami 用スクリプトに置き換えます。
   - 本番投入前にステージング環境で新しいコードをテストします。

5. **検証と監視**
   - 移行期間中に解析レポートを比較し、差異や欠落データがないか確認します。
   - 不一致や不足箇所があれば速やかに対処します。

6. **Matomo の廃止**
   - Umami が正しく稼働していることを確信したら Matomo を停止します。
   - データ保持ポリシーに従い、古い Matomo ログはアーカイブまたは削除してください。

2025/12/24 20:08

**Matomo から Umami へのウェブ解析移行** 1. **移行準備** - 現在の Matomo インスタンスからすべてのデータと設定をエクスポートします。 - Matomo データベースのバックアップを必ず取得してください。 2. **Umami の設置** - お好みのホスティング環境(Docker、Fly.io など)に Umami をデプロイします。 - データベース接続設定と環境変数を構成します。 3. **データインポート** - Umami のインポートツールまたはスクリプトを使用して過去のデータをロードします。 - 訪問数・ページビュー・イベントなど主要指標が正しく表示されることを確認します。 4. **トラッキングコード更新** - すべてのウェブページで Matomo の追跡スニペットを Umami 用スクリプトに置き換えます。 - 本番投入前にステージング環境で新しいコードをテストします。 5. **検証と監視** - 移行期間中に解析レポートを比較し、差異や欠落データがないか確認します。 - 不一致や不足箇所があれば速やかに対処します。 6. **Matomo の廃止** - Umami が正しく稼働していることを確信したら Matomo を停止します。 - データ保持ポリシーに従い、古い Matomo ログはアーカイブまたは削除してください。

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

要約

著者は Google Analytics から Matomo(2018 年にリブランド)へ移行し、10 年以上利用した後、UI がシンプルで Next.js + PostgreSQL スタックがより簡潔だった Umami に 2022 年に再度切り替えました。angristan.fr(Matomo ID 1)と stanislas.blog(ID 5)の二つのサイトで、10 年分のデータを保持していたため、Matomo を廃止する際に分析データを保存する方法が必要でした。オープンソースのエクスポート/インポートツールは存在しなかったため、著者は Python スクリプト(

angristan/matomo-to-umami
)を作成しました。このスクリプトは Matomo の MySQL/MariaDB テーブルを読み取り、Umami の PostgreSQL スキーマ(sessions, pageviews, browsers, countries, outlinks, downloads, return visits など)に一致する SQL
INSERT
文を生成します。

ライブデータの移行前にローカルの

docker‑compose
環境でスクリプトを実行し、生成されたダンプを確認できるようにしています。二つのサイトでのドライランでは、約 1 352 812 セッションと 1 999 709 イベント(angristan.fr が 861 301/1 332 275、stanislas.blog が 491 511/667 434)が生成されました。最終的な SQL は Kubernetes ポッド内の
psql
を介して Umami インスタンスにインポートされ、その後古い Matomo サーバーは停止しリソースが解放されました。このスクリプトは GitHub で公開されており、レガシーな Matomo データを軽量な分析スタックへ歴史的指標を失うことなく移行できることを示しており、モダンなオープンソースソリューションのより広い採用を促進しています。

本文

22 年12月 21日 · 714語・4分

2014 年にフランス語ブログを開始した直後、Google Analytics から Piwik(現在の Matomo)へ移行しました。
2018 年に名前が変更されて以来、10年以上も安定して稼働しています—創作者とメンテナの皆さんのおかげです。


Matomo の代替となるモダンなツールを探す

2022 年に私は Umami を導入し、Matomo への置き換えを検討しました。
Matomo の UI はほとんど進化しておらず、Umami の洗練されたモダンデザインと比べて古臭く感じます。

  • 機能セット:Matomo は私が使わない多機能を備えているのに対し、Umami は自動 DB マイグレーションやプラグイン不要でシンプルです。
  • テックスタック:Matomo は PHP + MySQL、Umami は Next.js アプリ+PostgreSQL。
  • ホスティング:Umami の方が設置・管理が簡単です。

Umami には満足しており、Matomo インスタンスを廃止したいと考えています—ただし angristan.frstanislas.blog の10年間にわたる解析データを失いたくはありません。


Matomo からのエクスポート

「Umami 用インポートツール」を検索しても何も見つからず、クラウド版のみがインポート機能を持っていることが判明しました(オープンソースではありません)。
そこで私は独自のマイグレーションスクリプトを作成しました:

  • リポジトリ:GitHub 上の
    angristan/matomo-to-umami
  • 言語:Python。
  • 目的:Matomo の MySQL/MariaDB データベースから訪問セッションとページビューイベントを抽出し、Umami の PostgreSQL スキーマに合致する SQL INSERT 文を生成。

ブラウザ・国・外部リンク・ダウンロード・リターンビジットのマッピングを確認し、直帰率も保持。生 SQL を使うことで API 制限を回避し、処理速度が向上します。


マイグレーションテスト

リポジトリに用意されたローカル

docker‑compose
環境で生成したダンプを Umami にインポートし、数値や値を検証できます。バグ発見には不可欠です。


私のマイグレーションワークフロー

Matomo と Umami はともに私の k8s ノード上で稼働しています:

  • Matomo:MariaDB
  • Umami:PostgreSQL

移行対象は以下の 2 サイトです。

Matomo IDUmami UUIDドメイン
1
a5d41854-bde7-4416-819f-3923ea2b2706
angristan.fr
5
3824c584-bc9d-4a9b-aa35-9aa64f797c6f
stanislas.blog

MariaDB をポートフォワード

kubectl -n matomo port-forward svc/mariadb 3306:3306 &

マイグレーションのプレリード(プレビュー)

uv run migrate \
  --mysql-host localhost --mysql-port 3307 \
  --mysql-user root --mysql-password password --mysql-database matomo \
  --site-mapping "1:a5d41854-bde7-4416-819f-3923ea2b2706:angristan.fr" \
  --site-mapping "5:3824c584-bc9d-4a9b-aa35-9aa64f797c6f:stanislas.blog" \
  --start-date 2015-01-01 --end-date 2022-07-10 \
  --dry-run -v

出力

[22:13:22] INFO     Configured 2 site mapping(s)
[22:13:23] INFO     Connecting to MySQL at localhost:3307
[22:13:23] INFO     Successfully connected to MySQL database

Dry Run Mode - No SQL will be generated

Migration Summary
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric           ┃ Value               ┃
├──────────────────┼─────────────────────┤
│ Total Sessions   │ 1,352,812           │
│ Total Events     │ 1,999,709           │
│ Date Range Start │ 2015‑01‑18 10:45:32 │
│ Date Range End   │ 2022‑07‑09 23:58:58 │
└──────────────────┴─────────────────────┘

Per‑Site Breakdown
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━┓
┃ Matomo ID ┃ Domain         ┃ Sessions ┃ Events    ┃
├───────────┼────────────────┼──────────┼───────────┤
│ 1         │ angristan.fr   │ 861,301  │ 1,332,275 │
│ 5         │ stanislas.blog │ 491,511  │ 667,434   │
└───────────┴────────────────┴──────────┴───────────┘

Ready to migrate. Run without --dry-run to generate SQL.

マイグレーション SQL を生成し、Umami にインポート

# SQL 生成(--dry-run は除外)
uv run migrate ... > migration.sql

# Umami へインポート
kubectl -n umami exec -i umami-cnpg-1 -- env PGPASSWORD=<password> \
  psql -h localhost -U app -d app < migration.sql

これで Matomo を手放し、リソースを節約できるようになりました。

matomo-to-umami
をぜひご活用ください。他の方にも役立てば幸いです。

Matomo と Umami の皆さん、オープンソースで貢献していただきありがとうございます ❤️

同じ日のほかのニュース

一覧に戻る →

2025/12/27 2:13

**原文:** 「How uv got so fast」 **改訂(整理済み):** 「How did UV get so fast?」 **日本語訳:** 「UVはなぜそんなに速くなるのですか?」

## Japanese Translation: ``` ## Summary uv は Rust のみを利用するよりも、モダンな設計選択とパッケージング標準を採用しているため、pip より優れています。不要なオーバーヘッドを伴うレガシー機能(.egg サポート、pip.conf の読み込み、デフォルトのバイトコードコンパイル、system‑Python インストールの許可、厳格な仕様準拠、requires‑python の上限無視、複数インデックスが設定されている場合に最初のインデックスを選択)を削除することで、uv は不要なコードパスを排除します。さらに、HTTP レンジリクエストによる部分的な wheel ダウンロード、並列ダウンロード、ハードリンクまたはコピーオンライト可能なグローバルキャッシュ、ネイティブ TOML パース、および効率的な PubGrub 依存関係解決器を使用してインストール速度を加速させています。Rust は rkyv によるゼロコピー逆シリアライズ、ロックフリーの同時実行データ構造、単一静的バイナリであるためのインタプリタ起動コストゼロ、および高速比較/ハッシュのためのコンパクトな 64‑ビットバージョン表現を提供します。 Python のパッケージングは、setup.py スクリプトがインストール時に実行される必要があったため遅くていました。PEP 518–658 の導入によりメタデータが宣言的フォーマットへ移行し、PyPI 上の Simple API(2023年5月以降利用可能)が有効になりました。uv は 2024 年2月にリリースされ、初日からこれら新しい標準を活用しています。 影響は大きく、開発者は依存関係をより迅速にインストールでき、軽量な環境を構築できます。これは、Python エコシステム全体で最新のパッケージング標準を完全にサポートするツールへの広範な移行を促進する可能性があります。 ```

2025/12/23 23:51

2025年の最高アイテムとおすすめ

## Japanese Translation: ## Summary 2025年、著者はハンス・ボーマーの再帰的実数計算法や日本漫画カフェドキュメンタリー『マンブー』などの注目すべきIT・テック発見で生産性の高い一年を達成しました。彼はClojureのcore.asyncとJDK 21バーチャルスレッド、結合型関数言語Juxt、WordPressからMarkdown/org-mode静的サイトパイプラインへの移行についての技術ブログを複数公開しました。また、ブラジルで開催されたClojure/conjとClojure South Brazilという二つの主要なClojureカンファレンスに参加し、コミュニティの影響力を強調しました。 色分けされた月次マトリクスを備えたスプレッドシートベースのタスクトラッカーが導入され、著者のミニマリストでシステム思考的アプローチを反映し、専用プランナーよりもスプレッドシートを好む姿勢を示しました。プログラミングはClojure(16年にわたるフルタイム作業)に集中しつつ、Joy、Clojerl、Scittle、Javaによるコンパイラ開発も探索しました。 2025年にはゲーム・フィクション・システム思考に関するエッセイなど非技術的なアウトプットが増加し、2026年にはさらに多くのフィクションとカードゲームルールを企画しています。著者の「人生を変えるテクノロジー」主張はZettelkastenメモ取り法の採用に集約され、新しい非技術的投稿が可能になりました。大規模言語モデル(LLM)との広範な実験は限定的な実践的利益しか生まれず、問題設定とソクラテス対話における欠点を批判しています。 また、本年には好きな本(例:『オシリスの目』、『ナルキッサスとゴールドマン』)、音楽、映画、ポッドキャスト、テーブルトップゲームの厳選リストも含まれました。2026年を見据えて、著者は非技術的執筆を増やし、カードゲームルールを発表し、Clojure 1.13を進化させ、物理アーティファクトを作成し、未翻訳の本を読み、Goodnotes、Antinet、Booxなどのツールを使ってテックラダーを洗練する予定です。すべてはミニマリストでシステム志向のワークフローを維持しながら行われます。 この要約は元のリストからすべての主要ポイントを取り込み、推測を避け、明確な主旨を提示し、曖昧または混乱する表現を排除しています。

2025/12/27 8:09

「テキストに常に賭ける」

## Japanese Translation: ## Summary テキストは、これまでに発明された中で最も強力で多用途かつ信頼性の高い通信技術であり、可能な限り常に選択すべきです。約5,000年間安定した媒体として存在し、その長寿を示す耐久的な遺物が残っています。テキストは比類のない柔軟性を提供します:正確な意味を伝えることができる一方で、暗黙の文脈も許容するため、文学・歴史・哲学・数学・論理学・プログラミング・工学・注釈学・ファンフィクションに不可欠です。他のメディアと比べてテキストは格段に効率的であり(例:5 kB のブログ投稿がより大きな画像と同じ情報量を持つ)、電信・電子メール・チャット・ウェブなど後続技術を可能にしました。テキストは一対一、一対多、多対多のあらゆる社会的相互作用をサポートし、検索性・索引化・翻訳・非同期性・アルゴリズム処理(例:差分検出や要約)が可能です。また、多者編集、分岐会話、注釈付け、引用、構造化応答、およびレビューも許容します。著者は、テキストが通信・データ保存・アルゴリズム処理の基盤メディアとして残ると信じており、その幅広さ・深さ・スケーラビリティに匹敵するフォーマットは他に存在しないと述べています

**Matomo から Umami へのウェブ解析移行** 1. **移行準備** - 現在の Matomo インスタンスからすべてのデータと設定をエクスポートします。 - Matomo データベースのバックアップを必ず取得してください。 2. **Umami の設置** - お好みのホスティング環境(Docker、Fly.io など)に Umami をデプロイします。 - データベース接続設定と環境変数を構成します。 3. **データインポート** - Umami のインポートツールまたはスクリプトを使用して過去のデータをロードします。 - 訪問数・ページビュー・イベントなど主要指標が正しく表示されることを確認します。 4. **トラッキングコード更新** - すべてのウェブページで Matomo の追跡スニペットを Umami 用スクリプトに置き換えます。 - 本番投入前にステージング環境で新しいコードをテストします。 5. **検証と監視** - 移行期間中に解析レポートを比較し、差異や欠落データがないか確認します。 - 不一致や不足箇所があれば速やかに対処します。 6. **Matomo の廃止** - Umami が正しく稼働していることを確信したら Matomo を停止します。 - データ保持ポリシーに従い、古い Matomo ログはアーカイブまたは削除してください。 | そっか~ニュース