公司小程序,加了手动埋点(他们希望数据人性化一点,而不是每个地方都打,打出来的内容很死板),所以在一些关键事件打上上报事件的 api 接口,发到服务器,服务器存入 mysql 。 现在有 38w 行记录了,感觉后面会撑爆,有点担心,要不要换个 es ?(特小一个公司)
1
linauror 2022-07-29 17:09:49 +08:00
38W 行还好吧,到千万以上可以再考虑使用其他来存储
|
3
dongcxcx 2022-07-29 17:14:32 +08:00
38w 的数据是多久的,日增?还是?
这些数据是必须要永久存在吗,如果类似日志这种,保留几个月即可的,定时归档把. |
6
0703wzq 2022-07-29 17:16:07 +08:00
定时归档,分表存放即可
|
7
dongcxcx 2022-07-29 17:18:57 +08:00
分库分表就够了, 小公司你确定有人手来运维 es?
|
8
haya 2022-07-29 17:19:24 +08:00
单机 clickhouse 就行
|
10
fiypig 2022-07-29 17:22:08 +08:00
其实没做数据分析什么的 ,一般旧数据就是垃圾数据了, 做定时清理是最好的选择
|
11
keepeye 2022-07-29 17:26:50 +08:00
不是永久保留的可以定期清理,算一下日增长,看看会维持在什么量级,千万级都不用多虑
|
12
tomczhen 2022-07-29 17:28:36 +08:00 via Android
小公司资源不足的话,代码和人有一个能跑就行了。
|
13
potatowish 2022-07-29 17:42:07 +08:00 via iPhone
小公司不用担心,这点数据量 mysql 撑到你跑路都没问题
|
14
richzhu 2022-07-29 17:45:07 +08:00
也不要直接写 es 吧, 最好是写到 kafka 里, 然后由 logstash 来取数据放入到 es
|
15
james2013 2022-07-29 17:54:02 +08:00
慌啥
另建 1 个表名,专门存这种埋点数据 数据少就每 1 年手动归档一张表,数据多就 3 个月手动归档 1 张表 或者直接分表存也可以 |
16
xiangyuecn 2022-07-29 17:54:52 +08:00 16
坚持住,再过俩月项目就黄了
|
17
brader 2022-07-29 17:59:53 +08:00
就存 mysql 就好了,小项目没必要复杂化,几十万数据不多,你等几千万了再清理都没事,log 型的数据都是有时效性的,太久的清掉就好了,觉得有用,就备份起来就好
|
18
PopRain 2022-07-29 18:04:15 +08:00
我们一年的日志已经 36G 了。。。。我还没有考虑分表
|
19
wjfz 2022-07-29 19:18:41 +08:00
小程序官方不是有个事件分析嘛
|
20
guisheng 2022-07-29 19:23:53 +08:00 via iPhone
写个定时任务,该表名就好了。最快解决问题。如果要查也可以做处理。
|
21
NoString 2022-07-29 19:27:09 +08:00
mysql 单表千万问题不大,正常分表就行。如果查询有聚合操作或者模糊匹配这些需求的话早点上 ES/Clickhouse 这种,结合你的场景选型就行
|
22
Samuelcc 2022-07-29 19:30:47 +08:00 via Android
可以考虑 hbase
|
23
zhuweiyou 2022-07-29 20:35:32 +08:00
小程序本来就有埋点功能,非要自己存.
|
24
xiaoyangsa 2022-07-29 20:48:16 +08:00
...非要自己存,mysql 挺好。不够就加
|
25
learningman 2022-07-29 20:57:30 +08:00
建议存成 csv 直接写文件
|
26
shiny 2022-07-29 20:58:39 +08:00 via iPhone
SQL 不复杂的话存上亿条都没事
|
27
msaionyc 2022-07-29 21:00:33 +08:00
这种放 mongo 也可以吧,毕竟这个日志你们应该不需要业务上的查询,字段也不需要设计
|
28
book1925 2022-07-29 21:13:53 +08:00
想借楼问下,埋点设计有什么书或者项目可以学习参考下怎么设计怎么埋点吗?
|
29
5aSx5Lia 2022-07-29 21:33:18 +08:00
感觉没有太大必要,如果没有对查询有特殊需求,需要聚合数据这样子,没有必要用 ES ,可以通过冷热数据方式进行存储( 38w 真的很少,相信 mysql ,千万级别都顶得住)
|
30
cp19890714 2022-07-29 22:12:59 +08:00
mysql 上亿都没事,别太小看它了。只要不做太多查询就可以。
等以后要做数据分析,再考虑把数据复制到其他数据库中。 |
31
jasonkayzk 2022-07-29 22:33:12 +08:00
埋点上报分库分表就行,周表、月表
|
32
em70 2022-07-29 22:36:34 +08:00
mysql 存过几千万的埋点,一点问题都没有,定期归档就是了
|
33
Ayanokouji 2022-07-29 22:39:14 +08:00
比如按年 /按月建一堆表,写的时候加个路由,实在不行,就每年 /每月发一次版,手动指定表
|
34
iseki 2022-07-29 22:47:41 +08:00 via Android
换 PostgreSQL (暴论
讲真几十几百万行一般情况下都不会有什么问题,只要这一行太大,索引建好 |
35
T0m008 2022-07-29 23:00:28 +08:00
用什么取决于你需要怎么使用这些数据
|
36
Felldeadbird 2022-07-30 00:06:36 +08:00
数据不用的话,就是死数据。我公司有上千万的几年数据,但是基本不用。优化都不需要。当时提需求就提得响亮。结果用不响亮。 等数据量上千万,使用量频率在考虑优化。现在就去部署 ES ,我认为纯粹给自己增加工作量。
|
37
Features 2022-07-30 01:34:20 +08:00
单独建个库,日志丢里面就行,分表什么的都不用考虑
单独建库主要是为了备份主库方便 其实 100 亿行对于 MySQL 来说也不算什么 MySQL 和其他数据库自身很强大,他们在发展的历程几十年中遇到的问题比我们任何一个人一辈子遇到的问题都要多,他们也有很优雅的方式去解决这些问题 这些问题包含了超大数据 最多行数:There is a limit of (2^32)^2 (1.844E+19) rows in a MyISAM table. 最大控件:256TB 单库最大表数:20 亿 |
39
lithiumii 2022-07-30 01:40:55 +08:00 via Android
前司 Matomo 埋点,直接一股脑写 mysql 了,没啥大问题
|
40
westoy 2022-07-30 03:09:22 +08:00 via Android 1
es 高可用的运营成本和硬件成本可比 mysql 高的多的多
|
41
documentzhangx66 2022-07-30 05:00:30 +08:00
会不会爆,要通过监控各设备性能,来观察性能是否足够。
做好主备节点、UPS 、备份。 进行删、改前,先在实验环境下测试好了后,再去生产环境上做。 |
42
documentzhangx66 2022-07-30 05:03:02 +08:00
如果为了稳,建议直接上 Oracle ,地球上最强数据库。PG 什么的就免了,最近有团体在各平台鼓吹 PG ,请不要上当。
|
43
cheng6563 2022-07-30 07:33:55 +08:00
才 300 万你慌个啥,特小的公司?那等 300 亿再说吧
|
44
ychost 2022-07-30 08:11:37 +08:00
用时序数据库简单点,比如 influxDB ,还能直观看到一个人的操作曲线
|
45
dayeye2006199 2022-07-30 08:32:20 +08:00 via Android
做成文件存对象存储吧,便宜。
下次要分析的时候再入库 |
46
realpg 2022-07-30 08:45:46 +08:00
日增 oplog 记录条数 1700 万条
MySQL 存储 分表 备份 无压力 这玩意就看你架构设计了 我们的方案 开一个 office E5,买 25 个手机号, 25 个 onedrive 5T 每日凌晨 1 点-2 点 cron 生成次日表名 每日凌晨 3 点-4 点备份昨日数据表 sql,bzip2,删表,rclone 怼 onedrive 备份,联通 onedrive 超快,基本很快就能备份完,删本地文件 |
47
hefish 2022-07-30 09:05:33 +08:00
特小的公司还要存着这些数据,一直存到地老天荒啊。。。那恭喜这个特小公司已经一夜变成世界 500 强了。。
|
48
diggzhang 2022-07-30 09:09:57 +08:00
按日分区归档。
按周建新库。 |
49
krixaar 2022-07-30 09:23:07 +08:00
@documentzhangx66 #42 用 Oracle 当心哪天 boss 非得要“去 IOE”然后你再搞迁移……
|
50
limbo0 2022-07-30 09:42:12 +08:00
埋点只能是越来越多, 长远考虑还是换离线, 当然如果哦几年内 mysql 能撑住不动也行啊
|
53
aheadlead 2022-07-30 10:20:39 +08:00 1
@documentzhangx66 #41 乐了 36 万行数据你让人上 oracle 合着你给他掏钱还是怎么的?
|
54
caqiko 2022-07-30 10:50:50 +08:00
就你一个写代码的,你部署 es 老板舍得花这个钱吗?
|
55
keymao 2022-07-30 11:40:06 +08:00
写个定时任务,检测数据条目超过一定数量就进行归档,按照时间将很久之前的先归档 放到其他数据表
|
57
knightdf 2022-08-01 21:01:56 +08:00
直接写 csv,tsv 文件就行了
|