2014-01-18 1 views
0

현재 MySQL DB에서 성능 관련 문제가 있습니다. 우리의 응용 프로그램은 꽤 ~ 20 몇 테이블에 무겁습니다. 우리는이 테이블과 집계 쿼리를 많이 실행합니다. 우리 팀의 대부분은 개발자이며 dba에 대한 액세스 권한이 없기 때문에 현재 db를 다시 조정하고 작업 속도를 향상시킬 수 있습니다.Sql에서 NoSql 데이터베이스로 이동할 수있는 제한

NoSql로 이동은 옵션입니다. 그러나 심각하게 생각하고 (하루 현재 볼륨 ~ 50기가바이트)

  • 볼륨
  • 구조적 또는 원시 데이터의 측면에서 더 높은 한계는 무엇인가? DB에
  • IO 통계를 (데이터를 구조화) -

    • 이 50기가바이트이다 (현재 3000 행/초)

    질문 발생 -

  • 기록은 기록 (현재 속도는/초 60 KB 국민 은행입니다) NoSql을 고려할만큼 충분히 높습니까? 일부 문서는
  • 데이터는 더 구조화 얻고 응용 프로그램
  • MySQL이 3000 행/초에서 밖으로 확장,하지 않도록 MySQL을 추가로 조정할 수 있습니다
  • 을에서 사용하는 처리 할 수있는 원시 데이터, 있어야 할 TB보다 더 좋습니다

HBase는 분석 응용 분야에서 유망한 것으로 보입니다.

이것은 어쩌면 어떤 "오른쪽"대답하지만, 몇 가지 일반적인 권고가있을 것입니다 생각하지 않습니다 같은 광범위한 주제입니다 NoSQL에

+0

50기가바이트/일에도 더 많은 DBA 않고, 꽤 인상적 들린다. 아마도 현재의 인프라 구조에 대해 더 많이 알려줄 것입니다. HBase와 같은 NoSQL 데이터베이스는 특히 확장 성 (주로 관심사 인 것 같습니다)과 관련하여 많은 도움이 될 수 있지만 중요한 선택 사항을 만들 때주의해야 할 단점, 한계 및 오버 헤드가 없기 때문에 유용하지 않습니다 . 볼륨/스토리지에 관한 권장 사항을 잊어 버리면, 생산에 완벽하게 작동하는 아주 작은 NoSQL 데이터베이스가 많이 있습니다. –

+0

[NoSQL과 같은 것은 없습니다.] (http://ontraindevelopment.blogspot.de/2013/07/there-is-no-suchthing-as-nosql.html). 서로 공통점이없는 독립적 인 새로운 데이터베이스 기술이 많이 있습니다. – Philipp

+0

@ RubénMoraleda, 현재 인프라로 구성, MySql DB는 3 가지 3 가지 테이블로 분리되어 있습니다. 원시 데이터 (@ ~ 3000 행/초의 높은 삽입 수)에 대한 몇 개의 테이블 2. Minutely updates/rollups (삽입 수는 4000 행/분) 3. ~ 100 개의 테이블에 관계 (매핑)가 있습니다. DB는 정의를 위해 미세한 집계, UI, ~ 100 개의 구성 요소로 액세스 (읽기)됩니다. 이게 충분히 통찰력을 주길 바란다. –

답변

0

로 이동 생각할 수있는 RDBMS의 하나의 제한에 대한 몇 가지 지침을 얻을시겠습니까 도움 :

문제에 대한 올바른 도구를 선택한다는 측면에서이 도전을 생각해야한다고 생각합니다. 모든 데이터베이스에는 찬반 양론이 있으며 몇 가지 문제에서 가장 좋은 방법은 entire toolbox을 사용하여 작업을 완료하는 것입니다.

데이터를 다른 데이터 저장소로 이동하는 일은 거의 드뭅니다. 이 기회를 이용하여 데이터 모델을 구현하기 전에 다시 생각해보십시오.

이 작업을 마치면 성장 계획과 같은 더 많은 요구 사항도 고려해야합니다. 원래의 가정 -> 선택이 더 이상 현실과 동등하지 않기 때문에 당신은이 교차로에있는 것처럼 보입니다. 다음 번에 같은 장소에있을 때 연기하려면이 기회에 사용해야합니다.

마지막으로 작업이 실제로 캡처 된 데이터로 수행 한 후에 만 ​​수행된다는 것을 명심하십시오. 그렇지 않으면 무한히 확장 가능한 write-to-dev/null 디자인 패턴을 사용하는 것이 좋습니다.) 다르게 입력하십시오 데이터가 쓰기 전용이 아니라면 선택한 SQL/NoSQL/NewSQL/다른 데이터 스토어에서 유스 케이스의 허용 시간 내에 데이터/정보/지식을 얻을 수 있는지 확인해야합니다.

0

그것은 아마 가치 것이다 그것을 주어진 현재의 인프라, 하지만는 당신이 전체 과정를 재 설계 에 필요 해요 이후 거대한 작업 될 것 것을 명심하십시오.HBase는 실시간 카운터 (주기적 롤업이 필요없는 경우) 또는 클라이언트 당 버퍼링 (초당 100,000 회까지 확장 가능)과 같은 몇 가지 멋진 기능을 제공하므로 도움이 될 수 있지만 관계형 데이터베이스를 쿼리하는 것과 같은 방식으로 쿼리 할 수 ​​없다는 경고를 받으므로주의 깊게 계획하여 관계형 데이터베이스에서 사용할 수 있도록해야합니다.

주요 문제는 원시 데이터 쓰기와 관련이있는 것으로 보입니다. 확실히 HBase에 의존하여 RDBMS에 X 분마다 롤업을 수행하여 평상시처럼 쿼리 할 수 ​​있습니다. . 그러나 매분마다 데이터를 처리하고 있기 때문에 매우 짧은 간격이 있습니다. 데이터를 메모리에 보관하고 매분마다 롤업 테이블을 플러시하지 않으시겠습니까? 물론, 당신은 데이터를 잃을 수도 있지만, 1 분간의 데이터 손실에 대한 평론가가 얼마나 중요한지는 모르겠다.

어쨌든 내가 생각할 수있는 가장 좋은 조언은 책을 읽고, HBase가 어떻게 작동하는지 이해하고, & 찬성 찬반론을 파헤 치고 자신의 구체적인 필요를 어떻게 충족시킬 수 있는지 생각해보십시오. 좋은 구현은 성공인지 또는 완전히 실패했는지를 결정하기 때문에 중요합니다.

일부 자원 :

HBase: The Definitive Guide

HBase Administration Cookbook

HBase Reference guide (무료) 단지 MySQL을

+0

좋은 생각. 저장 될 데이터는 구조화/처리됩니다. 분당 700,000 건의 레코드 삽입을 견딜 수있는 데이터 저장소를 찾고 있습니다. 각 레코드의 크기는 50 바이트입니다. MySQL이 대처할 지 확신하지 못합니다. 1 분 이내에 데이터가 정상적으로 삭제됩니다. –

관련 문제