惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

文章列表

DNSMgr——聚合管理所有域名DNS解析+自动续签SSL证书并部署 | AirTouchの小站 雨云香港服务器简单测评 | AirTouchの小站 七牛云 AI 狂送 token 实测到底怎么样 | AirTouchの小站 记一次博客被攻击 | AirTouchの小站 给你的 Artalk 评论区配置验证码和垃圾评论检测 | AirTouchの小站 抓紧上车!免费 E3 开发者账号又来了! | AirTouchの小站 Vercel & Cloudflare Worker 项目推荐(2) | AirTouchの小站 用 Zmail 搭建自己的临时邮箱 | AirTouchの小站 IPv6反解域名?手把手带你搞 | AirTouchの小站 用插件实现 Hexo AI 文章摘要 | AirTouchの小站 用 Librechat 部署自己的 AI 网站 | AirTouchの小站 raksmart 圣何塞超低价 vps 测评 | AirTouchの小站 Vercel & Github Actions 项目推荐(1) macOS Tahoe 26中Electron架构卡顿的临时解决方案 用Obsidian插件增强Stellar写作体验 复习一下最小生成树 用Vercel和Netlify反代你的网站 | AirTouchの小站
迁移 Umami Cloud 数据到自建的 Umami | AirTouchの小站
AirTouch, me@airtouch.top · 2025-09-30 · via

注意⚠️

本篇教程难度较大,涉及数据库操作,如果对自己能力没有信心的请不要轻易尝试,出现问题后果自负

Umami是一款现代、开源的网站流量分析工具,以其极简设计和隐私保护为核心特色。你可以把它理解为更清爽、更注重用户隐私的Google Analytics替代品。

它能精准统计你最关心的数据:访问量、页面浏览量、访客来源和设备信息等,并以清晰直观的图表呈现,让你快速掌握网站表现。与许多笨重复杂的统计工具不同,Umami界面非常干净,没有令人眼花缭乱的复杂报告,专注于提供真正有用的核心指标。

更重要的是,Umami完全开源且可以自行部署,这意味着你的所有网站数据都掌握在自己手中,不会泄露给第三方。它符合GDPR等隐私法规,不追踪用户个人身份信息,也不使用Cookie。对于注重数据主权、追求简洁高效的个人站长、开发者和团队来说,Umami是一个非常理想的选择。

为什么要迁移

Umami Cloud 有两个明显的限制

  • 免费版只有 1 年数据保留
  • 只能添加 3 个网站

1 年的数据保留肯定不够用,我还想记录好几年呢。

导出 Umami Cloud 数据

首先打开 Umami Cloud,左侧找到 Data,右侧点击 Export,然后选择你的网站

这样他会给你发一封含有下载链接的邮件

但是国内的网络环境下载不了,需要自己解决

正常会下载一个 .csv.gz 的文件,把他解压

处理数据

这里用到了 RoversX大佬 的项目

github.com

https://github.com/RoversX/umami-csv-import-script

先把这个仓库下载或者 clone 下来,把解压完的文件复制进去,运行

$

python umami_import.py

然后输入你的 csv 文件的名称和新的 website ID

网址后面的一串就是 ID,比如 https://umami.haha.com/websites/73e88325-33b0-43f8-92d6-8e74c5bf19e273e88325-33b0-43f8-92d6-8e74c5bf19e2 就是 ID

这样会得到一个 website_event.csvsession.csv

然后运行这串代码,给 session.csv 去重

python
import pandas as pd

# Read the original session.csv file
df_session = pd.read_csv('session.csv')


session_columns = [
    'session_id', 'website_id', 'hostname', 'browser', 'os', 'device',
    'screen', 'language', 'country', 'subdivision1', 'subdivision2',
    'city', 'created_at'
]

# Ensure the dataframe only contains the columns defined above
df_session = df_session[session_columns]

# Remove duplicate rows with the same 'session_id'
df_session_nodup = df_session.drop_duplicates('session_id')

# Save the deduplicated data to a new CSV file
df_session_nodup.to_csv('session_export_no_duplicates.csv', index=False)

print("session_no_duplicates.csv has been successfully generated with no duplicate session_id.")

这样得到了 session_export_no_duplicates.csv

postgresql 数据库导入

接着打开数据库软件,连接到你的数据库

website-event 导入 website-event.csv

同样的方法导入 session,注意导入去重完的文件

然后刷新页面就可以啦