[질문] 몽고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까지 지원하고 있어 더 높은 보안을 보장하고 있습니다
진동 센서와 같은 bandwidth 가 높은 아날로그 센서 데이터 시계열도 저장한 사례가 있는지 문의 드립니다.
진동 센서의 frequency가 어는 정도 높은 수준인지 모르겠지만
초단위 data injection까지 기본 처리가 가능하고, 더 높은 주기에서 성능에 문제가 우려되신다면 buffering을 통한 bulk write를 통해서 injection 성능을 높여 처리할 수 있습니다
[질문] 몽고DB가 다른 오라클이나 MSSQL 등보다 더 이점은 어떤것인가요
이점이냐 아니냐는 application의 목적에 따라 결정되기 때문에 딱히 이점이다라고 말씀드리긴 어렵지만,
일단, application data model과 storage data model의 일치에서 오는 개발 생산성의 이점, MDB의 경우 relational table에 제한되지 않고 다양한 데이터 모델을 use case에 초적화 시켜서 지원하기 때문에 time series collection, clustered index, graph model 다양한 app의 요구사항을 만족할 수 있고, ACID transaction까지 지원하는 developer data platform이라는 점이 큰 이점입니다. Transaction의 경우 Oracle가 동일한 수준의 snapshot isolation을 지원하고 있습니다
[질문]MLOPs 워크 플로우가 효율적으로 작동하려면 역할자 별 작업 숙련도가 중요할 거 같습니다. MLOPS 시스템에는 특정 구간에서 정체가 생길 경우 이해관계자 간 커뮤니케이션이나 문제해결을 지원하는 기능들은 무엇이 있는지 궁금합니다.