2012-11-25 4 views
6

더 많은 데이터를 유지하기 위해 변경해야하는 관계형 데이터베이스에 응용 프로그램이 있습니다. 내 문제는 단지 2 개의 테이블 중 2 개가 더 많은 데이터 (최대 수십억 개의 항목)를 저장하고 하나는 테이블이 fk에 의해 다른 테이블에 "연결"된다는 것입니다. 이 테이블에 대한 관계형 모델을 포기할 수 있습니다. DB의 나머지 부분은 그대로두고이 두 테이블 만 변경하고 싶습니다. 또한 간단한 선택에서부터 하위 및 하위 쿼리에 이르기까지 많은 쿼리를이 테이블에서 처리하므로 많은 문제가 발생합니다.SQL NOSQL 믹스 가능 여부

NoSQL에 나의 경험이 제한되어, 그래서 내 요구에 맞는 어느 (있는 경우) 그 형제의 부탁 해요 : - 거대한 데이터 - 복잡한 쿼리 - SQL 데이터베이스와의 통합. 이것은 처음 두 가지만큼 중요하지 않으며 가치가있는 경우 전체 데이터베이스를 동등한 것으로 마이그레이션 할 수 있습니다.

감사

+1

일반적으로 "NoSQL"로 그룹화 된 광범위한 기술은 SQL 데이터베이스에 대한 형제보다 서로 더 형제가 아닙니다. – Philipp

답변

3

관계형 데이터베이스와 NoSQL에 접근 모두 데이터가 데이터 포인트의 수십억을 가지고 처리 할 수 ​​있습니다. 제공된 정보를 통해 의미 있고 구체적인 추천을하기가 어렵습니다. 데이터로 무엇을하려고하는지, 하드웨어 및 네트워크 토폴로지와 관련하여 어떤 옵션이 있는지 등에 대해 더 알고 있으면 도움이 될 것입니다.

현재 관계형 데이터베이스를 사용 중이므로 이미 쿼리 성능이 만족 스럽도록 큰 테이블을 파티셔닝하거나 구조화하는 방법을 살펴 보았습니다. 이 활동은 그다지 중요하지 않을 수 있지만, 최적화 된 SQL을 사용하는 좋은 데이터베이스 설계 인 IMHO는 대안을 탐색해야하는 분명한 요구가 있기 전에 매우 먼 길을 택할 수 있습니다.

그러나 데이터 사용량이 한 번 쓰기처럼 보이고 자주 읽으며 조인 종속성을 관리 할 수 ​​있고 데이터 집합에 대해 일부 집계를 수행해야하는 경우 Hadoop 또는 MongoDB와 같은 대체 접근 방식을 살펴볼 수도 있습니다 - 그러나 이러한 선택은 성능, 기능, 플랫폼 요구 사항, 대기 시간 등과 같은 측면에서 균형을 이룹니다. NoSQL 저장소와 쿼리 수준의 SQL 데이터베이스 간의 통합에 관한 특정 질문은 두 데이터베이스간에 데이터가 중복되지 않으면 실현 될 수 없습니다. 예를 들어 MongoDB는 조인 (join) (http://stackoverflow.com/questions/4067197/mongodb-and-joins)을 좋아하지 않으므로이를 염두에두고 퍼시스턴스 모델을 설계해야합니다. 이는 데이터 복제와 관련 될 수 있습니다.

"올바른"접근법을 식별하는 것은 구체적인 목표와 제약에 달려 있습니다.

+0

현재 앱이 MySQL에서 실행 중입니다. 단일 노드에 데이터베이스가 있지만 최대 3 대의 머신을 확보 할 수 있습니다. 실행중인 쿼리는 복잡하며 테이블에있는 모든 행을 포함시킬 수 있습니다 (큰 그룹의 경우). 내 경험에 비추어 볼 때, MySQL은 합리적인 시간 (쿼리 당 1 분 미만)에 이러한 종류의 작업을 처리 할 수 ​​없기 때문에 대안을 찾고 있습니다. – qtm