어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
The document discusses using the MongoDB shell for debugging queries, testing, and administration. It notes some limitations of using JavaScript in the shell, like number and date handling. It then demonstrates various shell commands like insert, find, runCommand, and profiling. Finally it discusses additional shell features like loading scripts, exposing functions, and printing indexes.
The document discusses MongoDB and provides an overview of its features and use cases. It begins with definitions of NoSQL and SQL databases, and the CAP theorem. It then covers MongoDB's features such as document-oriented storage, indexing, replication for high availability, and sharding for horizontal scaling. Examples are given of companies like Expedia using MongoDB for real-time personalized offers, flexible data models, and indexing to power travel search features. In conclusion, three scenarios are presented where MongoDB is well-suited: when dynamic schemas are needed, for flexible data modeling, and to enable powerful indexing.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
The document discusses using the MongoDB shell for debugging queries, testing, and administration. It notes some limitations of using JavaScript in the shell, like number and date handling. It then demonstrates various shell commands like insert, find, runCommand, and profiling. Finally it discusses additional shell features like loading scripts, exposing functions, and printing indexes.
The document discusses MongoDB and provides an overview of its features and use cases. It begins with definitions of NoSQL and SQL databases, and the CAP theorem. It then covers MongoDB's features such as document-oriented storage, indexing, replication for high availability, and sharding for horizontal scaling. Examples are given of companies like Expedia using MongoDB for real-time personalized offers, flexible data models, and indexing to power travel search features. In conclusion, three scenarios are presented where MongoDB is well-suited: when dynamic schemas are needed, for flexible data modeling, and to enable powerful indexing.
Webinar Slides: Become a MongoDB DBA (if you’re really a MySQL user)Severalnines
So, maybe you’ve been working with MySQL for a while and are now being asked to also properly maintain one or more MongoDB instances. It is not uncommon that MySQL DBAs, developers, network/system administrators or DevOps folks with general backgrounds, find themselves in this situation at some point in time. In fact, with more organisations operating polyglot environments, it’s starting to become commonplace.
With that said, we’d like to introduce a new webinar series: ‘How to Become a MongoDB DBA’ to answer the question: ‘what does a MongoDB DBA do’?
In the space of three webinars, we will walk you through the most important tasks a MongoDB DBA routinely goes through and provide you with options on how to best complete these tasks.
In this initial webinar of the series, we will go beyond the deployment phase and show you how you can automate tasks, how to monitor a cluster and how to manage MongoDB; whilst also automating and managing your MySQL and/or PostgreSQL installations.
Agenda
Introduction to becoming a MongoDB DBA
Installing & configuring MongoDB
What to monitor and how
How to perform backups
Live Demo
Speaker
Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic MySQL and Database expert with over 15 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to Couchbase, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, FOSDEM) and related meetups.
Webinar: An Enterprise Architect’s View of MongoDBMongoDB
The document provides an overview of MongoDB and how it addresses the requirements of modern applications and enterprises. It discusses how traditional databases struggle with new demands around dynamic schemas, large volumes of data, and agile development. MongoDB supports these requirements through features like document data structures, horizontal scaling, and high performance. Case studies demonstrate how MongoDB has helped organizations build real-time views of customer data, virtualize legacy systems, and improve data distribution. The document concludes by discussing best practices for enterprise adoption of MongoDB.
The document discusses using MongoDB as a tick store for financial data. It provides an overview of MongoDB and its benefits for handling tick data, including its flexible data model, rich querying capabilities, native aggregation framework, ability to do pre-aggregation for continuous data snapshots, language drivers and Hadoop connector. It also presents a case study of AHL, a quantitative hedge fund, using MongoDB and Python as their market data platform to easily onboard large volumes of financial data in different formats and provide low-latency access for backtesting and research applications.
Document-oriented databases store data in collections of documents rather than tables with a predefined schema. MongoDB is an open-source, document-oriented database that is easy to install and use. It supports many programming languages and operating systems. Documents in MongoDB can have unique field sets and storing non-normalized data can provide faster speeds than relational databases for heavy use cases.
The document discusses MongoDB as a scalable, open-source NoSQL database that provides agility, scalability, and high performance. It supports document-oriented data with dynamic schemas, horizontal scaling through autosharding and replication for high availability. MongoDB provides a simple interface that is similar to but more flexible than SQL.
The document discusses NoSQL databases and MongoDB in particular. It provides examples of MongoDB documents with different data types like objects, arrays, etc. It also shows how data is stored across multiple shard servers and accessed via mongos query routers. Configuration servers store sharded cluster metadata. Log data can be stored in MongoDB but only aggregated results data may be needed. HDFS is better for temporary raw log storage.
This document contains information about Justin Smestad and MongoDB. It includes Justin's contact information and background working as a software engineer with skills in Ruby, JavaScript, Clojure, and passion for DevOps. It also provides an overview of MongoDB, describing it as a scalable, high-performance, open source, schema-free, document-oriented database. Key features of MongoDB like indexing, master-slave replication, and horizontal scaling with replica sets and sharding are summarized.
This tutorial will introduce the features of MongoDB by building a simple location-based application using MongoDB. The tutorial will cover the basics of MongoDB’s document model, query language, map-reduce framework and deployment architecture.
The tutorial will be divided into 5 sections:
Data modeling with MongoDB: documents, collections and databases
Querying your data: simple queries, geospatial queries, and text-searching
Writes and updates: using MongoDB’s atomic update modifiers
Trending and analytics: Using mapreduce and MongoDB’s aggregation framework
Deploying the sample application
Besides the knowledge to start building their own applications with MongoDB, attendees will finish the session with a working application they use to check into locations around Portland from any HTML5 enabled phone!
TUTORIAL PREREQUISITES
Each attendee should have a running version of MongoDB. Preferably the latest unstable release 2.1.x, but any install after 2.0 should be fine. You can dowload MongoDB at http://www.mongodb.org/downloads.
Instructions for installing MongoDB are at http://docs.mongodb.org/manual/installation/.
Additionally we will be building an app in Ruby. Ruby 1.9.3+ is required for this. The current latest version of ruby is 1.9.3-p194.
For windows download the http://rubyinstaller.org/
For OSX download http://unfiniti.com/software/mac/jewelrybox/
For linux most users should know how to for their own distributions.
We will be using the following GEMs and they MUST BE installed ahead of time so you can be ahead of the game and safe in the event that the Internet isn’t accommodating.
bson (1.6.4)
bson_ext (1.6.4)
haml (3.1.4)
mongo (1.6.4)
rack (1.4.1)
rack-protection (1.2.0)
rack shotgun (0.9)
sinatra (1.3.2)
tilt (1.3.3)
Prior ruby experience isn’t required for this. We will NOT be using rails for this app.
The document discusses query mechanisms for NoSQL databases. It begins by describing how relational databases require normalization of data into tables and use SQL for queries. NoSQL databases are introduced as being non-relational, schema-free, and having simple APIs. Document stores are highlighted as a type of NoSQL database that can natively store hierarchical data without normalization. Specific document stores like CouchDB and MongoDB are described, showing how data can be stored and queried in documents through HTTP requests or a mongo client. Map-reduce functions are also discussed as a way to perform complex queries across collections of documents.
This document outlines the topics covered in an Edureka course on MongoDB. The course contains 8 modules that cover MongoDB fundamentals, CRUD operations, schema design, administration, scaling, indexing and aggregation, application integration, and additional concepts and case studies. Each module contains multiple topics that will be taught through online instructor-led classes, recordings, quizzes, assignments, and support.
The document introduces MongoDB as a scalable, high-performance, open source, schema-free, document-oriented database. It discusses MongoDB's philosophy of flexibility and scalability over relational semantics. The main features covered are document storage, querying, indexing, replication, MapReduce and auto-sharding. Concepts like collections, documents and cursors are mapped to relational database terms. Examples uses include data warehousing and debugging.
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
This document provides an introduction to NoSQL and MongoDB. It discusses that NoSQL is a non-relational database management system that avoids joins and is easy to scale. It then summarizes the different flavors of NoSQL including key-value stores, graphs, BigTable, and document stores. The remainder of the document focuses on MongoDB, describing its structure, how to perform inserts and searches, features like map-reduce and replication. It concludes by encouraging the reader to try MongoDB themselves.
가장 현대적 이며, 완벽하게 관리되는 데이터베이스 서비스 - MongoDB Atlas - June Kim, 시니어 솔루션즈 아키텍트, Mo...Amazon Web Services Korea
스폰서 발표 세션 | 가장 현대적 이며, 완벽하게 관리되는 데이터베이스 서비스 - MongoDB Atlas
June Kim, 시니어 솔루션즈 아키텍트, MongoDB
프라이빗, 하이브리드 또는 퍼블릭 클라우드에서 여러 가지 종류의 관리 데이터베이스 서비스가 사용 되어 지고 있습니다. 오늘은 몇 가지 사용 케이스와 함께 가장 혁신적이고 최첨단 관리 데이터베이스 서비스인 MongoDB Atlas 소개하겠습니다.
9. MongoDB 주요 구성요소 (2)
1. MongoDB Intro
mongod
- 데이터를 저장, 관리 (복제 정책 적용 가능)
mongos
- client의 요청 받아 환경 설정 서버의 partitioning
정보를 참고해 적절한 데이터 서버로 요청을 포워딩
Config Server
- sharding에 대한 환경 설정 서버
- partitioning에 대한 정보를 관리
10. 기억할 것!
1. MongoDB Intro
mongod
- 데이터를 저장
mongos
- client와 mongod 서버 간 라우터 역할
Config Server
- 메타 정보 관리
17. a.k.a?(5)
MongoDB가 Oracle, MySQL을 대체...?
- 물론 미국에서는 Main Stream으로 진입중
- 하지만 국내에서는.... 아직 오랑캐 DB
- 서로닮아가는 모습이 특징(Oracle ↔ MongoDB)
1I. MongoDB에 대해 알려진 사실들(?)
19. 피할 수 없는 RDBMS와의 비교 – Q&A(1)
대용량 시스템 운영시 RDBMS 대비 주의할 점
- 제일 중요한 건 모니터링! (변수가 더 많음)
- 그 다음 중요한 건 shard key 설정
(효과적인 shard key 설정은 서비스 데이터에
대한 이해가 충분히 있어야 함)
11I. MongoDB를 이용하며 느낀 점
20. 피할 수 없는 RDBMS와의 비교 – Q&A(2)
대용량 시스템 운영시 RDBMS 대비 주의할 점
- 장애시 Contingency Plan이 명확해야 함
- 용량별, 시기별 확장 계획이 있다면 좋음
- collection 별로 데이터를 구분하는 습관필요
11I. MongoDB를 이용하며 느낀 점
21. Script 언어를 알면 유리한 MongoDB
script언어를 알면 MongoDB 활용성 ↑
- 모니터링 shell
- 개인에게 특화된 function 사용
- 다양한 driver 연동
11I. MongoDB를 이용하며 느낀 점
22. MongoDB 를 관리하는 주체는...? (1)
MongoDB를 누가 관리할 것인가?
- 개발자가 이해하기 쉬운 구조
- 하지만 ~DB가 붙고 data가 들어와서 DBA느낌
- 왠지 모니터링도 잘해야 할 것 같으니 서버가이
11I. MongoDB를 이용하며 느낀 점
23. MongoDB 를 관리하는 주체는...? (2)
MongoDB를 누가 관리할 것인가?
- 앞서 열거한 역량을 고루 가진 운영자
- devops 성격을 가진 조직
(서비스 개발자들이 직접 운영도 수행)
→ flow 이해 빠르고, bug fix 더 빠름
11I. MongoDB를 이용하며 느낀 점
30. MongoDB Monitoring(6)
제가 시도해 보고 있는 방법은...
- 브라우저 / 서버 / 데이터베이스에 이르기까지
자바스크립트로 구성된 풀스택 플랫폼
- 실시간 업데이트 가능 (매번 빌드 하거나, 서버를
내렸다 올리지 않아도 자동 갱신)
1V. MongoDB 모니터링
31. MongoDB Monitoring(7)
제가 시도해 보고 있는 방법은...
- MongoDB의 Oplog를 이용한 Monitoring 수행
* oplog : 복제셋 형태로 운영되는 MongoDB
서버간의 동기화를 위해 DB의 변경사항을
저장하는 로그
- app 구성하기에 따라서 visualization이 가능
1V. MongoDB 모니터링
32. MongoDB Monitoring(8)
제가 시도해 보고 있는 방법은...
- 해결책으로서, Meteor는 data변화를 탐지하고
observer를 작동시키기 위해 oplog를 사용한다.
- Meteor는 Primary를 tailing하는 Secondary
처럼 행동함
1V. MongoDB 모니터링
45. WiredTiger
3.0 release 부터 도입된 WiredTiger
mongodb 사용시 엔진 선택 가능
(--storageEngine=“wiredTiger”)
디폴트 설정시에는 MMAPv1 엔진 사용
3.2 release부터는 WiredTiger가 디폴트!
별첨. MongoDB + WiredTiger
49. WiredTiger vs TokuMX – Q&A
쿼리 성능 측면에서 TokuMX가 유리함
(특히 insert, update)
WiredTiger : B-Tree 데이터 구조
TokuMX : Fractal tree Indexing
TokuMX는 도입시에 다양한 측면에서
테스트가 필요함(few reference)
별첨. MongoDB + WiredTiger
50. WiredTiger vs TokuMX – Q&A
쿼리 성능 측면에서 TokuMX가 유리함
(특히 insert, update)
WiredTiger : B-Tree 데이터 구조
TokuMX : Fractal tree Indexing
별첨. MongoDB + WiredTiger
51. WiredTiger vs TokuMX – Q&A
B-tree vs Fractal Tree
별첨. MongoDB + WiredTiger
https://www.bnl.gov/csc/seminars/abstracts/Bender_Presentation.pdf
52. WiredTiger vs TokuMX – Q&A
다만 TokuMX를 써보니...
CPU 과부하 문제가 발생할 수 있으며,
모니터링 & 조절 가능하다면 TokuMX 추천
TokuMX는 도입시에 다양한 측면에서
테스트가 필요함(few reference)
별첨. MongoDB + WiredTiger