⚠️注意

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

什么是 Umami

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

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

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

68db836d4d8ea.webp

为什么要迁移

Umami Cloud 有两个明显的限制

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

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

导出 Umami Cloud 数据

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

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

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

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

处理数据

这里用到了 RoversX大佬 的项目

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

$

然后输入你的 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 去重

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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,注意导入去重完的文件

Screenshot_2025-09-30_16-13-12.webp

然后刷新页面就可以啦


共发表 48 篇Blog · 总计 42.1k 字
© 2025 AirTouch 使用 Stellar 创建
萌ICP备20250662号 雾备 88666688号 网ICP备20258888号
本站总访问量 次 本站总访客数 人 本文总阅读量