내 질문은이 하위 질문이 있습니다 대형 데이터 세트 매핑
- 마다 두 번째 내가 키/값 튜플의 집합으로 표현되는 데이터를 수신 곳의는 경우를 가정 해 봅시다합니다. 각 값은 기본적으로 64 비트 카운터입니다. 데이터베이스에 저장해야합니다. 값의 수는 수천 개입니다. 그 중 수천 만 명 중 1 %만이 실제 데이터를 가지고 있고, 다른 것들은 널 (희박하게 채워진 집합)입니다. 수천 개의 기둥을 만드는 것이 합리적입니까? 또는 "ID, 타임 스탬프, 키, 값"으로 저장 하시겠습니까?
질문 1에 대한 답변이 "수천 개의 열"인 경우 mysql/postgres 패밀리의 da는 사용해야합니까?
이 사례에 대한 읽기 패턴은 주로 차트 작업이므로 select는 타임 스탬프를 기반으로 한 데이터 묶음입니다. 따라서 일정한 1/초 쓰기와 날짜/시간 범위의 모든 데이터 또는 데이터의 비정기적인 읽기입니다.
보너스 질문, NoSQL 데이터베이스에 이러한 데이터를 저장하는 데 사용할 수있는 보너스 질문은 무엇입니까? 예를 들어, MongoDB에서는 전체 세트의 1 % 만있는 문서를 포함하는 통계 모음을 사용할 수 있습니다. 어떻게하면이 경우에 read/map/reduce와 함께 작동할까요? 어떻게 데이터를 읽는 것이 mysql/postgres와 비교 될까요?
편집 : 내 유스 케이스는 대신 (드문 드문 더 큰 세트에서 인구) 내가 훨씬 더 큰 데이터 세트를 작은 데이터 세트를 많이 갖는 미만 자주 (적은 사용자)
"수천"의 열이 지원되는 행 크기에 대한 PostgreSQL의 한계에 다가 가고 있습니다. http://www.postgresql.org/about/을 참조하십시오. 열 추가를 계속 사용하는 것에 의존하지 마십시오. 배열을 사용하는 것이 좋습니다. –
Postgresqlm 매뉴얼에서 "열 유형에 따라 표 250 - 1600 당 최대 열"- 감사합니다. – Zepplock
아주 좋은 스케일링은 아닙니다. 엄격한 제한은 정확히 1600으로 설정되어 있으며 PostgreSQL에서 사용하는 페이지 레이아웃을 변경하지 않고는 늘릴 수 없습니다. 배열 기반의 희소 인코딩을 사용하여 답을 수정하겠습니다. –