2013-11-26 3 views
0

초당 많은 트랜잭션 (5000)을 처리하는 ESB가 있습니다. 다양한 형식의 요청 (xml, json, csv 및 일부 형식이없는 요청)의 모든 유형을받습니다. 상상할 수 있듯이 많은 요청이 처리됩니다.과도한 트랜잭션 데이터를 기록하고 쿼리하는 가장 좋은 방법은 무엇입니까?

문제는 요구 사항으로 인해 감사/문제 해결을 위해이 데이터를 모두 기록해야합니다. 이러한 데이터는 사용자의 마음에 오는 요청 데이터의 일부를 사용하여 검색 할 수 있어야합니다. 큰 문제가 있습니다

  • 데이터 (XML)는 우리의 RDBM (의 SQLServer 2008)에 무거운 원인 삽입 잠금입니다.

  • 이러한 큰 데이터 (XML 및 기타 구조화되지 않은 데이터)를 쿼리 할 때는 특별히 최적화되지 않은 경우 많은 시간이 걸릴 수 있습니다 ( ). (자유 텍스트 검색은 내 문제를 해결하지 못했지만 여전히 느리다).

  • 데이터가 매우 빠르게 증가합니다. (예상대로 - 공간 절약을 위해 저장된 데이터를 최적화 할 수있는 데이터베이스가 필요합니다.) 몇 달 간의 데이터는 수백 기가 바이트를 먹습니다.

문제는 NoSQL, RDBMS 등 어떤 데이터베이스 또는 디자인 원리를 사용하여 내 문제를 해결할 수 있을까요? 나는 매우 빨리 기록 할 수 있고 저장된 데이터의 일부를 사용하여 매우 빠르게 검색 할 수있는 somethign을 원한다.

+0

어떤 해결책을 제시 할 수 있습니까? –

+0

ryan1234 권장 사항 (ElasticSearch)을 따랐습니다. 나의 유스 케이스의 경우, 트랜잭션 무결성은 요구 사항이 아니었다. – Lekkie

+0

초당 얼마나 많은 요청을받을 수 있습니까? 여기서 말하는 서버 환경 또는 ESS 클러스터는 무엇입니까? 당신과 같지만 자신의 솔루션이나 몽고 빗 (Mongodb)을 구현하려고합니다. –

답변

1

나는 탄성 검색 고려할 것 : 사용 사례에 대한 http://www.elasticsearch.org/

장점 :

  1. 매우 큰 확장 할 수 있습니다. 데이터가 커짐에 따라 노드를 클러스터에 추가하기 만하면됩니다.
  2. Lucene을 기반으로하므로 시간이 걸리는 검색 엔진이라는 것을 알고 있습니다.
  3. 스키마가 없으므로 데이터를 저장하기 위해 ETL을 수행 할 필요가 없습니다. 그냥 그대로 보관하십시오.
  4. 좋은 커뮤니티가 잘 지원하고 있으며 스택 오버플로를 포함하여 많은 엔터프라이즈 기업에서 사용하고 있습니다.
  5. 무료입니다!
  6. 검색하기가 쉽고 특정 결과를 향상시켜 도메인에서 조정할 수있는 방법을 제어 할 수 있습니다.

내가 처리 할 수있는 것보다 더 빨리 쓰려고하는 경우에 대비하여 큐를 앞에 두는 것이 좋습니다.

관련 문제