thedinosaurmail 最近的时间轴更新
thedinosaurmail

thedinosaurmail

V2EX 第 673366 号会员,加入于 2024-01-26 11:26:17 +08:00
thedinosaurmail 最近回复了
3 天前
回复了 ipfox 创建的主题 Android 小米 13 手贱升了 hyperos3,崩了
升了,还行
2025 年 12 月 11 日
回复了 fruitmonster 创建的主题 生活 有懂保险的朋友吗?帮忙看下给爸妈买的保险
大部分保险都差不多,你有钱就选免赔额低一点的。没钱就选免赔额高一点的。反正都是买个保障。我给我爸买了每年 1k 多的保险。因为有高血压所以买了个健康告知宽松一点的。反正尽早买也有好处。不然年纪大了买不了了
2025 年 12 月 11 日
回复了 fruitmonster 创建的主题 生活 有懂保险的朋友吗?帮忙看下给爸妈买的保险
买一些能保到很久之后的。
2024 年 4 月 16 日
回复了 OliverDD 创建的主题 程序员 对数据库感兴趣,但完全接受不了 cpp
那就学编译原理,学完编译原理再看 cpp
2024 年 4 月 2 日
回复了 zdking08135 创建的主题 程序员 请教一个系统设计题
在使用 ClickHouse 进行表的设计时,针对您的需求,我们需要考虑如何优化存储和查询效率,尤其是面对大规模数据和复杂查询(如跨地域合并统计)。以下是一个基于您需求的示例表结构,包括了用户 ID 、打点时间、地域信息和打点数。

首先,考虑到数据量和查询需求,建议使用 MergeTree 系列引擎,它适用于大数据量的存储和分析,支持高效的数据插入和实时查询。

表结构设计
sql
Copy code
CREATE TABLE user_events
(
`event_date` Date,
`user_id` UInt64,
`city_id` UInt32,
`country_id` UInt32,
`event_count` UInt32,
`event_datetime` DateTime
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, country_id, city_id, user_id)
SAMPLE BY user_id
SETTINGS index_granularity = 8192;
字段解释:
event_date: 打点发生的日期,用于分区和快速过滤。
user_id: 用户的唯一标识符。
city_id: 城市的唯一标识符,需要有一个额外的映射表来解释每个城市 ID 对应的实际城市。
country_id: 国家的唯一标识符,同样需要一个映射表来详细说明。
event_count: 该用户在该日的打点数,考虑到您的业务场景,可能需要在数据插入前进行聚合计算。
event_datetime: 打点的具体时间点,支持精确到秒的时间戳,可用于进一步的时间序分析。
注意事项:
分区策略:根据 event_date 进行分区,可以有效地管理数据的存储和查询,尤其是对历史数据的分析。
排序键:通过(event_date, country_id, city_id, user_id)进行排序,优化查询性能,特别是当进行地域和时间范围的查询时。
采样:通过 SAMPLE BY user_id 支持对数据进行采样查询,适用于需要估算或快速分析的场景。
索引粒度:index_granularity 设置为 8192 ,这是一个平衡查询速度和存储效率的配置。根据实际数据量和查询模式,这个值可能需要调整。
多地域查询设计思路:
对于跨地域的统计分析,可以在查询时通过 GROUP BY 语句实现。例如,如果需要合并计算用户在同一天内不同城市(或国家)的打点数,可以通过将 user_id 和 event_date 作为聚合的关键字,然后对 event_count 求和。
2024 年 4 月 2 日
回复了 zdking08135 创建的主题 程序员 请教一个系统设计题
直接写 clickhouse 就行 ,不需要怎么设计设计
uid ,country ,province ,create_at

主要是要判断好按什么排序就行
2024 年 4 月 2 日
回复了 zdking08135 创建的主题 程序员 请教一个系统设计题
clickhouse , 10 亿还好 ,按天分区就行
2024 年 3 月 20 日
回复了 ljian6530 创建的主题 Linux Ubuntu22.04 爱之初体验
debian 桌面的路过 , 感觉 debian 很稳定
2024 年 3 月 14 日
回复了 Dffcc 创建的主题 程序员 Stack overflow 发问被踩
搜索一下提问的智慧
要先写:
1 遇到什么问题
2 自己做了什么努力
3 努力之后报了什么错误,希望遇到什么帮助

如果这么写,他们会很开心帮忙你的
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5197 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 01:30 · PVG 09:30 · LAX 17:30 · JFK 20:30
♥ Do have faith in what you're doing.