본문 바로가기

NoSQL15

[Data Model] 컬럼 추가 금지! Schema Validation TL;DRMongoDB에서 Schema Validation으로 필드(컬럼) 추가를 방지 하는 방법입니다.IT JourneymanMongoDB에서 Flexible Data Model은 장점입니다. 그러나 Pilot이나 Prototype 혹은 개발 단계를 지나서 통합 테스트 혹은 운영 모드에서는 자유로운 필드 추가를 금지하여 DBA가 관리하게 하는 것도 데이터 모델의 안정성 측면에서 필요합니다. 그럴 때 이 설정을 사용하시면 됩니다. 1. ​​첫 번 째 문서  생성  2. ​​Schema Validation 설정db.runCommand({ collMod: "users", validator: { $jsonSchema: { bsonType: "object", requ.. 2024. 9. 11.
[DB Internel]killSessions, 누가 이거 돌렸어 ! TL;DRMongoDB Atlas에서 Running중인 Session을 Kill 하는 방법입니다.IT JourneymanDBA의 고난한 일 중에 하나가 악성 쿼리를 날리거나 Deadlock을 일으킨 세션을 찾아 Kill하는 일입니다.MongoDB에서 Dealock은  자주 발생하지는 않습니다만, 악성 쿼리는 간혹 발생합니다.  그 때 해당 세션을 정리하는 방법입니다. Oracle에서는 RESOURCE_LIMIT을 TRUE로 설정하고 Profile을 설정하여 일정 이상의 리소스를 사용하는 세션의 오퍼레이션을 중단시키는 기능이 있습니다만, 그게 그렇게 적용하기가 쉽지 않았습니다. MongoDB의 Deadlock관련해서는 이 링크를 [DB Internal]Deadlock  참조하시기 바랍니다.  Table o.. 2024. 8. 16.
[DB Internal]Deadlock TL;DRMongoDB Atlas의 Transaction에서는 Deadlock이 발생하지 않는다는 간단한 예제[1](2024.08.07, MongoDB Atlas 7.0기준) [1] MongoDB는 Transaction을 지원합니다만, 모든 DML에 Transaction을 사용하는 것은 주의 깊은 고려가 필요합니다IT JourneymanMongoDB는 명시적 Transaction(Lock)을 지원합니다. 그러면 늘 따라오는 질문이 Deadlock입니다만, MongoDB Atlas에서는 별로 개의치 않으셔도 됩니다.대부분의 NoSQL에서는 명시적(사용자 선언) Transaction을 지원하지 않고, LUW/LWW(Last Update Win/Last Write Win)을 채택하고 있습니다. 간단하게 말해서.. 2024. 8. 7.
[Data Lake]MongoDB Connector for Spark TL;DR사용자가 Spark에서 MongoDB를 쓰거나 읽기를 할 수 있는 Connector 예제입니다. IT Journeyman많은 분들이 Hadoop 좀 어떻게 해달라고 말씀하시는 것을 보면, Hadoop은 모든 운영자들의 악몽인 듯 합니다. Hadoop을 대체해서 혹은 병행해서 Spark를 쓰고 있다면, Data Pipeline에서 MongoDB를 다양하게 활용할 수 있습니다. (Full name : Apache Hadoop, Apache Spark) Table of Contents Executive Summary● Use Cases● Reference0. Test Environment0-1 : Test Server :  t3.micro 2 vCPU, 1GB0-2 : Java  Install 0-3.. 2024. 8. 7.
[Data Lake]Atlas Data Federation TL;DR사용자가 AWS S3 Bucket에 JSON이나 Parquet 파일을 올려서 MongoDB(Atlas만 지원)에서 External Table로 사용할 수 있는 기능입니다. 로그 파일이나 외부 데이터와 연계를 하여 데이터 파이프라인으로 활용하기 좋은 기술입니다. (Atlas를 ODL(Operational Data Layer, ODS를 MongoDB에서 부르는 이름)로 사용하고 있으면 더 효과가 클 것 같습니다.)(본문 깁니다, 바쁘신 분은 그림(2-14 포함)만 보시면 됩니다.)IT Journeyman요즘 Fast Object Storage가 전통적 Analytic에서 많이 제안되고 있는가 봅니다.MongoDB의 이 기능이 S3 호환 스토리지도 지원했으면 더 좋았을 것 같은데 아쉬운 부분입니다.. 2024. 7. 30.
카산드라 DB 시작하기 1. DataStax Astra(astra.datastax.com)카산드라 DB를 시작할 수 있는 있는 가장 쉽고 빠른 방법, 데이터스택스 DBaaS(DB as a Service)인 Astra DB2. IaaS - GCP(cloud.google.com)2.1 우분투 버젼 확인journeymanit@instance-1:~$ hostnamectl Static hostname: instance-1 Icon name: computer-vm Chassis: vm Machine ID: 549d70bfbac61c109c84dc7d6a01e6a3 Boot ID: 8d26a21372dd442abc4399ce3a04fd3b Virtualization:.. 2024. 7. 29.
[Sizing]Extended Storage Sizes TL;DRMongoDB Atlas에서 최대 스토리지 용량은 4TB로 알려져 있습니다. Extended Storage Sizes를 설정하면 8TB, 14TB로 확장할 수 있습니다.(본문 짧습니다, 바쁘신 분은 1-1 그림만 보시면 됩니다)IT JourneymanDB Sizing은 Max값이 된다고 다 해도 되는 것이 아닙니다, 성능 및 관리(특히 백업) 등 다른 고려사항도 고민하셔야 합니다.Executive SummaryMax Storage Size & Extended Storage SizeMongoDB Tier별 Max Storage Size와 Extended Storage Size는 아래와 같습니다.AWS/GCP는 Extended Storage Size를 지원하고, Azure는 지원하지 않습니다.(20.. 2024. 7. 27.
[Performance]readPreference Test TL;DRMongoDB에서 Read 성능 최대로 하려면, readPreference를 nearest로 (자세한 내용은 본문에 있지만 내용이 깁니다, 바쁘신 분은 성능 요약표만 보셔도 됩니다만 주의사항은 꼭!)IT JourneymanIT에 무조건 좋은 것은 없습니다, 모든 것에는 대가가 따릅니다. 그러므로 잘 알고 사용해야...특히 NoSQL에서는 기존 RDBMS(Oracle)와는 다르게 SMP가 아닌 MPP구조를 선택하여 Read/Write Concern, Read Preference(MongoDB), Consistency Level(Apache Cassandra) 등의 파라미터로 Consistency를 사용자가 선택할 수 있도록 합니다. 권한에는 책임이 따르므로 사용자가 그 내용을 잘 알고 사용해야 합.. 2024. 7. 24.
Atlas Chart Demo w/ Lookup(Join) TL;DRAtlas Chart는 Aggregation Pipeline에서 Lookup(Join)을 지원하지 않아 만들어 본 Lookup을 하는 View를 만들어 Chart를 이용하는 예제입니다.  Table of Contents Executive Summary 1. Atlas Chart Demo w/ Lookup(Join) 1-1 Top 10 movie_id by Comments 1-2 View 생성(CLI) 1-3 View 생성(GUI-Compass) 1-4 Chart w/ View 1-5 Dashboard  Executive SummaryAtlas Chart는 Aggregation Pipeline에서 Lookup(Join)을 지원하지 않습니다. 다만 차트 빌더의 말줄임표(...) 드롭다운에서 View.. 2024. 7. 22.
Atlas Chart Demo TL;DR아주 기초이므로 Skip하시고, 다음 글 Atlas Chart Demo with Lookup(Join)만 보셔도 됩니다. Table of Contents 1. Atlas Chart Demo1-1 Chart > Add Dashboard1-2 Add Chart > Select Data Source1-3 Select Fields and Chart Type > Save and close1-4 Add Chart > Select Fields and Chart Type > Save and close1-5 … Click > Embedded 선택 1. Atlas Chart Demo1-1 Chart > Add Dashboard1-2 Add Chart > Select Data Source sample_mflix의 .. 2024. 7. 22.