이혁재 /KASA 2010.08.14 NoSQL. 요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

전공 : 컴퓨터 공학 전공 과목 : 인터넷 정보 검색 학번 : , 이름 : 조 항 두, 오 철 원.
데이터 베이스 (MYSQL) 장수용. MYSQL 이란 ? -MySQL 은 DBMS( 데이터베이스 관리 시스템 ) 이다. - MySQL 은 RDBMS( 관계형 데이터베이스 ) 이다. - MySQL 은 오픈소스이다. - MySQL 은 빠르고, 안정적이고.
© 2014 CUBRID Co., Ltd. All rights reserved. 0 / 20 Date: 공공/국방부문 클라우드 추진현황 및 오픈소스 DBMS 적용사례.
1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
GIS Data Storage Trends ESRI White Paper (1997) 한국에스리 고객지원센터.
WCL 이민학 Big Data & Hadoop.
Big Data Chap 3. I. VBRE(Value-Based RE) II. Requirement Prioritization III. AHP(Analytical Hierarchy Process) IV. Requirement Negotiation Q & A.
시스템 프로그래밍 박진희 컴퓨터 시스템 연구실. 2 Project 3 Key-value store 유일한 Key 에 하나의 Value 를 가지고 있는 방식 - Key 와 Value 를 쌍으로 관리 - Hash table, B-Tree, B+ Tree 등 분산형 데이터베이스에서.
ChartSNS Final BlackHole 한규학 이경찬 최규연 김보경 전승현. 왜이런 거죠 ? 리비아 사 태로 차질 이 생겼어 요. 그러므로 이러한 압축 된 차트를 가지고 토론 을 하기 위 해선 / 명확한 의견 을 표현하는 것이 필요합 니다. 그러므로 이러한 압축.
프로젝트 제안서 날씨대로 기분대로 팀원 박효민 신준범 정민섭 안성원
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
D-Guard Security Suites 제품 소개서
Hive. Part of Hadoop Ecosystems MapReduce Runtime (Dist. Programming Framework) Hadoop Distributed File System (HDFS) Zookeeper (Coordination) Hbase (Column.
프랜차이즈 본사 인트라넷 구축 제안서 제출처 : ㈜마세다린 제출사 : ㈜데이타캠프 제출일 :
연구실 인턴쉽 안내자료 컴퓨터공학과 2017학년도 1학기.
소리가 작으면 이어폰 사용 권장!.
Chapter 7 데이터웨어하우징 의사결정지원시스템.
빅데이터 분산 처리 시스템 충북대학교 정보통신공학부 복경수
의사결정 향상을 위한 빅데이터 활용 강윤선 김민성.
빅데이터 분석 과정.
빅데이터 순환 과정과 플랫폼.
BIG Data 컴퓨터응용과학부 박진완.
효과적인 DB암호화 구축을 위한 애슬론 v1.5 제안
Distributed Computing (Apache Hadoop & Hive Review)
NoSQL 개요 콘텐츠서비스연구팀 최완.
Apache Hive 빅데이터 분산 컴퓨팅 박영택.
MySQL performance Xhark 김재홍.
Information Technology
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
안드로이드 기반에서 MapServer를 이용한 지도 서비스
빅데이터 분석을 위한 통계 프로그래밍 R 오 승 근
12. 데이터베이스 설계.
DBMS의 종류와 DBMS 장승빈 박상민 김혁.
Advanced Data Analytics 데이터분석 전문가
Chapter 01 데이터베이스 시스템.
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
11장. 데이터베이스 서버 구축과 운영.
Korea University of Technology and Education Hongyeon Kim
제 8장. 멀티미디어 데이터베이스 및 정보검색 시스템
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
데이터 웨어 하우스 이병규 김기훈.
교육팀 도경모 Big.
제3장 이클립스 사용하기.
What is‘Big Data’? - 빅 데이터에 대한 전반적인 이해 네트워크 컴퓨팅 프로젝트 김충현
6장. 물리적 데이터베이스 설계 물리적 데이터베이스 설계
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
게임에서 공공까지, 국내 실 사례들로 본 빅데이터 융합 분석
LSM-trie: An LSM-tree-based Ultra-Large Key-Value Store for Small Data
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
JSP 게시판 구현.
II. XML과 Database 연동 [Beginning XML, 제13장]
Part 5. MS-SQL Server Basic
Database 중고차 매매 DB 비즈니스IT 윤동섭.
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
시스템 분석 및 설계 글로컬 IT 학과 김정기.
NoSQL 박훈
SQL INJECTION MADE BY 김 현중.
제 8장 데이터베이스.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1장. 서 론 데이터베이스의 개요 모델의 종류 관계형 모델과 객체 지향형 데이터베이스 SQL이란 무엇인가?
홈페이지 제안서
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Presentation transcript:

이혁재 /KASA NoSQL

요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머

Online game 에서의 데이터저장소 File ( ISAM ) DBMS – mysql – mssql – oracle – memory DB File ( ISAM ) DBMS – mysql – mssql – oracle – memory DB

NoSQL NO SQL ? Not Only SQL ! 클래식한 rdb 와 다른 database( or datastore ) 학계에서는 structured storage 라는 용어를 사용 NO SQL ? Not Only SQL ! 클래식한 rdb 와 다른 database( or datastore ) 학계에서는 structured storage 라는 용어를 사용

NoSQL

why NoSQL? 기존 RDB 에서의 해결할 수 없는 문제가 생김 Massive Data 에서 낮은 성능 – 대규모 문서를 indexing – 높은 트래픽의 웹사이트에서 데이타를 표시 – streaming 미디어를 전달 하드웨어 장애와 자동화된 복구 Data Model 이 문제 - Schema free RDBMS 를 사용하는 것보다 구현이 간단한 경우 기존 RDB 에서의 해결할 수 없는 문제가 생김 Massive Data 에서 낮은 성능 – 대규모 문서를 indexing – 높은 트래픽의 웹사이트에서 데이타를 표시 – streaming 미디어를 전달 하드웨어 장애와 자동화된 복구 Data Model 이 문제 - Schema free RDBMS 를 사용하는 것보다 구현이 간단한 경우

why NoSQL? ( twitter 의 문제 ) 7 TB/day ( 2+ PB/yr) 저장 = 10,000 CDs/day = 초당 80MB 7 TB/day ( 2+ PB/yr) 저장 = 10,000 CDs/day = 초당 80MB

why NoSQL? ( facebook 의 문제 ) 5700 억 view / month 다른 모든 사진 사이트 (flickr 포함 ) 를 합친 것보다 많은 사진을 서비스 30 억 photo upload / month 5700 억 view / month 다른 모든 사진 사이트 (flickr 포함 ) 를 합친 것보다 많은 사진을 서비스 30 억 photo upload / month

NoSQL 의 특징 테이블 스키마 없음 ( item 저장에 좋을 수도 ? ) join 오퍼레이션 없음 ( relation 이 없다. ) 컴퓨터를 늘려서 규모 가변적 내부구조 : 분산 hash table distributed key-value pair 나 assocative arrays 인터페이스 poor ACID( Atomic Consistency Isolation Durability ) 부수효과 : app 개발 생산성 open source 테이블 스키마 없음 ( item 저장에 좋을 수도 ? ) join 오퍼레이션 없음 ( relation 이 없다. ) 컴퓨터를 늘려서 규모 가변적 내부구조 : 분산 hash table distributed key-value pair 나 assocative arrays 인터페이스 poor ACID( Atomic Consistency Isolation Durability ) 부수효과 : app 개발 생산성 open source

분류 Key-value stores Document Database Wide column stores Graph databases Key-value stores Document Database Wide column stores Graph databases

분류

분류 ( Key-value stores ) 하나의 키, 하나의 값, 중복없음, 빠름 value 는 binary 하나의 키, 하나의 값, 중복없음, 빠름 value 는 binary

분류 ( Document Database ) key-value 이지만 structred value data 에 대해서 query 할 수 있음 key-value 이지만 structred value data 에 대해서 query 할 수 있음

분류 ( Wide column stores ) sparse, distributed multi-dimensional sorted map Google BigTable, Cassandra … sparse, distributed multi-dimensional sorted map Google BigTable, Cassandra …

분류 ( Graph databases ) 데이터의 관계 ( 그래프 ) 를 저장하는 용도

case study

SQL 같은 질의는 어떻게 하는가 ? DBMS( SQL ) – SELECT `column` FROM `table` WHERE `id` = key; API – BigTable  table.get(key, "column_family:column") – Cassandra  keyspace.get("column_family", key, "column") Query-language MapReduce DBMS( SQL ) – SELECT `column` FROM `table` WHERE `id` = key; API – BigTable  table.get(key, "column_family:column") – Cassandra  keyspace.get("column_family", key, "column") Query-language MapReduce

google 의 search 엔진에서 사용 – 논문 Simplified Data Processing On Large Cluster 데이터 처리 기술 – 프로그래밍 모델과 그 구현 함수형 프로그래밍에서 유래 google 의 search 엔진에서 사용 – 논문 Simplified Data Processing On Large Cluster 데이터 처리 기술 – 프로그래밍 모델과 그 구현 함수형 프로그래밍에서 유래

MapReduce

twitter 의 해결책 ( NoSQL 과 연관 없는 것도 포함 ) log 문제 – 처음엔 syslog 사용 – 크기가 커짐에 따라 scale 이 안됨 – 데이타를 잃어버림 log 문제 – 처음엔 syslog 사용 – 크기가 커짐에 따라 scale 이 안됨 – 데이타를 잃어버림

twitter 의 해결책 scribe – FB 도 같은 문제를 겪음, open-source – 로그를 분류를 갖추어 쓰면 나머지는 알아서 scribe 가 모아줌 – twitter 개발자도 개발에 기여 – scribe – FB 도 같은 문제를 겪음, open-source – 로그를 분류를 갖추어 쓰면 나머지는 알아서 scribe 가 모아줌 – twitter 개발자도 개발에 기여 –

twitter 의 해결책 Hadoop – 7TB/day 를 어떻게 쓸 것인가에서 시작 – 자동화된 복제와 오류복구 – MapReduce-based – 1TB 임의의 정수 데이타를 62 초에만에 정렬 – 평판, pagerank, 관계계산에 사용 – 5 분만에 120 억 tweet 을 count – 트위터 엔지니어들이 LZO 로 압축저장하게 기여함  Hadoop – 7TB/day 를 어떻게 쓸 것인가에서 시작 – 자동화된 복제와 오류복구 – MapReduce-based – 1TB 임의의 정수 데이타를 62 초에만에 정렬 – 평판, pagerank, 관계계산에 사용 – 5 분만에 120 억 tweet 을 count – 트위터 엔지니어들이 LZO 로 압축저장하게 기여함 

twitter 의 해결책 Pig – SQL 보다 쉬운 데이타 처리 언어 – 데이타 분석에 사용  어떤 기능이 유저를 낚이게 하는가 ?  확률적 봇 탐지 – Pig – SQL 보다 쉬운 데이타 처리 언어 – 데이타 분석에 사용  어떤 기능이 유저를 낚이게 하는가 ?  확률적 봇 탐지 –

twitter 의 해결책 Pig sample

twitter 의 해결책 HBase – BigTable 의 clone ( HDFS 위에서 동작 ) – Find People 기능에 사용 – 많은 기능이 HBase 사용하여 구축되어지고 있음 – cassandra 와 비교됨  cassandra - 낮은 지연시간에 강점  HBase - 배치작업에 강점 – HBase – BigTable 의 clone ( HDFS 위에서 동작 ) – Find People 기능에 사용 – 많은 기능이 HBase 사용하여 구축되어지고 있음 – cassandra 와 비교됨  cassandra - 낮은 지연시간에 강점  HBase - 배치작업에 강점 –

twitter 의 해결책 FlockDB – 유저 간의 follow 관계 그래프 디비 – 일반적 rdb 로는 어려움이 많아서 자체 제작  join 으로 해결안됨  join 하려해도 메모리도 문제 – FlockDB – 유저 간의 follow 관계 그래프 디비 – 일반적 rdb 로는 어려움이 많아서 자체 제작  join 으로 해결안됨  join 하려해도 메모리도 문제 –

twitter 의 해결책 Cassandra – tweet 저장에 사용 – facebook 에서 만듬 – 예전 시스템  MySQL 로 분할 저장  memcached( consistency 문제가 생김, 복제 문제도 생김 )  application 에서도 처리해야 함  테이블을 고칠 수 없음 땜방이 필요  MySQL 의 write 한계에 종종 도달 – cassandra 를 사용하니 모두 해결 !!! – Cassandra – tweet 저장에 사용 – facebook 에서 만듬 – 예전 시스템  MySQL 로 분할 저장  memcached( consistency 문제가 생김, 복제 문제도 생김 )  application 에서도 처리해야 함  테이블을 고칠 수 없음 땜방이 필요  MySQL 의 write 한계에 종종 도달 – cassandra 를 사용하니 모두 해결 !!! –

facebook 의 해결책 Cassandra, Scribe, HADOOP 은 twitter 와 동일 PHP, Linux, MySQL – 모두 facebook 에 맞추어 변경 또는 최적화 Cassandra, Scribe, HADOOP 은 twitter 와 동일 PHP, Linux, MySQL – 모두 facebook 에 맞추어 변경 또는 최적화

facebook 의 해결책 Memcached – 웹서버와 MySQL 서버 cache layer – distributed memory cache – Memcached – 웹서버와 MySQL 서버 cache layer – distributed memory cache –

facebook 의 해결책 HipHop – PHP 를 C++ 로 convert, g++ compile 해서 바이너리로 만들어줌 – 웹 서버의 평균 CPU 사용량을 50% 정도 다운 – HipHop – PHP 를 C++ 로 convert, g++ compile 해서 바이너리로 만들어줌 – 웹 서버의 평균 CPU 사용량을 50% 정도 다운 –

facebook 의 해결책 Haystack – 건초 더미 ? – Photo Infrastructure  HTTP server ( libevent 안의 프로그램 내장형 http 서버 )  Photo Store  Haystack Object Store  Filesystem  Storage Haystack – 건초 더미 ? – Photo Infrastructure  HTTP server ( libevent 안의 프로그램 내장형 http 서버 )  Photo Store  Haystack Object Store  Filesystem  Storage

facebook 의 해결책 BigPipe – 웹페이지를 pagelet 이라는 단위로 쪼개서 처리하는 server side system – 병렬적으로 pagelet 을 처리 BigPipe – 웹페이지를 pagelet 이라는 단위로 쪼개서 처리하는 server side system – 병렬적으로 pagelet 을 처리

facebook 의 해결책 Thrift – 서로 다른 언어를 사용한 개발을 가능하게 해줌 – software framework – RPC 서버와 클라이언트를 생성해줌 – – facebook 은 C++, Erlang, Java, Python, PHP 등을 백앤드에서 사용 Thrift – 서로 다른 언어를 사용한 개발을 가능하게 해줌 – software framework – RPC 서버와 클라이언트를 생성해줌 – – facebook 은 C++, Erlang, Java, Python, PHP 등을 백앤드에서 사용

reference nosql-eu-2010d8 behind-facebook/ 더 - 빠른 -PHP 를 - 위해 nosql-eu-2010d8 behind-facebook/ 더 - 빠른 -PHP 를 - 위해

Q&A