[질문]몽고DB에서 JSON 보다 더 많은 데이터 형식을 지원하기 위해 BSON을 사용하는것으로 아는데 이로 인한 다른 장점은 어떤게 있는지요?
BSON 포맷의 가장 큰 장점은 속도적인 측면에서 JSON에 비해 상대적으로 월등히 우수합니다.
그 주요 이유가 무엇인지 어쭤봐도 될까요?
JSON은 고급어인 Text이고, BSON은 기계어이기 때문입니다.
JSON으로 저장한다면 MongoDB 내부적으로 기계어로 변환하는 과정이 추가적으로 필요할 것이고 그렇기 때문에 속도가 더 느립니다.
하지만 BSON은 JSON에 비해 사이즈가 좀 더 크다는 단점이 있습니다.
그러나 readability의 측면에서 Json이 더 유리하지 않나요?
사용자가 데이터를 볼때는 JSON으로 변환을 해서 보여주지만 기본적으로 빅데이터를 적재하는 경우에서는 BSON으로 저장하는 것이 유리하지 않을까 합니다.
상기의 의견은 저의 개인적인 생각이라 정확한 의견은 벤더분께서 알려주시면 감사하겠습니다.
@MongoDB
[질문] 데이터 저장형식 자체가 키-밸류 이면 일반 관계형데이터베이스의 인덱스와 같은 거 아닌가요? 별도로 인덱싱을 해야하는지요? 이럴경우 관계형의 속성이 밸류에 포함되어 인덱싱을 해야한다면 일반 데이터베이스보다 더 많은 스토리지가 필요하지 않나요?
time series의 clustered index를 제외하면 기본적으로 동일한 btree index이고 table의 column대신 document의 field에 indexing을 하는 것이라 RDB와 차이가 있는건 아닙니다
[질문] 몽고DB와 같은 문서 저장소는 조인을 다소 제한적으로 지원하며 데이터 구조의 동적인 특성 때문에 외래 키의 개념이 없어서 몽고DB의 데이터 모델링은 역정규화로 흐르는 경향이 있습니다. 그렇다면 엄격하게 테이블 사일로에 데이터를 유지하는 대응 방안이 있다면 무엇이 있을까요?
말씀하신대로 RDB수준의 relational consistency를 DB차원에서 지원하지는 않습니다. app data modeling이 결정적인 요소가 되는데 multi-doc의 경우 ACID transaction을 활용하시는 방법을 활용할 수 있습니다
[질문] 몽고디비는 모든 형태( 파일,디비,오브젝트 등)의 데이터를 처리 가능하나요
MongoDB의 필드는 기본적으로 Object 타입이고, Document 최대 크기인 16MB를 넘는 파일은 GridFS라는 것을 통해 저장이 가능한걸로 알고 있습니다.
MongoDB의 커뮤니티 버전에서는 시계열데이터베이스 지원이 안되나요?
5.0 버전부터 커뮤니티, 엔터프라이즈 다 지원되는 걸로 알고 있습니다.
[질문]트랜잭션 지원이 RDBMS 대비 미약하고 제공되는 MapReduce 작업이 Hadoop에 비해 성능이 떨어지는것으로 아는데 어떻게 개선이 가능할지요
Tx지원이 RDBMS에 비해 떨어진다기보다 최고 성능을 낼 수 있는 Oracle과 동일한 수준의 snapshot isolation tx을 지원하고 있습니다. 기본철학이 ACID Tx을 최소화 하는 것이지 성능의 문제는 아닙니다. 실제 TPC-C benchmark의 경우 innoDB기반의 타 RDB Tx에 비해 동일 h/w 성능에서 Tx은 두 배 이상의 성능 결과를 가지고 있습니다.
Hadoop은 EDW를 타겟으로 하는 MapReduce를 지원하는 솔루션입니다. 그에 반해 MDB는 ODS나 DW를 대신하는 것을 타겟으로 하기 때문에 비교자체가 의미가 없을 것 같습니다.
그 정도 수준의 데이터처리는 MDB의 타겟이 아닙니다.
[질문]데이터 업데이트중 장애발생시 데이터 손실 가능성이 있는것으로 아는데 이에 대한 보안점과 계획은 어떻게되는지요?
MDB은 design부터 분산 환경이기 때문에 하나의 node(논리적)는 기본적으로 3개의 물리 노드의 집합입니다. 한번에 두 개 이상의 물리 노드에 장대가 발생하기 전에는 downtime은 발생하지 않고, 물리 노드간 failover(보통 2초 내 수행)시에 application handover도 SDK driver차원에서 자동으로 이루어지고 있으며, 짧은 handover 동안 발생하는 write fail 의 경우도 driver차원에서 retryable write을 지원하고 있어 app 입장에서는 서비스 중단의 경험은 없다고 보셔도 무방합니다
[질문] 요즘 오픈 소스 보안 취약점이 엔터프라이즈 관점에서는 가장 민감한 이슈 중에 하나인데 몽고DB의 보안성이나 관리측면에서의 고려사항들은 어떤 것들이 있는지 궁금합니다.
MongoDB Enterprise나 MongoDB Atlas 는 엔터프라이즈 보안 수준을 제공하고 있고, ISO27001, SOC2, GDPR, HIPPA, FEDRamp 등 엄격한 보안 규정을 준수/인증을 제공합니다.
app-level encryption의 경우엔 다른 솔루션에선 지원하지 못하는 non-deterministic queryable encryption까지 지원하고 있어 더 높은 보안을 보장하고 있습니다
[질문] intel 12세대랑 비교했을 때 성능 비교도 알 수 있을까요?