2010-11-25 3 views
6

grep 등으로 몇 기가 바이트의 로그 파일을 분석 한 후 데이터베이스를 사용하여 로그를 남기는 방법을 궁금합니다. 이 데이터베이스에는 어떤 데이터베이스가 적당할까요? vanillia SQL 데이터베이스는 물론 작동하지만 여기서는 필요없는 많은 트랜잭션 보증 등을 제공하며 기가 바이트의 데이터와 매우 빠른 삽입 속도로 작업 할 경우 느려질 수 있습니다. 따라서 올바른 대답 일 수있는 NoSQL 데이터베이스 (몇 가지 제안에 대해서는 this answer을 비교하십시오). 데이터베이스에 대한 몇 가지 요구 사항은 다음과 같습니다어떤 데이터베이스를 로깅에 사용 하시겠습니까? (즉, 로그 파일 교체)

  • 기가바이트에 대처하는 능력이나 데이터
  • 빠른 삽입
  • 각 항목에
  • 여러 indizes이 가능해야한다 (예를 들면 시간, 세션 ID, URL 등의 어쩌면 테라 바이트 .)
  • 로그 파일은 대개 매우 반복적이므로 데이터를 압축 된 형식으로 저장합니다.

업데이트 : 이미 이에 대한 몇 가지 질문이 있습니다 (Database suggestion for processing/reporting on large amount of log file type dataWhat are good NoSQL and non-relational database solutions for audit/logging database). 그러나 어떤 데이터베이스가 어떤 요구 사항을 충족시키는 지 궁금합니다.

답변

1

귀하의 필요에 따라 Splunk이 좋은 옵션 일 수 있습니다. 이것은 단순한 데이터베이스 이상의 의미를 지니지 만 모든 종류의보고 기능을 제공합니다. 또한 로그 파일 교체로 설계되어 스케일링 문제를 이미 해결했습니다.

5

에이 문서에서 살펴위한 좋은 옵션이 될 수도, 내 최상의 선택이 될 것이다 : 큰 확장 성을

  • riak + riak 검색 MySQL은/​​PostgreSQL을
  • 하여 MongoDB에서
  • 표준화되어 있지 않은 데이터는
  • CouchDB를 대기 괜찮다면 당신은 당신이
검색하는 것을 알고있는 경우

Riak + Riak 검색 범위를 쉽게 (정말로!) 검색하고 데이터에 대해 자유 형식 쿼리를 사용할 수 있습니다. 데이터 스키마를 쉽게 혼합 할 수도 있고 innostore를 사용하여 데이터를 백엔드로 압축 할 수도 있습니다.

MongoDB는 실제로 인덱스를 사용하고 크롤링 속도를 줄이려면 몇 기가 바이트의 데이터를 확장하는 것을 성가 시게합니다. 단일 노드 성능을 고려하면 정말 빠르며 인덱스 작성을 제공합니다. 작업 데이터 세트가 더 이상 메모리에 들어 가지 않으면 문제가됩니다 ...

mysql/postgresql은 여전히 ​​매우 빠르며 일반적인 b + 트리 인덱스로 인해 자유 형식 쿼리를 허용합니다. 필드의 일부가 모든 레코드에 나타나지 않는 경우 포스트 픽스를 partial indexes으로보십시오. 또한 압축 된 테이블을 제공하고 스키마가 수정되었으므로 행 이름을 반복해서 저장하지 않습니다. (대부분의 nosql 솔루션에서 일반적으로 발생합니다)

CouchDB는 쿼리를 이미 알고있는 경우 유용합니다. 당신이보기를 원한다면, 그들의 증분 맵/감축 기반 뷰는이를위한 훌륭한 시스템입니다.

관련 문제