🚀 Umami 官方CSV数据导入自建Umami后端MySQL/PostgreSQL数据库

🚀 Umami 官方CSV数据导入自建Umami后端MySQL/PostgreSQL数据库

周四 8月 14 2025 数据同步
1055 字 · 5 分钟
加载中...

🚀 Umami 官方CSV数据导入自建Umami后端MySQL/PostgreSQL数据库

介绍

说起Umami,相信很多朋友都在用它来做网站分析。界面简洁,功能也挺全面的,确实是个不错的选择。不过呢,如果你用的是Umami Cloud的免费版本,时间长了可能就会发现一些限制了——比如数据保留时间不够长,或者想分析更多域名但额度不够用

这时候,很多人就会考虑:要不自己搭一个Umami?但问题来了,之前在云端积累的那些数据怎么办?总不能就这么丢了吧?

别担心,这篇教程就是来解决这个问题的。我会手把手教你怎么把Umami Cloud上的数据完整地迁移到自己搭建的Umami上,让你的数据分析不中断,还能享受自托管的各种好处

核心思路

  1. 官方数据导出
  2. 读取CSV → 清洗数据 → 分表插入
  3. MySQL使用INSERT IGNORE,PostgreSQL使用ON CONFLICT DO NOTHING
  4. 批量处理提升性能

关键配置

MySQL版本

PYTHON
import pymysql
MYSQL_CONFIG = {
    'host': 'your-mysql-host.com',
    'port': 3306,
    'database': 'umami',
    'user': 'your_username',
    'password': 'your_password'
}

PostgreSQL版本(Neon数据库)

PostgreSQL连接信息获取(Neon)

PYTHON
import psycopg2
POSTGRES_CONFIG = {
    'host': 'your-project-pooler.region.aws.neon.tech',
    'port': 5432,
    'database': 'your_database',
    'user': 'your_username',
    'password': 'your_password',
    'sslmode': 'require'
}
# 或者直接使用连接字符串
POSTGRES_URL = 'postgresql://username:password@host:port/database?sslmode=require&channel_binding=require'

连接字符串解析

组件示例值说明
协议类型postgresql://PostgreSQL数据库协议标识
用户名username数据库用户名
密码password数据库密码
分隔符@认证信息与服务器地址的分隔符
主机地址host.pooler.region.aws.neon.tech数据库服务器地址(Neon格式)
端口5432数据库连接端口
数据库名database目标数据库名称
SSL模式sslmode=requireSSL连接必须加密
通道绑定channel_binding=require通道绑定安全验证

数据库差异对比

特性MySQLPostgreSQL
去重语法INSERT IGNOREON CONFLICT DO NOTHING
字段引用`field`“field”
连接库pymysqlpsycopg2
UUID类型VARCHAR(36)UUID
时间戳DATETIMETIMESTAMP

📥 完整代码生成

由于代码较长,完整版本已通过上方网页自行生成 ,包含以下功能:

  • ✅ 支持MySQL和PostgreSQL双数据库
  • ✅ 自动数据清洗和验证
  • ✅ 批量插入和去重处理
  • ✅ 完善的错误处理机制
  • ✅ 实时进度显示和统计

主要模块:

  • 数据库连接管理
  • CSV数据读取和清洗
  • 批量数据插入
  • 结果验证和统计 🚀 使用说明
  1. 安装依赖包
BASH
pip install pandas numpy pymysql psycopg2-binary
  1. 修改配置

根据您的实际数据库信息修改配置参数:

  • 数据库连接信息
  • CSV文件路径
  • 目标website_id
  1. 选择数据库类型

脚本会提示您选择MySQL或PostgreSQL,然后自动处理数据导入。

⚠️ 使用前须知 安全提醒:

  • 请替换配置中的数据库连接信息为您自己的
  • 不要在代码中硬编码敏感信息
  • 建议使用环境变量存储数据库密码
  • 运行前请备份您的数据库

注意事项:

  • 确保目标数据库有足够的存储空间
  • 建议在测试环境先验证导入流程
  • 大数据量导入可能需要较长时间

🤝 特别感谢

在数据导入后端的实现过程中,得到了以下朋友的大力帮助:

📚 参考资料

本文参考了以下资源:



Thanks for reading!

🚀 Umami 官方CSV数据导入自建Umami后端MySQL/PostgreSQL数据库

周四 8月 14 2025 数据同步
1055 字 · 5 分钟
加载中...

Comments