Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) | PDF
Recommended
PPTX
PDF
MongoDB in use(김인범, mongodb korea)
PDF
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
PPTX
PDF
PDF
PPTX
PDF
KEY
PPTX
PPTX
PDF
PDF
Mongo db intro & tips
PPTX
mongodb와 mysql의 CRUD 연산의 성능 비교
PDF
PPTX
7부. 애플리케이션 입장에서의 성능 튜닝 (1~8장)
PPTX
Ch9 프로세스의 메모리 구조
PPTX
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
PPTX
PPTX
PDF
PPTX
Java와 go 간의 병렬 프로그램 성능 비교
PDF
PDF
Twitter의 snowflake 소개 및 활용
PPTX
실무로 배우는 시스템 성능 최적화 Ch8
PDF
Node.js 자바스크립트로 서버사이드 개발하기
PPT
PDF
PDF
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
PDF
The MongoDB Strikes Back / MongoDB 의 역습
More Related Content
PPTX
PDF
MongoDB in use(김인범, mongodb korea)
PDF
Mongo db monitoring 어떤 것이 좋을까(mongodb korea, 김인범)
PPTX
PDF
PDF
PPTX
PDF
What's hot
KEY
PPTX
PPTX
PDF
PDF
Mongo db intro & tips
PPTX
mongodb와 mysql의 CRUD 연산의 성능 비교
PDF
PPTX
7부. 애플리케이션 입장에서의 성능 튜닝 (1~8장)
PPTX
Ch9 프로세스의 메모리 구조
PPTX
실무로 배우는 시스템 성능 최적화 - 4부. 프로세스 이해하기
PPTX
PPTX
PDF
PPTX
Java와 go 간의 병렬 프로그램 성능 비교
PDF
PDF
Twitter의 snowflake 소개 및 활용
PPTX
실무로 배우는 시스템 성능 최적화 Ch8
PDF
Node.js 자바스크립트로 서버사이드 개발하기
PPT
PDF
Similar to Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범)
PDF
(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)
PDF
The MongoDB Strikes Back / MongoDB 의 역습
PDF
[스마트스터디]모바일 애플리케이션 서비스에서의 로그 수집과 분석
PDF
(Public)mongo db cncity_energy_inbumkim
PDF
PDF
PDF
PPTX
Node.js DBMS short summary
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
PPTX
mongoDB 3 type modeling in production
PPTX
CouchDB - Introduction - Korean
PPTX
PPTX
PPT
Using R with MongoDB(R User Conference Korea 2015, SK C&C 김인범) 1. Using R with MongoDB
R User Conference Korea 2015
김 인 범
SK C&C
2. 3. 4. 5. MongoDB 첫 질문?
• Mongol 사람들이 만들었나요?
• MongoDB 만든 곳의 대주주가 Mongol 사람...?
• 알고보니 MongoDB 만든 사람이 Mongol 후손...?
6. 7. What is MongoDB?
• Document Oriented Database
• Replication / Sharding
• Multiple Transaction(CRUD)
• Map-Reduce also possible
• Latest Stable Version is 3.0.3(May 2015, bug hunting)
8. 9. 10. 11. MongoDB 구조 간단 review -1
Mongo 샤딩은 Data collection에 대해
unlimited size를 제공
(big data를 다루는데 있어 매우 중요)
12. MongoDB 구조 간단 review - 2
mongod
- 데이터를 저장, 관리하는 서버(복제 정책 적용 가능)
mongos
- client의 요청 받아 환경 설정 서버의 partitioning
정보를 참고해 적절한 데이터 서버로 요청을 포워딩
Config Server
- sharding에 대한 환경 설정 서버
- partitioning에 대한 정보를 관리
13. MongoDB Benefit
Elements of MongoDB fit for Cloud Environment
• Open Source
• Easy Scalability(Scale out), Easy Install, Easy Use
• Scheme-less
• High Availability
14. MongoDB use (해외)
• facebook, google, twitter
• MetLife, foursquare, NewYork Times, Forbes
• 이외에도…
http://www.mongodb.com/who-uses-mongodb
15. 16. MongoDB use (국내)
• FIFA Online 2
• DaumKakao ‘My Agora’
• LG U+ 그룹웨어, 패턴 분석 처리 시스템
• 인터파크, 상품 검색 및 채팅 서비스 시스템
17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 공부할 수 있는 것들...
MongoDB education link
https://university.mongodb.com/
29. 30. MongoDB 이럴 때 쓰지 마세요!
• 고객이 Oracle이랑 비교할 때(RDBMS와는 태생이 다름)
• 무료라는 이야기 듣고 고객이 들이댈 때
• 재정적으로 여유가 있을 때
• License에 대한 이해가 불충분한 경우
31. 고객이 말합니다(feat. 불특정 다수의 갑님)
• 오픈 소스인데 추가 비용이 왜 필요하죠? 라이선스....? 뭐래..
• 아니 왜 오라클 보다 성능이 안 나오는것 같죠?
• 오라클은 어쩌구, MySQL은 저쩌구, 나는 왕년에 #$1!@$#$..
33. MongoDB 이럴 때 쓰세요!
• 유연함과 확장이 필요할 때
• log data, SNS data 등을 적재할 때
• 다양한 open source와 연계할 때 (ex. Hadoop)
• 서비스 구성 시 다양한 시도가 필요할 때
• 고객이 open source에 대한 이해가 충분할 때
34. 35. “Rmongo” Package
• MongoDB interface for R
• 인터페이스는 mongo-java-driver로의 java call을 통해 제공됨.
• 0.0.25, GPL-3
• R( >= 2.14.1), Java( >= 1.6), MongoDB( >= 1.6)
36. 37. “Rmongo” : Dis-advantage
• 성능 상의 아쉬움
• 인터페이스가 mongo-java-driver이기 때문에 java에 대한
두려움이 있는 이들에게는 장벽으로 다가올 수 있음
(단순 사용이 아닌 패키지 구조 확인 및 customizing에 있어서..)
38. “rmongodb” Package
• MongoDB interface for R
• 인터페이스는 mongo-C-driver(ver 0.8) 를 이용하여 제공됨
• 1.8.0, Apache License
• R( >= 2.10), MongoDB, GNU Make
39. 40. “rmongodb” Dis-Advantage
• MongoDB 3.0 이상에서부터는 인증 이슈 존재
• 패키지 유지 문제와 신규 기능에 대한 릴리즈의 어려움
→ Mongo-C-Driver 1.0+ 은 완전히 다른 API 가짐
→ 즉 0.8에서 1.0으로 업그레이드 하려면 거의 처음부터
모든 패키지를 다시 써야 함
41. RMongo workflow
mongo <- mongoDbConnect("test", "localhost", 27017)
output <- dbInsertDocument(mongo, "test_data", '{"foo": "bar"}')
output <- dbGetQuery(mongo, "test_data", '{"foo": "bar"}')
dbDisconnect(mongo)
42. rmongodb workflow
mongo <- mongo.create(host="localhost“,db=“test”)
mongo.get.databases(mongo)
ns=“test.test_data”
buf=mongo.bson.buffer.create()
Mongo.bson.buffer.append(buf,”foo”,”bar”)
a=mongo.bson.from.buffer(buf)
Mongo.insert(mongo,ns,a)
mongo.find.all(mongo,ns)
(or mongo.find.one(mongo,”test.test_data”, a) )
mongo.disconnect (mongo)
43. 44. R + MongoDB의 매력(1)
• 꾸준히 발전하는 OpenSource
(release 주기가 안정적)
• 명확한 역할 구분
(r – visualization, mongodb – backend 저장소)
45. R + MongoDB의 매력(2)
• 대규모의 데이터를 다루는 R에게 NoSQL은
매력적인 선택
• 명확한 역할 구분
(r – visualization, mongodb – backend 저장소)
46. R + MongoDB의 매력(3)
• 이미 많은 Relational SQL 패키지가 존재.
(RMySQL, RPostgreSQL, Roracle, RJDBC 등)
• 하지만 이들의 문제는 모든 결과를 R 메모리상에서
read 한다는 것!
47. R + MongoDB의 매력(4)
• Rmongo 역시 같은 문제,
하지만 rmongodb는 그러한 문제에서 자유로움
• 위와 더불어 MongoDB가 bulk insert에서
탁월한 성능을 보임.
48. 49. 50. 51. 52. 53. 54. Tips 6. MongoDB의 release에 따른
R의 version 관리가 필요함.
deprecated 된 함수들이 종종
발생할 수 있으며,
호환성 문제도 발생 가능
55. Tips 7. MongoDB상에 concurrent하게
데이터를 read/write 하고 싶다면...
mongodb.splitVector()를 써서
chunk 단위로 collection을 분리하고
각 chunk 상에 mclapply() 적용
56. 57. 58. 59. 60. 61.