æ°æ®åå°ïŒè¿è¥ç"驟驶è±"
æ¬ææ¯æžžæè¿è¥ç³»ç»ææ¯å享系å第å ç¯ïŒè¿è¥å·¥å ·ç¯ç¬¬7ç¯ïŒä¹æ¯æåäžç¯ïŒïŒå°åžŠäœ æ·±å ¥äºè§£æ°æ®åå°ç讟计åçãææ¯å®ç°åæäœ³å®è·µã
äžã䞺ä»ä¹æ°æ®åå°åŠæ€éèŠ
1.1 ä»"ç²äººæžè±¡"å°"å šç¥è§è§"
æ³è±¡è¿æ ·äžäžªåºæ¯ïŒ
è¿è¥åäºè·æ¥é®ïŒ"æè¿å åŒäžæ»äºïŒæ¯ä»ä¹åå ïŒ"
æ²¡ææ°æ®åå°ïŒçæ¡å¯èœæ¯è¿æ ·çïŒ
- "å¯èœæ¯å£èæ§æ³¢åšïŒ"
- "ä¹è®žæ¯ç«åææŽ»åšäºïŒ"
- "æè§æè¿æŽ»è·ç©å®¶å°äºâŠâŠ"
å šæ¯çæµïŒæ²¡æäŸæ®ã
ææ°æ®åå°ïŒçæ¡æ¯è¿æ ·çïŒ
- "iOS æž éå åŒäžæ» 15%ïŒäž»èŠåè¹æå®¡æ žåœ±åïŒæ°çæ¬å»¶è¿äžçº¿"
- "ä»èŽ¹çšæ·æ°çš³å®ïŒäœ ARPU äžéïŒåå æ¯äžé¢å åŒæ¡£äœèŽä¹°çéäœ"
- "7 æ¥çåä» 42% è·å° 38%ïŒéèŠå ³æ³šæ°æåŒå¯Œç¯è"
è¿å°±æ¯æ°æ®åå°çä»·åŒïŒä»"åæè§"å°"çæ°æ®"ïŒä»"äºå诞è亮"å°"äºåé¢èŠ"ã
1.2 æ°æ®åå°çæ¬èŽš
æ°æ®åå°äžåªæ¯"çæ¥è¡šçå°æ¹"ïŒå®æ¯è¿è¥çå³çæ¯æç³»ç»ã
åŠæææžžæè¿è¥æ¯äœåŒé£æºïŒé£æ°æ®åå°å°±æ¯é©Ÿé©¶è±éç仪衚çïŒ
- é«åºŠè¡šåè¯äœ ç°åšåšåªäžªäœçœ®
- æ²¹é衚æéäœ è¿å©å€å°èµæº
- èŠæ¥åšåšåŒåžžæ¶ååºæé
- é·èŸŸåž®äœ çæž åæ¹çæ åµ
没æä»ªè¡šçïŒé£è¡ååªèœ"åæè§åŒ"ââè¿åšæžžæè¿è¥äžïŒå°±æ¯çŸéŸçåŒå§ã
1.3 æ°æ®é©±åšçè¿è¥éç¯
å¥œçæ°æ®åå°æ¯æå®æŽçè¿è¥éç¯ïŒ
æ°æ®éé â ææ çæ§ â é®é¢åç° â åå åæ â çç¥å¶å® â ææè¯äŒ° â æ°æ®éé
æ¯äžç¯éœäŸèµæ°æ®ïŒ
- æ²¡ææ°æ®ééïŒåç»å šæ¯ç©ºè°
- æ²¡æææ çæ§ïŒé®é¢åç°é è¿æ°
- 没æåå åæïŒçç¥å¶å®é æèè¢
- æ²¡æææè¯äŒ°ïŒäžç¥éå对äºè¿æ¯åéäº
æ°æ®åå°ïŒå°±æ¯è¿äžªéç¯çåºç¡è®Ÿæœã
1.4 äžäžªçå®çæ¡äŸ
æäžåºŠææžžåš 2025 幎 Q3 éå° DAU è¿ç»äžæ»çé®é¢ãè¿è¥å¢éæå讀䞺æ¯"ææç»æãåŠçååœ"çèªç¶æ³¢åšïŒäœæ°æ®åå°æŸç€ºïŒ
- æ°å¢çšæ·æ£åžžïŒåæž éææŸæççš³å®
- 次æ¥çå骀éïŒä» 45% è·å° 32%
- æµå€±èç¹éäžïŒ80% æµå€±åçåšç¬¬ 3 å ³
è¿äžæ¥åæç¬¬ 3 å ³çæ°æ®ïŒ
- å¹³åå°è¯æ¬¡æ°ä» 2.3 次äžåå° 5.8 次
- éè¿çä» 68% äžéå° 23%
- ç©å®¶åéŠå ³é®è¯ïŒ"倪éŸ""å¡å ³""äžå ¬å¹³"
æç»å®äœå°é®é¢ïŒäž€åšåçäžæ¬¡çæŽæ°ïŒé误å°å°ç¬¬ 3 å ³çéŸåºŠç³»æ°ä» 0.8 è°æŽå°äº 1.5ã
äºãæ°æ®åå°çæŽäœæ¶æ
2.1 æ¶ææŠè§
äžäžªå®æŽçæ°æ®åå°ç³»ç»ïŒéåžžå å«ä»¥äžå±æ¬¡ïŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â å±ç€ºå±ïŒPresentationïŒ â
â Web æ§å¶å° â ç§»åšç«¯æ¥è¡š â é®ä»¶/éé/é£ä¹Šæšé â API æ¥å£ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â æå¡å±ïŒServiceïŒ â
â æé管ç â æ¥è¡šé
眮 â åèŠè§å â æ°æ®å¯Œåº â 仪衚çå®å¶ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â 计ç®å±ïŒComputeïŒ â
â 宿¶è®¡ç®åŒæïŒFlinkïŒ â 犻线计ç®åŒæïŒSparkïŒ â é¢èåæå¡ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â ååšå±ïŒStorageïŒ â
â 宿¶åºïŒClickHouseïŒ â 犻线åºïŒHive/DorisïŒ â çŒåïŒRedisïŒ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â ééå±ïŒCollectionïŒ â
â SDK åç¹ â æå¡ç«¯æ¥å¿ â äžå¡æ°æ®åºåæ¥ â ç¬¬äžæ¹æ°æ®æ¥å
¥ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
2.2 æ°æ®ééå±è®Ÿè®¡
åç¹æ¯æ°æ®ééçåºç¡ã奜çåç¹äœç³»éèŠïŒ
- äºä»¶åç±»
- äžå¡äºä»¶ïŒå åŒãæ¶è޹ãå级ã瀟亀 - ç³»ç»äºä»¶ïŒéè¯¯ãæ§èœææ ãèµæºå 蜜
- äºä»¶ç»æ
{
"event_id": "purchase_complete",
"user_id": "12345678",
"timestamp": 1708234567890,
"properties": {
"item_id": "skin_001",
"item_name": "éå®ç®è€-æ¥æ¥ç©è¯",
"price": 68,
"currency": "CNY",
"payment_method": "wechat"
},
"context": {
"app_version": "2.3.1",
"platform": "android",
"channel": "huawei",
"device_model": "HUAWEI Mate 60 Pro",
"os_version": "HarmonyOS 4.0"
}
}
- åç¹ç®¡çå¹³å°
- åç¹ææ¡£ïŒèªåšçæåç¹è¯Žæææ¡£ - æ ¡éªå·¥å ·ïŒæ£æµåç¹æ¯åŠæ£ç¡®äžæ¥ - çæ¬æ§å¶ïŒè·èžªäºä»¶åæŽåå²
客æ·ç«¯ SDK â æ¬å°çŒå â æ¹éäžæ¥ â çœå
³æå¡ â æ¶æ¯éå â ååšç³»ç»
å ³é®ææ¯ç¹ïŒ
- æ¬å°çŒåïŒçœç»äžçš³å®æ¶å 忬å°ïŒçœç»æ¢å€åéè¯
- æ¹éäžæ¥ïŒåå°è¯·æ±æ¬¡æ°ïŒæåæç
- æ¶æ¯éåïŒåå³°å¡«è°·ïŒåºå¯¹æµéçªå
- æ°æ®å猩ïŒåå°äŒ èŸåžŠå®œïŒéäœææ¬
2.3 ååšå±ææ¯éå
䞺ä»ä¹éæ© ClickHouseïŒ
- ååŒååšïŒéå OLAP æ¥è¯¢
- å衚æ¥è¯¢æ§èœæäœ³ïŒäº¿çº§æ°æ®ç§çº§è¿å
- æ¯æç©åè§åŸïŒèªåšé¢èå
- å猩æ¯é«ïŒååšææ¬äœ
å®é æ¡äŸïŒææžžææ¥æŽ» 500 äžïŒæ¥åäºä»¶é 20 亿æ¡ïŒClickHouse é矀é 眮ïŒ
- 3 èç¹ïŒæ¯èç¹ 32 æ ž 128GB å å
- å衚æ¥è¯¢ P99 å»¶è¿ < 500ms
- æååšææ¬çºŠ 2 äžå ïŒäºæå¡ïŒ
éååºæ¯ïŒ
- å岿°æ®åœæ¡£
- 倿çå€è¡šå ³èåæ
- æ°æ®ç«æ¹äœé¢è®¡ç®
çšäºïŒ
- 宿¶ææ çŒåïŒåœååšçº¿äººæ°ïŒ
- é¢ç¹æ¥è¯¢çç»æçŒå
- åèŠè§åçç¶æç®¡ç
2.4 计ç®å±è®Ÿè®¡
å žååºçšåºæ¯ïŒ
- 宿¶åšçº¿äººæ°ç»è®¡
- 宿¶å åŒéé¢çŽ¯è®¡
- 宿¶åŒåžžæ£æµ
计ç®ç€ºäŸïŒ5 åéçªå£ç掻è·çšæ·æ°
-- Flink SQL 瀺äŸ
SELECT
TUMBLE_START(event_time, INTERVAL '5' MINUTE) as window_start,
COUNT(DISTINCT user_id) as active_users
FROM events
WHERE event_time >= NOW() - INTERVAL '1' HOUR
GROUP BY TUMBLE(event_time, INTERVAL '5' MINUTE)
éååºæ¯ïŒ
- æ¥/åš/ææ¥è¡šçæ
- çšæ·æ çŸè®¡ç®
- 倿çåœå åæ
计ç®è°åºŠïŒäœ¿çš Apache DolphinScheduler æ Airflow 管çä»»å¡äŸèµ
äžãæ žå¿ææ 讟计
3.1 ææ äžæ¯è¶å€è¶å¥œ
åŸå€å¢éç¯çé误æ¯ïŒè¿œæ±ææ å šé¢ïŒç»ææ·¹æ²¡åšæ°æ®æµ·æŽäžã
äžäžªæ°æ®åå°åŠæåæ¶å±ç€º 100 äžªææ ïŒè¿è¥äŒçåªäžªïŒçæ¡æ¯ïŒåªäžªéœäžçã
å¥œçææ 讟计éµåŸª"å°å³æ¯å€"ååïŒèçŠå ³é®ïŒå¿œç¥åªé³ã
3.2 ææ åå±è®Ÿè®¡
åççææ äœç³»æ¯åå±çïŒåéåå¡äžæ ·ïŒ
è¿æ¯æŽäžªå¢éå ±å远æ±çæ žå¿ç®æ ïŒææå·¥äœéœåŽç»å®å±åŒã
å¯¹äºæžžææ¥è¯ŽïŒå¯èœæ¯ïŒ
- æ¥æŽ»è·çšæ·æ°ïŒDAUïŒ
- ææµæ°ŽïŒMonthly RevenueïŒ
- çšæ·çåœåšæä»·åŒïŒLTVïŒ
åææææ çéæ©ïŒåå³äºæžžæçåäžæš¡åŒååœåé¶æ®µã
æ¯æåææææ çäºçº§ææ ïŒåž®å©å®äœé®é¢ã
åŠæåæææ¯ DAUïŒå ³é®ç»æå¯èœæ¯ïŒ
- æ°å¢çšæ·æ°
- 次æ¥çåç
- 7 æ¥çåç
- æ¥åæžžææ¶é¿
- 瀟亀äºåšç
çšäºæ·±å ¥åæé®é¢çå ·äœææ ïŒå¹³æ¶äžäžå®å ³æ³šïŒåºé®é¢æ¶ææ·±å ¥æ¥çã
æ¯åŠïŒ
- åæž éæ°å¢å æ¯
- åå ³å¡æµå€±ç
- ååèœäœ¿çšç
- åæ¶æ®µåšçº¿ååž
3.3 ææ å®ä¹çæ åå
åäžäžªææ åç§°ïŒäžå人å¯èœæäžåçè§£ãæ¯åŠ"掻è·çšæ·"ïŒ
- æ¯ç»åœç®æŽ»è·ïŒè¿æ¯èŠæè¡äžºïŒ
- è¡äžºå æ¬åªäºïŒå¿è·³ç®äžç®ïŒ
- äžäžªçšæ·å€å€©ç»åœïŒç®å 䞪掻è·çšæ·ïŒ
| ææ åç§° | è±æ ID | å®ä¹ | 计ç®å ¬åŒ | æŽæ°é¢ç | èŽèŽ£äºº |
|---|---|---|---|---|---|
| æ¥æŽ»è·çšæ·æ° | DAU | æ¯æ¥ç»åœæžžæçäžéå€çšæ·æ° | COUNT(DISTINCT user_id) WHERE event='login' AND date=today | 宿¶ | åŒ äž |
| ä»è޹ç | PayRate | åœæ¥æŽ»è·çšæ·äžä»èŽ¹çšæ·çå æ¯ | ä»èŽ¹çšæ·æ° / DAU à 100% | T+1 | æå |
| ARPPU | ARPPU | æ¯ä»èŽ¹çšæ·å¹³åæ¶å ¥ | æ»å åŒéé¢ / ä»èŽ¹çšæ·æ° | 宿¶ | çäº |
3.4 ææ è®Ÿè®¡çåå
- å¥œïŒæ°æåŒå¯Œå®æçïŒäœäºå¯ä»¥äŒååŒå¯ŒïŒ
- å·®ïŒçŽ¯è®¡æ³šåçšæ·æ°ïŒåªèœçïŒæ²¡æ³çŽæ¥è¡åšïŒ
- 奜ïŒåæž éçæ°å¢çšæ·æ°ïŒç¥éåªäžªæž éåºé®é¢ïŒ
- å·®ïŒæ»æ°å¢çšæ·æ°ïŒåªç¥éæ¶šè·ïŒäžç¥é䞺ä»ä¹ïŒ
- æåºåçº¿ïŒæç¥éåœåè¡šç°æ¯"奜"è¿æ¯"å·®"
- æè¶å¿åŸïŒæç¥éæ¯åš"æ¹å"è¿æ¯"æ¶å"
- æ žå¿ææ éèŠå®æ¶æå宿¶æŽæ°
- æ¬¡èŠææ å¯ä»¥ T+1
3.5 é¿å èè£ææ
èè£ææ ïŒççæŒäº®ïŒäœæ²¡æå®é æå¯Œæä¹ã
å žåçèè£ææ ïŒ
- 环计泚åçšæ·æ°ïŒåªå¢äžåïŒæ²¡æåèä»·åŒ
- æ»äžèœœéïŒäžèœœäžçäºæŽ»è·
- 页颿µè§éïŒæ²¡æç»åçšæ·æ°çïŒå¯èœæ¯å°æ°çšæ·å·åºæ¥ç
å¥œçææ å ³æ³šèŽšéèéæ°éïŒå ³æ³šçåèéæ°å¢ïŒå ³æ³šä»·åŒèéè§æš¡ã
åãæ°æ®å¯è§å讟计
4.1 å¯è§åçç®ç
æ°æ®å¯è§åäžæ¯äžºäº"奜ç"ïŒèæ¯äžºäºé«æäŒ 蟟信æ¯ã
奜çå¯è§åïŒè®©è¿è¥åš 3 ç§å æäœéç¹ïŒ
- åªäºææ æ£åžžïŒ
- åªäºææ åŒåžžïŒ
- åŒåžžå°ä»ä¹çšåºŠïŒ
å·®çå¯è§åïŒè®©è¿è¥è± 3 åéè¿åšæŸæ°æ®ïŒ
- ææ åšåªéïŒ
- è¿æ¡çº¿ä»£è¡šä»ä¹ïŒ
- 䞺ä»ä¹çšè¿ç§é¢è²ïŒ
4.2 çé¢åžå±è®Ÿè®¡
éŠå±æ¯è¿è¥æ¯å€©æåŒç第äžäžªé¡µé¢ïŒå¿ é¡»åå°ïŒ
- æ žå¿ææ äžç®äºç¶ïŒåææææ æŸåšææŸçŒäœçœ®
- åŒåžžèªåšé«äº®ïŒçº¢ç»¿è²æ åºåæ£åžž/åŒåžž
- æ¯æå¿«éäžé»ïŒç¹å»å³å¯æ¥ç诊æ
æšèåžå±ïŒ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â [Logo] æ°æ®åå° v2.0 [æçŽ¢] [éç¥ð] [çšæ·å€Žå] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â å¯Œèªæ â
â ââ éŠé¡µ (åœå) â
â ââ çšæ·åæ â
â ââ æ¶å
¥åæ â
â ââ æŽ»åšåæ â
â ââ ç³»ç»çæ§ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â æ¶éŽéæ©: [仿¥ âŒ] [对æ¯: æšæ¥ âŒ] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â ââââââââââââ ââââââââââââ ââââââââââââ âââââââââââââ
â â DAU â â æ¶å
¥ â â ä»è޹ç â â æ¬¡çç ââ
â â 125,680 â â Â¥892,340 â â 4.2% â â 45.3% ââ
â â â 5.2% â â â 12.3% â â â 0.3% â â â 1.2% ââ
â ââââââââââââ ââââââââââââ ââââââââââââ âââââââââââââ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â â
â [DAU è¶å¿åŸ - è¿ 30 倩] â
â âââââââââââââââââââââââââââââââââââââââââââââââââ® â
â â â±âŸâŸâ² â â
â â â± â² â±â² â â
â â â± â² â± â² â±âŸâŸâ² â â
â â ___â± â²__â± â²____â± â²___ â â
â â°âââââââââââââââââââââââââââââââââââââââââââââââ⯠â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ€
â [æž éååž] [å
åŒæè¡] [åŒåžžåèŠ] â
â ââââââââââ 1. Â¥128 æ¡£ 32% â ïž 3æ¡ â
â â 宿¹ 45%â 2. Â¥68 æ¡£ 28% â
â â å䞺 25%â 3. Â¥30 æ¡£ 22% â
â â å°ç±³ 18%â 4. Â¥6 æ¡£ 12% â
â â å
¶ä» 12%â 5. Â¥3 æ¡£ 6% â
â ââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
4.3 åŸè¡šç±»åéæ©
äžåçæ°æ®ïŒéåäžåçåŸè¡šïŒ
| æ°æ®ç±»å | æšèåŸè¡š | å žååºæ¯ |
|---|---|---|
| è¶å¿åå | æçº¿åŸãé¢ç§¯åŸ | DAU è¶å¿ãæ¶å ¥èµ°å¿ |
| å æ¯ååž | 饌åŸãç¯åœ¢åŸãæ åŸ | æž éå æ¯ãä»èŽ¹æ¡£äœååž |
| 对æ¯åæ | æ±ç¶åŸãæ¡åœ¢åŸ | åå ³å¡éè¿çãåçæ¬çåå¯¹æ¯ |
| æŒæèœ¬å | æŒæåŸ | æ°æåŒå¯Œèœ¬åãæ¯ä»æµçšèœ¬å |
| çžå ³å ³ç³» | æ£ç¹åŸãæ°æ³¡åŸ | æžžææ¶é¿äžä»è޹ççžå ³æ§ |
| å°çååž | å°åŸçååŸ | ç©å®¶å°åååž |
| æ¶éŽååž | çååŸç©éµ | çšæ·æŽ»è·æ¶æ®µåæ |
4.4 é¢è²è®Ÿè®¡è§è
é¢è²æ¯æ°æ®å¯è§åçéèŠè¯èšïŒéèŠå»ºç«ç»äžè§èïŒ
/* ç¶æè² */
--color-success: #52C41A; /* æ£åžž/å¢é¿/奜 */
--color-warning: #FAAD14; /* èŠå/泚æ */
--color-error: #F5222D; /* åŒåžž/äžé/å·® */
--color-info: #1890FF; /* äžæ§/ä¿¡æ¯ */
/* åŸè¡šè²æ¿ - 10 è² */
--chart-color-1: #5B8FF9;
--chart-color-2: #5AD8A6;
--chart-color-3: #5D7092;
--chart-color-4: #F6BD16;
--chart-color-5: #E86452;
/* ... */
- 红绿è²ç²å奜ïŒäžåªäŸèµé¢è²ïŒé å圢ç¶/纹ç
- é«å¯¹æ¯åºŠïŒç¡®ä¿æ°æ®æž æ°å¯èŸš
- äžèŽæ§ïŒåäžææ åšäžååŸè¡šäžäœ¿çšçžåé¢è²
- å å¶äœ¿çšïŒé¿å 圩è¹è²ïŒéåžž 5-7 ç§é¢è²è¶³å€
4.5 亀äºè®Ÿè®¡
å¥œçæ°æ®å¯è§åäžåªæ¯"ç"ïŒè¿èœ"æäœ"ïŒ
- å¿«æ·é项ïŒä»æ¥ãæšæ¥ãè¿ 7 倩ãè¿ 30 å€©ãæ¬æãäžæ
- èªå®ä¹ïŒæ¥æèåŽéæ©åš
- 对æ¯ïŒäžæšæ¥/äžåšåæ/äžæåæå¯¹æ¯
- ç¹å»æ°æ®ç¹æ¥çæç»
- å€çº§äžé»ïŒæž é â æžžæ â æå¡åš
- é¢å å±å¯ŒèªïŒè®°åœäžé»è·¯åŸ
- 倿¡ä»¶ç»åçé
- ç鿡件ä¿å
- å¿«éçéé¢è®Ÿ
- å¯Œåº PNG/PDF/Excel
- çæåäº«éŸæ¥
- 宿¶æ¥å订é
4.6 åžžè§åŸè¡šè®Ÿè®¡ç€ºäŸ
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â 宿¶åšçº¿äººæ° æåæŽæ°: 14:32 â
âââââââââââââââââââââââââââââââââââââââââââââââââââ€
â â
â åœå: 23,456 â
â æ¥å³°åŒ: 45,678 (10:30) â
â æšæ¥åæ: 21,234 â 10.5% â
â â
â ââââââââââââââââââââââââââââââââââââââââââââââ®â
â â â±âŸâŸâ² ââ
â â â± â² â±âŸâ² ââ
â â â±âŸâŸâŸâŸâŸâ± â²______â± â²___ ââ
â â ___â± â²___ ââ
â â°âââââââââââââââââââââââââââââââââââââââââââââ¯â
â 0:00 6:00 12:00 18:00 24:00 â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
âââââââââââââââââââââââââââââââââââââââââââââââââââ
â æ°æåŒå¯Œèœ¬åæŒæ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ€
â â
â å¯åšæžžæ 100,000 âââââââââââââââââââââ 100% â
â å建è§è² 85,234 âââââââââââââââââââââ 85% â
â 宿åŒå¯Œ 62,456 âââââââââââââââââââââ 62% â
â ç¬¬äžæ¬¡å
åŒ 4,234 ââââââââââââââââââââ 4% â
â 第äºå€©ç»åœ 45,678 ââââââââââââââââââââ 46% â
â â
â â ïž åŒå¯Œå®æçåäœïŒå»ºè®®äŒå第 3 å
³å¡ â
âââââââââââââââââââââââââââââââââââââââââââââââââââ
äºã宿¶æ°æ®çææ¯ææ
5.1 䞺ä»ä¹éèŠå®æ¶æ°æ®ïŒ
æäºå³ççäžèµ· T+1ïŒ
宿¶æ°æ®è®©è¿è¥ä»"äºåå€ç"åæ"宿¶ååº"ã
5.2 宿¶ vs å宿¶
äž¥æ Œæä¹äžç"宿¶"ïŒæ¯«ç§çº§å»¶è¿ïŒææ¬åŸé«ïŒå€§å€æ°åºæ¯äžéèŠã
- æ°æ®å»¶è¿ 1-5 åé
- ææ¬å¯æ§
- èœæ»¡è¶³ç»å€§å€æ°è¿è¥åºæ¯
åºååºæ¯ïŒ
- å ³é®åèŠïŒæå¡åšå®æºãæ¯ä»æ éïŒâ éèŠç§çº§å®æ¶
- è¿è¥çæ§ïŒåšçº¿äººæ°ãå åŒéé¢ïŒâ åé级å宿¶è¶³å€
- 深床åæïŒçšæ·ç»åãè¡äžºè·¯åŸïŒâ T+1 ä¹å¯ä»¥æ¥å
5.3 ææ¯å®ç°çéŸç¹
宿¶æ°æ®é¢äžŽå倧ææïŒ
- é®é¢ïŒçœç»å»¶è¿ãæ¶æ¯ä¹±åºãé倿¶è޹
- è§£å³æ¹æ¡ïŒ
- äºä»¶æ¶éŽæåºïŒæäºä»¶åçæ¶éŽèéå°èŸŸæ¶éŽå€ç - Watermark æºå¶ïŒå€çè¿å°æ°æ®
- é®é¢ïŒæ¥æŽ»çŸäžçæžžæïŒæ¯ç§äºä»¶éå¯èŸŸæ°äž
- è§£å³æ¹æ¡ïŒ
- ååºå¹¶è¡ïŒæçšæ· ID ååºïŒå¹¶è¡å€ç - æ¹éåå ¥ïŒææ¹åäžæ¬¡æ§åå ¥ïŒåå° IO
- é®é¢ïŒäº¿çº§æ°æ®ç§çº§è¿åïŒææå·šå€§
- è§£å³æ¹æ¡ïŒ
- ç©åè§åŸïŒèªåšç»Žæ€èåç»æ - ååºè£åªïŒåªæ«æå¿ èŠçæ°æ®ååº
- é®é¢ïŒé«é¢åå ¥ + ä¹ ååš = 髿æ¬
- è§£å³æ¹æ¡ïŒ
- æ°æ®å猩ïŒClickHouse å猩æ¯å¯èŸŸ 10:1 - TTL çç¥ïŒèªåšæž çè¿ææ°æ®
5.4 Lambda æ¶æè¯Šè§£
Lambda æ¶ææ¯å€ç宿¶+çŠ»çº¿æ°æ®çç»å žæš¡åŒïŒ
âââââââââââââââ
â æ°æ®æº â
â (Kafka) â
ââââââââ¬âââââââ
â
âââââââââââââââââŒââââââââââââââââ
â â â
⌠â âŒ
âââââââââââââââ â âââââââââââââââ
â éåºŠå± â â â æ¹å€çå± â
â (Flink) â â â (Spark) â
â â â â â
â - 宿¶è®¡ç® â â â - å
šéè®¡ç® â
â - äœå»¶è¿ â â â - é«ç²ŸåºŠ â
ââââââââ¬âââââââ â ââââââââ¬âââââââ
â â â
⌠â âŒ
âââââââââââââââ â âââââââââââââââ
â 宿¶è§åŸ â â â æ¹å€çè§åŸ â
â (ClickHouse)â â â (Hive) â
ââââââââ¬âââââââ â ââââââââ¬âââââââ
â â â
âââââââââââââââââŒââââââââââââââââ
â
âŒ
âââââââââââââââ
â æå¡å± â
â - åå¹¶æ¥è¯¢ â
â - API æå¡ â
âââââââââââââââ
- æ°æ®åæ¶è¿å ¥é床å±åæ¹å€çå±
- é床å±ïŒå®æ¶å€çïŒæäŸäœå»¶è¿çææ°æ°æ®
- æ¹å€çå±ïŒå šé计ç®ïŒæäŸé«ç²ŸåºŠçå岿°æ®
- æå¡å±ïŒå并䞀å±ç»æïŒå¯¹å€æäŸç»äžæ¥è¯¢
- äŒç¹ïŒå Œé¡Ÿå®æ¶æ§ååç¡®æ§
- 猺ç¹ïŒéèŠç»Žæ€äž€å¥ä»£ç ïŒè¿ç»Žå€æ
5.5 æ§èœäŒåå®è·µ
- é¢èåçç¥
-- åå§æ¥è¯¢ïŒæ¯æ¬¡æ«æå
šéæ°æ®
SELECT COUNT(DISTINCT user_id)
FROM events
WHERE date = '2026-02-28';
-- äŒåïŒé¢èå衚
CREATE TABLE daily_active_users (
date Date,
user_count UInt64
) ENGINE = SummingMergeTree();
-- æ¯æ¥å®æ¶æŽæ°é¢èå衚
INSERT INTO daily_active_users
SELECT date, COUNT(DISTINCT user_id)
FROM events
WHERE date = today()
GROUP BY date;
- ååºçç¥
-- ææ¥æååº
CREATE TABLE events (
event_time DateTime,
user_id String,
event_name String,
-- ...
) ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(event_time)
ORDER BY (event_time, user_id);
- 玢åŒäŒå
-- æ·»å è·³æ°çŽ¢åŒïŒå éæ¥è¯¢
ALTER TABLE events ADD INDEX idx_user user_id TYPE bloom_filter GRANULARITY 4;
âââââââââââââââ
â è¯·æ± â
ââââââââ¬âââââââ
â
âŒ
âââââââââââââââ
â æ¬å°çŒå â TTL: 10s
â (è¿çšå
) â
ââââââââ¬âââââââ
â Miss
âŒ
âââââââââââââââ
â ååžåŒçŒå â TTL: 60s
â (Redis) â
ââââââââ¬âââââââ
â Miss
âŒ
âââââââââââââââ
â æ°æ®åº â
â(ClickHouse) â
âââââââââââââââ
- å·çå犻
- æž©æ°æ®ïŒè¿ 3 æïŒïŒHDD ååš - å·æ°æ®ïŒ3 æåïŒïŒå¯¹è±¡ååš + å猩
- æ°æ®éæ ·
- 粟确åæåªéå¯¹è¿ææ°æ®
- æé计ç®
- é«é¢æ¥è¡šïŒé¢è®¡ç® + çŒå
å ãæ°æ®æé管ç
6.1 䞺ä»ä¹éèŠæéæ§å¶ïŒ
æ°æ®æ¯ææèµäº§ãäžæ¯ææäººéœèœçæææ°æ®ïŒ
æ°æ®æé管çïŒæ¯æ°æ®åå°çå®å 𿀿 ã
6.2 RBAC æéæš¡å
| è§è² | æéèåŽ | å žåçšæ· |
|---|---|---|
| è¶ çº§ç®¡çå | å šéšæ°æ® + ç³»ç»é 眮 | CTOãæ°æ®èŽèŽ£äºº |
| æ°æ®åæåž | å šéšæ°æ®åªè¯» + å¯Œåº | åæåžå¢é |
| è¿è¥ç»ç | èŽèŽ£äžå¡çå šéæ°æ® | è¿è¥èŽèŽ£äºº |
| è¿è¥äžå | èŽèŽ£æž é/æžžæçæå®æ°æ® | äžçº¿è¿è¥ |
| å€éšåäœæ¹ | è±æåçæéæ°æ® | 代çåãåè¡å |
çšæ· ââå±äºâââ¶ è§è² ââæ¥æâââ¶ æé
æé = èµæº + æäœ
èµæºïŒ
- æ°æ®èåŽïŒå
šé / æå®æžžæ / æå®æž é / æå®å°åº
- åèœæš¡åïŒæ¥è¡šæ¥ç / æ¥è¡šé
眮 / åèŠç®¡ç / çšæ·ç®¡ç
æäœïŒ
- æ¥ç (View)
- å¯Œåº (Export)
- é
眮 (Config)
- 管ç (Admin)
6.3 æ°æ®è±æçç¥
| æ°æ®ç±»å | è±ææ¹åŒ | ç€ºäŸ |
|---|---|---|
| ææºå· | äžéŽ 4 äœæ¿æ¢äžº * | 138**1234 |
| é®ç®± | @åä¿çå 3 äœ | abc*@qq.com |
| èº«ä»œè¯ | ä¿çå 3 å 4 äœ | 310*1234 |
| é¶è¡å¡ | ä¿çå 4 äœ | **1234 |
| å§å | ä¿çå§ | åŒ ** |
| IP å°å | æåäžæ®µæ¿æ¢äžº 0 | 192.168.1.0 |
æ ¹æ®çšæ·æéåšæå³å®æ¯åŠè±æïŒ
- 髿éçšæ·ïŒçå°å®æŽæ°æ®
- æ®éçšæ·ïŒçå°è±ææ°æ®
- å€éšçšæ·ïŒå®å šäžå¯è§
6.4 审计äžè¿œæº¯
è®°åœæææ°æ®è®¿é®è¡äžºïŒ
{
"log_id": "20260301143200001",
"user_id": "ou_xxx",
"user_name": "åŒ äž",
"action": "export",
"resource": "daily_revenue_report",
"query_params": {
"date_range": "2026-02-01~2026-02-28",
"channels": ["all"]
},
"result_count": 28,
"ip_address": "192.168.1.100",
"user_agent": "Chrome/120.0",
"timestamp": 1708234567890
}
èªå𿣿µåŒåžžè®¿é®è¡äžºïŒ
- çæ¶éŽå 倧é富åº
- éå·¥äœæ¶éŽè®¿é®æææ°æ®
- 访é®äžè莣æ å ³çæ°æ®
- 犻èå倧éäžèœœæ°æ®
äžãåèŠäžé¢èŠç³»ç»
7.1 åèŠç±»å
- ææ è¶ è¿é¢è®ŸéåŒè§Šå
- 瀺äŸïŒDAU < 10 äžãæ¯ä»æåç < 95%
- äžå岿°æ®å¯¹æ¯ïŒååè¶ éè§Šå
- 瀺äŸïŒæ¶å ¥ç¯æ¯äžé > 20%
- 䜿çšç®æ³èªåšåç°åŒåžž
- 瀺äŸïŒåºäºå岿°æ®çæ¶åºåŒåžžæ£æµ
7.2 åèŠè§åé 眮
# åèŠè§å瀺äŸ
alert_rules:
- name: "DAU äœæ°ŽäœåèŠ"
metric: "dau"
condition: "value < 100000"
duration: "30m" # æç» 30 åé
severity: "critical"
channels: ["feishu", "sms"]
receivers: ["ops-team"]
- name: "æ¯ä»æåçåŒåžž"
metric: "payment_success_rate"
condition: "value < 0.95"
duration: "10m"
severity: "high"
channels: ["feishu"]
receivers: ["payment-team"]
- name: "æ¶å
¥ç¯æ¯äžé"
metric: "revenue"
condition: "compare_prev_day < -0.2"
severity: "medium"
channels: ["email"]
receivers: ["management"]
7.3 åèŠå级äžéåª
| çº§å« | 诎æ | éç¥æ¹åŒ | ååºæ¶éŽ |
|---|---|---|---|
| P0 - èŽåœ | æ žå¿äžå¡äžå¯çš | çµè¯ + çä¿¡ + IM | 5 åéå |
| P1 - 䞥é | äž»èŠåèœåæ | çä¿¡ + IM | 15 åéå |
| P2 - äžè¬ | 次èŠåèœåŒåžž | IM + é®ä»¶ | 1 å°æ¶å |
| P3 - æç€º | éèŠå ³æ³š | é®ä»¶ | 24 å°æ¶å |
é¿å "çŒæ¥äº"æåºïŒ
- åèŠèåïŒçžååèŠåå¹¶ïŒé¿å å·å±
- é黿ïŒå·²å€ççåèŠæäžéå€éç¥
- åŒç蜮æ¢ïŒé玧æ¥åèŠåªéç¥åŒç人å
- æºèœæ¶æïŒåºäºå岿°æ®è¿æ»€æ æåèŠ
å «ã宿æ¡äŸïŒæäžåºŠææžžçæ°æ®åå°
8.1 项ç®èæ¯
- æžžæç±»åïŒäžåºŠå¡ç RPG
- æ¥æŽ»è§æš¡ïŒ50 äž
- äºä»¶éïŒæ¥å 10 亿æ¡
- å¢éè§æš¡ïŒè¿è¥ 5 人 + æ°æ® 2 人
8.2 éæ±åæ
- 宿¶çæ§å ³é®ææ
- æŽ»åšææå¿«éè¯äŒ°
- çšæ·åå±ç²Ÿç»åè¿è¥
- åŒåžžé®é¢å¿«éå®äœ
8.3 æ¶æéå
ééå±ïŒèªç SDK + Kafka
ååšå±ïŒClickHouse (宿¶) + Doris (犻线)
计ç®å±ïŒFlink (宿¶) + Spark (犻线)
å±ç€ºå±ïŒèªç Web æ§å¶å° + Grafana
- æ»æå ¥ïŒæå 5 äžå ïŒäºæå¡ïŒ
- 人åïŒ2 人绎æ€
8.4 æ žå¿åèœå®ç°
ææ¯æ¹æ¡ïŒ
- Flink 计ç®å®æ¶ææ
- ç»æåå ¥ ClickHouse
- å端蜮询 API è·åæ°æ®
å ³é®ææ ïŒ
- 宿¶åšçº¿äººæ°ïŒç§çº§æŽæ°ïŒ
- 宿¶å åŒéé¢ïŒåéçº§æŽæ°ïŒ
- æå¡åšèŽèœœç¶æïŒç§çº§æŽæ°ïŒ
åºäº RFM æš¡å + æžžæç¹åŸïŒ
- æè¿æŽ»è·æ¶éŽ (Recency)
- 掻è·é¢ç (Frequency)
- ä»è޹éé¢ (Monetary)
- æžžæè¿åºŠ (Progress)
- 瀟亀掻è·åºŠ (Social)
åå±ç»æïŒ
- æ žå¿ä»èŽ¹çšæ·ïŒ1.2%
- é«ä»·åŒæŽ»è·çšæ·ïŒ8.5%
- æ®é掻è·çšæ·ïŒ45%
- æµå€±é£é©çšæ·ïŒ25%
- å·²æµå€±çšæ·ïŒ20.3%
æ¯æçåæç»ŽåºŠïŒ
- åäžçïŒæŽ»åšè§ŠèŸŸçšæ·äžåäžçæ¯äŸ
- 蜬åçïŒåäžçšæ·äžå®æç®æ çæ¯äŸ
- äººåæ¶çïŒæŽ»åšåžŠæ¥çå¢éæ¶å ¥
- ROIïŒæŽ»åšæ¶ç / æŽ»åšææ¬
8.5 ææè¯äŒ°
- æ¥è¡šçææ¶éŽïŒä» 2 å°æ¶çŒ©çå° 5 åé
- é®é¢å®äœæ¶éŽïŒä» 1 倩猩çå° 10 åé
- 掻åšè¯äŒ°åšæïŒä»åšæ¥åææ¥æ¥
- åç°å¹¶ä¿®å€ 3 䞪圱åçåçé®é¢
- æŽ»åšæææå 15%ïŒéè¿æ°æ®äŒåïŒ
- ä»è޹çæå 0.8%ïŒç²Ÿåè¿è¥ïŒ
ä¹ã仿°æ®å°å³ç
9.1 æ°æ®åå°çæç»ç®ç
æ¶éæ°æ®ãè®Ÿè®¡ææ ãå¯è§åå±ç€ºââè¿äºéœäžæ¯ç®çã
æ°æ®åå°ååŸå奜ïŒåŠæè¿è¥ç宿°æ®è¿æ¯äžç¥é该åä»ä¹ïŒé£å°±æ¯å€±èŽ¥çã
9.2 æ°æ®è§£è¯»èœå
æäºæ°æ®ïŒè¿éèŠäŒè§£è¯»ïŒ
- çææ³¢åšè¿æ¯é¿æè¶å¿ïŒ
- æ¯åšææ§ååè¿æ¯åŒåžžïŒ
- ååçæçæ¯å éè¿æ¯åéïŒ
- äžåå²å¯¹æ¯ïŒåæ¯ãç¯æ¯åå
- äžç®æ 对æ¯ïŒå®æçãå·®è·åæ
- äžç«å对æ¯ïŒåžåºå®äœãå·®è·åæ
- ååçåå æ¯ä»ä¹ïŒ
- æ¯å å ïŒäº§åãè¿è¥ïŒè¿æ¯å€å ïŒåžåºãæ¿çïŒïŒ
- æ¯åäžå çŽ è¿æ¯å€å çŽ å å ïŒ
- æ°æ®åè¯æè¯¥åä»ä¹ïŒ
- æåªäºå¯éæ¹æ¡ïŒ
- æ¯äžªæ¹æ¡çé¢ææææ¯ä»ä¹ïŒ
æ°æ®åå°å¯ä»¥æäŸæ°æ®ïŒäœè§£è¯»æ°æ®çèœåéèŠå¹å »ã
9.3 å³çæ¯æçé«çº§åœ¢æ
æŽè¿äžæ¥ïŒæ°æ®åå°å¯ä»¥è¿å䞺å³çæ¯æç³»ç»ïŒ
- èªåšåæææ ååçåå
- å®äœå°æå¯èœç圱åå çŽ
- æäŸè¯æ®éŸæ¯æ
- åºäºå岿°æ®æšèæäŒçç¥
- A/B æµè¯ç»æèªåšåæ
- çç¥ææé¢æµ
- èªåšè°æŽææŸçç¥
- èªåšè§Šåè¿è¥åšäœ
- éç¯äŒå
è¿æ¯æ°æ®åå°çé«çº§åœ¢æïŒéèŠ AI èœåçå æã
åãç³»åæ»ç»
10.1 è¿è¥å·¥å ·ç¯å顟
è¿äžªç³»åïŒæä»¬ä»ç»äºæžžæè¿è¥çæ žå¿å·¥å ·ïŒ
äžè çžèŸ çžæïŒ
- æ°æ®åå°åè¯äœ "åçäºä»ä¹""䞺ä»ä¹"
- 掻åšåŒæåž®äœ "éåè¡åš"
- é®ä»¶ç³»ç»åž®äœ "è§ŠèŸŸçšæ·"
10.2 å¥œå·¥å ·çæ å
å顟è¿äžªç³»åïŒå¥œçè¿è¥å·¥å ·æå ±åç¹ç¹ïŒ
10.3 å·¥å ·åªæ¯ææ®µ
æåïŒåŒºè°äžç¹ïŒå·¥å ·åªæ¯ææ®µïŒäžæ¯ç®çã
åå¥œçæ°æ®åå°ïŒäžèœæ¿ä»£è¿è¥ç倿åã åå¥œçæŽ»åšåŒæïŒäžèœæ¿ä»£è¿è¥çåæã å奜çé®ä»¶ç³»ç»ïŒäžèœæ¿ä»£è¿è¥çæŽå¯ã
å·¥å ·çä»·åŒïŒæ¯æŸå€§äººçèœåïŒèäžæ¯æ¿ä»£äººçæèã
çæ£äŒç§çè¿è¥ïŒæåŸå©çšå·¥å ·ïŒäœäžäŒè¢«å·¥å ·æçŒãæ°æ®åè¯äœ "æ¯ä»ä¹"ïŒäœ"䞺ä»ä¹"å"æä¹å"ïŒè¿æ¯éèŠäººçæºæ §ã
ååšæå
è³æ€ïŒæžžæè¿è¥ç³»ç»ææ¯å享系åå šéšå®æã
仿åºç¡çç©å®¶èŽŠå·ç³»ç»ïŒå°å€æçæ¯ä»äžåäœåŒïŒåå°è¿è¥å·¥å ·äœç³»ââæä»¬äžèµ·èµ°è¿äºæžžæåç«¯ææ¯çæ žå¿çåŸã
ææ¯å享çç®çïŒäžæ¯æäœ å代ç ïŒèæ¯åž®äœ 建ç«è®€ç¥æ¡æ¶ãåœäœ çè§£äºç³»ç»èåç讟计æè·¯ïŒéå°å ·äœé®é¢æ¶ïŒèªç¶èœæŸå°è§£å³æ¹åã
æžžæè¡äžåšåïŒææ¯åšåïŒäœæå¡ç©å®¶ãåé ä»·åŒçæ¬èŽšäžåã
åžæè¿äžªç³»åïŒèœäžºäœ çææ¯æé¿æäŸäžç¹åèã
æè°¢é 读ïŒåäŒææïŒ
éåœ AïŒæ°æ®åå°ææ¯æ éååè
å°åå¢éïŒæ¥æŽ» < 10 äžïŒ
| ç»ä»¶ | æšèæ¹æ¡ | 诎æ |
|---|---|---|
| éé | èªç SDK + MySQL | ç®åçŽæ¥ïŒå€çšå³å¯ |
| ååš | MySQL + Redis | å€çšç°ææ°æ®åº |
| è®¡ç® | 宿¶ä»»å¡ | çš SQL èå |
| å±ç€º | Metabase / Superset | åŒæºå 莹 |
äžåå¢éïŒæ¥æŽ» 10-100 äžïŒ
| ç»ä»¶ | æšèæ¹æ¡ | 诎æ |
|---|---|---|
| éé | èªç SDK + Kafka | éèŠæ¶æ¯éåçŒå² |
| ååš | ClickHouse | OLAP æ¥è¯¢æ§èœå¥œ |
| è®¡ç® | Flink + Spark | 宿¶ + 犻线 |
| å±ç€º | èªç + Grafana | å®å¶åéæ± |
倧åå¢éïŒæ¥æŽ» > 100 äžïŒ
| ç»ä»¶ | æšèæ¹æ¡ | 诎æ |
|---|---|---|
| éé | èªç SDK + Kafka é矀 | é«å¯çšãé«åå |
| ååš | ClickHouse é矀 + HDFS | ååžåŒååš |
| è®¡ç® | Flink é矀 + Spark é矀 | å€§è§æš¡è®¡ç® |
| å±ç€º | èªç å¹³å° | å®å šå®å¶å |
éåœ BïŒæ°æ®åå°è®Ÿè®¡èªæ£æž å
ææ è®Ÿè®¡
- [ ] ææç¡®çåææææ
- [ ] ææ åå±åçïŒæ žå¿/å ³é®/è¯æïŒ
- [ ] é¿å èè£ææ
- [ ] ææ å ·æå¯è¡åšæ§
- [ ] æå®æŽçææ åå ž
æ°æ®éé
- [ ] åç¹èŠçæ žå¿äžå¡åºæ¯
- [ ] åç¹ææ¡£å®æŽäžææ°
- [ ] æ°æ®æ ¡éªæºå¶å®å
- [ ] ééééçš³å®å¯é
å¯è§å讟计
- [ ] åŸè¡šç±»åäžæ°æ®ç±»åå¹é
- [ ] åŒåžžæ°æ®çªåºæŸç€º
- [ ] é¢è²äœç³»äžèŽ
- [ ] æ¯æäº€äºæäœïŒçéãäžé»ã对æ¯ïŒ
- [ ] ååºåŒè®Ÿè®¡éé å€ç«¯
宿¶æ§
- [ ] æ žå¿ææ æ¯æå®æ¶/å宿¶æŽæ°
- [ ] åèŠåæ¶æšé
- [ ] æ°æ®å»¶è¿åšå¯æ¥åèåŽå
- [ ] ææ°æ®å»¶è¿çæ§
æé管ç
- [ ] åºäºè§è²çæéæ§å¶
- [ ] æææ°æ®è±æå€ç
- [ ] 宿Žçè®¿é®æ¥å¿
- [ ] 宿æé审计
æ§èœäŒå
- [ ] é¢èååžžçšææ
- [ ] åçççŒåçç¥
- [ ] ååºè£åªäŒåæ¥è¯¢
- [ ] å·çæ°æ®å犻
å³çæ¯æ
- [ ] æäŸéåŒåèŠåèœ
- [ ] æ¯ææ°æ®å¯¹æ¯åæ
- [ ] æäŸè¶å¿é¢æµèœå
- [ ] æ¯ææ°æ®å¯Œåºåå享
- [ ] åèŠéåªæºå¶å®å
è¿ç»Žä¿é
- [ ] æå®åççæ§äœç³»
- [ ] ææ°æ®èŽšéæ£æµ
- [ ] æçŸå€æ¹æ¡
- [ ] æå®¹éè§å
ð¬ è¯è®º (0)