看板 Database 關於我們 聯絡資訊
※ 引述《OpenGoodHate (什麼東西什麼東西)》之銘言: : 資料庫名稱:MSSQL / MYSQL : 資料庫版本:2014 / 5.5.22 : 內容/問題描述: : 其實還在架構選擇中 : 就是目前有個需求是要記錄每個USER每秒產生的一筆LOG : 如果是這樣 : worst case 就是一個user 一天要產出86400筆記錄 : 有1000個user 的話不就一天要記錄86400000筆 : 沒一個月資料表應該就破億筆 : 想請問如果有log 需求的話通常會怎麼寫 : 這個log 是要可以隨時被查詢的 : 若是算保存3個月(或1個月)的話該怎麼處理 : 因為目前的主機打算租用在Azure,服務環境應該就是ASP.NET : 所以也有硬碟容量限制 : 有想過自動分表,但是以月份分表難保不會隨著使用著的成長會有更大量的資料 : 或是這個情況要考慮NOSQL 的解決方案?? : 目前是全新案子剛起步,所以要NOSQL 可能也要等目前架構真的爆炸才會換吧 不知道你的Log是什麼樣的Log 使用者行為? 還有你打算怎麼查詢? 通常這種Log或是稱為Raw Log 不太適合放在資料庫太久 頂多一週了不起 你應該可以把他從Raw Log轉成Aggregated Data 例如如果你想提供查pageview 可以根據你想查詢的分類每個小時算個統計 例如文章觀看次數 你可以把每個小時每篇文章的觀看次數放在一個aggragated table 然後rawlog就超過七天就把它刪掉 當然你馬上刪也可以 但是我通常會讓他有個Time To Live 讓資料有機會re-aggregate 如果你真的想要把資料存超過七天 建議可以每天的凌晨把前一天的log dump出來 存到雲端storage 你用azure可以用blobstorage 如果用amazon可以用s3 之後可以用其他方法對資料做adhoc query 當然非資料庫的資料查詢又是另外一個故事了 有hive/pig/impala/presto/spark sql等等選擇 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.120.78 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1431185001.A.240.html ※ 編輯: popcorny (36.230.120.78), 05/09/2015 23:24:31 ※ 編輯: popcorny (36.230.120.78), 05/09/2015 23:27:17 ※ 編輯: popcorny (36.230.120.78), 05/09/2015 23:28:32
chen1025: 專業推 不過我好奇原po依照什麼條件查詢 05/16 11:36
chen1025: 這已經有機會變成論文題目 05/16 11:37