Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)

541 views

Published on

It's the material announced at the "11th Korea Data Tech Seminar".
제11회 코리아 Data 테크 세미나에서 발표했던
"NoSQL시대의 MongoDB 4.0 활용" 발표 자료입니다.

Published in: Data & Analytics
  • Be the first to comment

(11th korea data_tech_seminar)using_mongo_db_4.0_and_nosql_inbum_kim(skc&c)

  1. 1. NoSQL 시대의 MongoDB 4.0 활용 InBum Kim 제 11회 코리아 DATA 테크 세미나
  2. 2. Part 1. NoSQL
  3. 3. NoSQL의 개념 3 • No SQL…? • Not Only SQL …!? (가장 많이 통용되는 단어) • Non-relational database SQL ……?!! • Not Yet SQL?????
  4. 4. NoSQL의 개념 4 • Not Only SQL = SQL만을 사용하지 않는 DBMS를 지칭 = “관계형 DBMS를 사용안한다”의 의미보다는 그저 “다른 종류의 데이터베이스를 사용한다”는 의미 = 데이터를 저장하는 방법은 표준 SQL외에 다른 방법이 있다
  5. 5. NoSQL의 개념 • NoSQL은 Carlo Strozzi가 1998년에 발표한 논문에서 처음으로 언급됨 • 해당 논문에서 표준 SQL 인터페이스를 채용하지 않은 자신의 경량 오픈 소스 관계형 데이터베이스를 NoSQL 이라고 명명함 • 이후로 기존 관계형 Database와는 다른 것들을 모두 NoSQL로 간주하여 부르기 시작함 • NoSQL에 대한 약어의 뜻이 명확하지 않은 것은 이러한 트렌드적인 움직임에 의해 NoSQL이란 용어를 사용해왔기 때문 5
  6. 6. BigData 시대의 NoSQL 6 NoSQL은 2020년까지 연평균 35.1% 성장, 42억$ 매출이 예상됨 (출처 : Allied Market Research)
  7. 7. BigData 시대의 NoSQL 7 • BigData 시대의 도래와 더불어 이를 저장하는 기술에 대한 수요 증가 • 대용량의 data 저장은 기존의 DBMS 기준과는 다른 조건을 필요로 함 Hadoop의 등장 Hadoop Eco System의 발전 NoSQL 수요 증가 NoSQL 적용 사례 급증 확장성 분산처리 성능 라이선스 문제 데이터모델
  8. 8. BigData 시대의 NoSQL 8 • 데이터 발생량이 기하급수적으로 늘어나는 시대 • 너무나 많은, 그리고 너무나 다양한 종류의 데이터가 발생 • 예산은 한정되어 있고, 성능에 대한 요구 기준은 갈수록 높아짐 • 데이터를 빠르게 처리하고 가급적 방대한 데이터를 저장 및 처리할 수 있어야 함 • 위와 같은 요구조건을 만족하기 위해 기존의 RDBMS를 대신할 대안 기술이 필요해짐
  9. 9. NoSQL 종류 • NoSQL Lineup - 1 9(출처 : https://db-engines.com/en/ranking )
  10. 10. NoSQL 종류 • NoSQL Lineup - 2(How many…?) 10(출처 : http://nosql-database.org/ )
  11. 11. NoSQL 종류 • NoSQL Lineup - 3 11
  12. 12. NoSQL 종류 • NoSQL Type - 1 12
  13. 13. NoSQL의 개념 • NoSQL Type - 2 13 KeyValue ⚫ 특정 값을 조회용 고유 키와 매핑해 정해진 스키마 없이 저장되는 방식 ⚫ 특정 키를 대상으로 random access 할 때 유용함 Dynamo, Memcached, Riak, Redis Column (BigTable) ⚫ 순차적 KeyValue 모델에 데이터 모델링이 가능하도록 변경된 모델 Hbase, Cassandra, Hypertable Document ⚫ 오브젝트형 데이터베이스가 NoSQL형태로 파생된 모델 MongoDB, CouchDB, ElasticSearch Graph ⚫ 데이터를 그래프에 저장하고 데이터의 구조가 가장 일반적이고, 높은 접근 방식으로 모든 데이터를 표현가능 Neo4j, HyperGraphDB
  14. 14. NoSQL의 개념 • NoSQL의 장점 – NoSQL은 Scale-out이 가능하며, 이는 Cloud 환경에 매우 적합함 • NoSQL은 Scale-out이 유리하도록 설계되었으며, 이는 빠르고 유연한 확장이 필요한 Cloud 환경에서 유리한 요소 – 비용의 감소(비용이 없는 것은 아님) • NoSQL은 대부분 open source이며, 수많은 license 비용을 지불해야 하는 기존 제품과 큰 차별화를 가질 수 있는 부분 – Big data 처리에 효과적 • 기존 RDBMS보다 read/write 성능이 좋은 편이며, 이는 단순한 데이터 모델에 근거함 • 유연한 확장성과 데이터모델로 인해 대용량의 데이터를 빠르게 분산 처리 하기에 매우 적합 14
  15. 15. NoSQL의 개념 • NoSQL의 단점 – NoSQL에서는 다양하고 복잡한 쿼리는 불가능 • 유연한 데이터 모델의 장점을 취하는 대신, 정교한 쿼리는 상대적으로 어려움 – 데이터 무결성과 정합성이 항상 보장되지는 않음 • NoSQL은 단순한 데이터 모델과 서버 확장성을 위해서 데이터의 중복을 감수하지만, 이는 “모든 순간”의 데이터 정합성을 보장하지는 못한다. – 데이터의 속성을 모르는 상태에서 사용한다면 훨씬 낮은 성능과 안정성을 보임 • RDBMS 수준의 범용성을 기대하지 말 것 15
  16. 16. Part 2. MongoDB
  17. 17. MongoDB review • MongoDB Intro. - 1 – PaaS 제품 구성요소 중 하나로 처음 개발됨 (2007년 10월, 당시 회사명 10gen) – 2009년 오픈소스 개발 모델로 전향 (상용 지원 및 기타 서비스는 10gen이 수행) – MongoDB의 발전에 힘입어 사명을 제품명과 같은 MongoDB Inc. 로 변경(2013년) – 국내외 수 많은 서비스에서 백엔드 소프트웨어로 채택하고 있음 17
  18. 18. MongoDB review • MongoDB Intro. - 2 – Document oriented Database – Replication ( availability ↑ ) – Sharding ( Scalability ↑ ) – Latest Stable Release. is 4.0.4 (2018. 10. 31 updated) 18
  19. 19. MongoDB review • Document? 19 • 스키마가 정적이지 않고 유동적(schema-less). • 도큐먼트(레코드)마다 다른 스키마를 가질 수 있음 • JSON 형태로 데이터를 집어 넣으므로, 트리형 구조를 저장하거나 검색시에 유리
  20. 20. MongoDB review • MongoDB feature summary - 1 – 행(row) 대신 문서(document) 개념을 사용 – 고정된 형태의 스키마가 없다 (미리 테이블을 만들거나, 필드 정의 등의 행위 필요 없음) – JSON type의 데이터 저장 구조를 제공한다. – MongoDB는 C++로 작성되었고, 다양한 언어의 API 제공 (C, C#, C++, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, Scala) – AWS, Azure 등 Cloud Top Tier의 제품에서 기본/선택 사양으로 서비스 됨 (MongoDB on AWS, MongoDB on Azure) 20
  21. 21. MongoDB review • MongoDB feature summary - 2 21 SQL MongoDB Database Database Table Collection Row Document Column Field Join Embedded Document & Linking, $lookup Index Index view view
  22. 22. MongoDB review • MongoDB Architecture - 1 22
  23. 23. MongoDB review • MongoDB Architecture - 2 – mongod • 데이터를 저장, 관리하는 서버(복제 정책 적용 가능) – mongos • Client의 요청을 받아 환경 설정 서버의 partitioning 정보를 참고해 적절한 데이터 서버로 요청을 포워딩 함 – config server • Sharding에 대한 환경 설정 서버 • Partitioning에 대한 정보를 관리 23
  24. 24. 실제 활용 사례 • MongoDB Customer 24
  25. 25. 실제 활용 사례 • MongoDB Use Case 25 Big Data Product & Asset Catalogs Security & Fraud Internet of Things Database-as-a- Service Mobile Apps Customer Data Management Single View Social & Collaboration Content Management Intelligence Agencies Top Investment and R etail Banks Top Global Shipping Company Top Industrial Equipment M anufacturer Top Media Company Top Investment and R etail Banks
  26. 26. Part 3. MongoDB 4.0
  27. 27. MongoDB history • MongoDB history - 1 27 – 2.2.x • aggregation framework 등장, TTL Collection 등장, Global Locking이 DB Level Locking으로 대체됨 – 2.4.x • MongoDB 엔터프라이즈 버전이 처음 선보임 Text Search 기능 추가됨 – 2.6.x • $text 쿼리 연산자 지원, aggregation, sharding 성능 향상 • Partitioning에 대한 정보를 관리
  28. 28. MongoDB history • MongoDB history - 2 28
  29. 29. MongoDB 4.0 inside • Multi-Document ACID Transaction – ACID Transaction 지원은 기존 RDBMS에 비해 항상 약점으로 지적 받은 부분 – ACID Transaction • Snapshot isolation, all or nothing execution – 적용 예정 범위 • 4.0 : replica set • 4.2 : extended to sharded cluster 29
  30. 30. MongoDB 4.0 inside • MongoDB Monitoring Cloud - 1 – 무료로 제공되는 모니터링 서비스 – 이전 버전에서 모니터링은 내장함수처럼 제공되는 명령어들을 활용해서 최소한의 수치 확인만 가능한 수준(ex. serverStatus) – 기존 엔터프라이즈 버전에서는 다양한 형태의 모니터링이 제공되 었으며, 4.0에서는 public 버전도 graphical한 모니터링 툴을 활용 할 수 있게 됨 30
  31. 31. MongoDB 4.0 inside • MongoDB Monitoring Cloud - 2 – db.enableFreeMonitoring() 31 MongoDB shell version v4.0.0 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.0 --- Enable MongoDB's free cloud-based monitoring service to collect and display metrics about your deployment (disk utilization, CPU, operation statistics, etc). The monitoring data will be available on a MongoDB website with a unique URL created for you. Anyone you share the URL with will also be able to view this page. MongoDB may use this information to make product improvements and to suggest MongoDB products and deployment options to you. To enable free monitoring, run the following command: db.enableFreeMonitoring() { "state" : "enabled", "message" : "To see your monitoring data, navigate to the unique URL below.….… running db.disableFreeMonitoring().", "url" : "https://cloud.mongodb.com/freemonitoring/cluster/22E5ZH35UZ77JY3UHS3VYYTI7BKBIHWF", "userReminder" : "", "ok" : 1 }
  32. 32. MongoDB 4.0 inside • MongoDB Monitoring Cloud - 3 32
  33. 33. MongoDB 4.0 inside • MongoDB Chart(beta) – 데이터의 시각화를 통해 운영중인 데이터의 전반적인 상태 확인 33
  34. 34. MongoDB 4.0 inside • MongoDB Ent. – MongoDB Atlas 서비스 34 Atlas unlocks agility and reduces cost Self-service and elas tic Global and highly av ailable Secure by default Comprehensive mon itoring Managed backup Cloud agnostic
  35. 35. MongoDB의 진화 • 진화하는 MongoDB – 안정성이 걱정되던 초기 시절(1.x) – 기본적인 안정성과 최소한의 기능이 제공되던 시절(2.x) – 비로소 NoSQL 분야에서 두각을 나타내기 시작함(3.x) – Beyond NoSQL, become data platform(4.x) – Release update가 진행될수록 성능과 안정성이 확보되고 있으며, 운영 편의성을 위한 다양한 tool이 추가되고 있음 35
  36. 36. MongoDB 4.0 how to • 진화하는 MongoDB 활용법은? - 1 – RDBMS에 근접한 기능과 안정성을 보여줌 (기존의 약점을 상쇄함) – 다양한 분야에서 활용이 가능해짐 • 이미 해외에서는 multi domain 활용이 가속화 됨 – 기존의 사용이 social, gaming, logging 등이었다면 이제는 main stream으로 진입하는 시기가 다가옴 36
  37. 37. MongoDB 4.0 how to • 진화하는 MongoDB 활용법은? - 2 – 비효율적인 비용 구조를 가진 서비스라면 MongoDB로의 전환을 노려보자 – 데이터 분석을 위한 대규모의 데이터 적재, 처리, 유연한 확장이 필요하다면 MongoDB를 활용해보자 – 신규 시스템 위주로 도입하여 know-how와 경험을 쌓고 어느 정도의 학습 기간이 지난 후에 중요도가 더 높은 서비스도 도입을 시도해보자 37
  38. 38. MongoDB 4.0 how to • 진화하는 MongoDB 활용법은? - 3 – 데이터가 넘쳐 흐르는 곳일수록 MongoDB는 유용함 – Log data, social data, IoT data, 공정에서 발생하는 data … – 기본적인 사용, 검증, 운영은 public 버전으로 충분함 – 하지만 대고객 서비스를 위해 보안, 모니터링, 기술 지원, visualization을 고려한다면 Enterprise 버전을 추천 (물론 자체적으로 해결할 수 있다면 public 사용) 38
  39. 39. MongoDB 4.0 how to • Soft Landing을 위한 제언 – 1단계 : prototyping을 위한 용도로 첫 사용을 해보자 39
  40. 40. MongoDB 4.0 how to • Soft Landing을 위한 제언 – 2단계 : 개인 프로젝트로 경험치를 획득해보자 40
  41. 41. MongoDB 4.0 how to • Soft Landing을 위한 제언 – 3단계 : pilot project에 활용하여 내부적인 선입견을 제거하자 41
  42. 42. MongoDB 4.0 how to • Soft Landing을 위한 제언 – 4단계 : 내부 시스템(인사관리, 인트라넷 서비스 등)에 적용하여, 신뢰할만한 레퍼런스를 확보하자 42
  43. 43. MongoDB 4.0 how to • Soft Landing을 위한 제언 – 5단계 : 대고객 서비스에 도입하여 운영 know-how를 확보하자 43
  44. 44. Q & A
  45. 45. MongoDB Community • MongoDB Korea(facebook group) (https://web.facebook.com/groups/krmug/) 45
  46. 46. Thank you! (inbum85@gmail.com)

×