ฉันแนะนำรายการอนุกรมเวลาเดียวต่อเอกสาร มีปัญหากับการจัดเก็บหลายรายการต่อเอกสาร:
- เอกสารเดียวถูก จำกัด ขนาดที่แน่นอน (ปัจจุบัน 16 MB) จำกัด จำนวนรายการที่สามารถเก็บไว้ในเอกสารเดียว
- เมื่อมีการเพิ่มรายการลงในเอกสารเอกสารทั้งหมด (และอนุกรมเวลา) จะถูกลบโดยไม่จำเป็นและจัดสรรให้กับหน่วยความจำขนาดใหญ่กว่าเดิม
- คำสั่งในเอกสารย่อยมีข้อ จำกัด เมื่อเปรียบเทียบกับคำสั่งในเอกสารทั่วไป
- เอกสารที่มีโครงสร้างแบบเรียบมาก (เช่นเดียวกับเอกสารย่อยหนึ่งรายการสำหรับแต่ละวินาที) ไม่ใช่การแสดง
- การลดแผนที่ในตัวใช้งานไม่ได้กับเอกสารย่อย
นอกจากนี้ยังทราบประทับเวลาที่ถูกสร้างขึ้นในการเริ่มต้น MongoDB มี objectid คุณสามารถใช้สิ่งนี้หากความแม่นยำอนุกรมเวลาน้อยกว่าหนึ่งวินาที
นี่คือตัวอย่างเอกสาร BSON จากไลบรารีการบันทึกเหตุการณ์ที่ใช้ MongoDB :
Example format of generated bson document:
{
'thread': -1216977216,
'level': 'ERROR',
'timestamp': Timestamp(1290895671, 63),
'message': 'test message',
'fileName': '/var/projects/python/log4mongo-python/tests/test_mongo_handler.py',
'lineNumber': 38,
'method': 'test_emit_exception',
'loggerName': 'testLogger',
'exception': {
'stackTrace': 'Traceback (most recent call last):
File "/var/projects/python/log4mongo-python/tests/test_mongo_handler.py", line 36, in test_emit_exception
raise Exception(\'exc1\')
Exception: exc1',
'message': 'exc1',
'code': 0
}
}
ตั้งแต่บันทึกเหตุการณ์คล้ายกับซีรีส์ครั้งอาจจะมีมูลค่าการศึกษาส่วนที่เหลือของรหัส มีเวอร์ชันใน Java, C #, PHP และ Python
นี่เป็นอีกหนึ่งโครงการโอเพ่นซอร์สที่คล้ายกัน: Zarkov
[อัพเดต]ตามความเห็นของ @ RockScience ฉันได้เพิ่มการอ้างอิงเพิ่มเติม: