如何将CSV从Umami Cloud导入到自托管Umami
简介
Umami提供了用户友好的界面和强大的网站分析功能,这使其成为许多开发者和网站所有者的热门选择。然而,当涉及到更长期的数据保留和更广泛的域名分析时,Umami Cloud的免费版本可能不够用。本教程将向您展示如何将数据从Umami Cloud迁移到自托管Umami。
Youtube视频教程
Github仓库
Huggingface空间
为什么要迁移?
Umami Cloud的免费版本虽然提供了捷的托管服务,但有两个明显的限制:
- 数据保留时间限制:数据只保留一年,之后将自动删除。
- 域名使用限制:最多只能分析三个域名。
对于想要长期保留数据并分析多个项目的用户来说,迁移到自托管版本是一个理想的选择。
步骤1. 导出数据
从Umami Cloud导出数据
为了转移数据,您首先需要从Umami Cloud导出CSV数据。
- 登录您的Umami Cloud账户。
- 进入数据管理页面,选择需要导出的网站数据。
- Umami会打包所选数据,准备好后会通过电子邮件发送下载链接。
步骤2. 数据处理
一旦您下载了CSV文件,您需要使用Python脚本处理它们,以确保它们适合导入到数据库中。这个脚本将帮助您准备数据,确保它们适合导入到自部署版本的数据库中。您可以从GitHub下载这个脚本或使用Huggingface空间。
在Umami的数据库中,涉及两种主要的数据类型:website_event和session。在导入数据时需要创建一个新的站点实例,并将旧的站点ID替换为新的站点ID。
1 | pip install pandas |
1 | import pandas as pd |
在此之前,您需要将自部署Umami的网站ID替换为Umami Cloud上的旧网站ID。您可以在网站的设置界面找到网站ID。
处理完数据后,您会看到生成了两个文件:website_event.csv
和session.csv
。
步骤3. 导入数据
数据可以通过SQL命令行或使用数据库管理工具(如PG admin)导入。有关导入过程的详细信息,请参考以下教程链接。
您可以尝试以下方法之一点
将CSV文件导入MySQL表
https://www.mysqltutorial.org/mysql-basics/import-csv-file-mysql-table/
将CSV文件导入PostgreSQL表
https://www.postgresqltutorial.com/postgresql-tutorial/import-csv-file-into-posgresql-table/
您可以先导入website_event,然后导入session。我们然后切换到PGadmin并选择website_event
表来执行数据导入。文件导入成功后,只需刷新您的Umami界面,您就应该看到新数据出现。接下来,我们将进行session
数据导入。可能会遇到一些关于session_id
的问题。为了解决这个问题,我们可以通过SQL命令直接删除相关的唯一索引。如果您有更好的处理方法或遇到任何困难,请随时在文章下方的评论区留言。
-
删除主键约束:这将允许表中出现重复的
session_id
值。执行以下命令:1
ALTER TABLE session DROP CONSTRAINT session_pkey;
-
删除唯一索引:通过执行以下命令删除
session_id
的唯一性约束:1
DROP INDEX session_session_id_key;
删除这些约束后,您的表将能够接受重复的session_id
值。但请注意,主键和唯一索引通常用于确保数据完整性和优化性能,删除它们可能会导致其他问题。
一些基本命令
-
查看PostgreSQL中的所有表
1
\dt
如果您想查看更详细的信息(包括表大小等),可以使用:
1
\dt+
-
查看数据库表中有多少行
1
SELECT COUNT(*) FROM session;
-
删除特定行
如果您只想删除满足特定条件的行(例如,删除某个website_id的session数据)
1
DELETE FROM session WHERE website_id = '425f-95';
结论
最后,再次刷新页面,您将看到所有数据都已正确显示。此时,您的数据迁移已完成,您可以开始使用新的跟踪代码了。
值得注意的是,许多用户在GitHub上要求Umami添加直接从界面导入数据的功能。我了解到开发团队正在考虑这个功能,并希望在不久的将来实现它。
https://github.com/umami-software/umami/issues/2653#issuecomment-2040970801
https://github.com/umami-software/umami/issues/2456
感谢您的阅读,希望这对您有帮助。如有任何问题或建议,欢迎评论讨论。