몽고 Db | Mongodb와 Mysql 누가 더 빠를까? 227 개의 베스트 답변

당신은 주제를 찾고 있습니까 “몽고 db – MongoDB와 MySQL 누가 더 빠를까?“? 다음 카테고리의 웹사이트 ppa.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://ppa.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 큰돌의터전 이(가) 작성한 기사에는 조회수 1,687회 및 좋아요 31개 개의 좋아요가 있습니다.

몽고 db 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 MongoDB와 MySQL 누가 더 빠를까? – 몽고 db 주제에 대한 세부정보를 참조하세요

[C++ 10주완성 코딩테스트] https://blog.naver.com/jhc9639/222602625841
[CS지식의 정석] https://www.inflearn.com/course/%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%A9%B4%EC%A0%91-cs-%ED%8A%B9%EA%B0%95?inst=16252dc2
[자바스크립트 풀스택 프로그래밍] http://www.yes24.com/Product/Goods/104208010

몽고 db 주제에 대한 자세한 내용은 여기를 참조하세요.

몽고DB – 위키백과, 우리 모두의 백과사전

몽고DB(MongoDB←HUMONGOUS)는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. NoSQL 데이터베이스로 분류되는 몽고DB는 JSON과 같은 동적 스키마형 도큐먼트 …

+ 여기에 더 보기

Source: ko.wikipedia.org

Date Published: 12/28/2021

View: 5772

MongoDB – 나무위키

MongoDB는 NoSQL로 분류되는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. MySQL 처럼 전통적인 테이블-관계 기반의 RDBMS가 아니며 SQL을 사용 …

+ 여기에 자세히 보기

Source: namu.wiki

Date Published: 3/15/2022

View: 2004

01. MongoDB(몽고디비) Study – NoSQL 이란? 그리고 …

요즘 IT 분야의 화두는 머신러닝, 딥러닝 등의 인공지능 분야이지만, 한 2년 전만 해도 빅데이터가 가장 화두였습니다. 이러한 빅데이터를 처리하는 …

+ 여기에 보기

Source: cionman.tistory.com

Date Published: 10/4/2021

View: 9282

‘NoSQL로의 초대’ 개발자를 위한 몽고DB 개론 – ITWorld

몽고DB, 문서 데이터 저장소. 관계형 데이터베이스는 엄격하게 통제되는 테이블과 열에 정보를 저장한다. 반면 문서 저장소인 몽고DB는 컬렉션과 문서에 …

+ 여기에 표시

Source: www.itworld.co.kr

Date Published: 7/28/2021

View: 6557

MongoDB란 – 역사, 설계 목표, 핵심 기능, 몽고DB를 사용하는 …

MongoDB 는 웹 애플리케이션과 인터넷 기반을 위해 설계된 데이터베이스 관리 시스템 입니다. 또한 데이터 모델과 지속성 전략을 높은 읽기/쓰기 효율과 자동 장애조치( …

+ 자세한 내용은 여기를 클릭하십시오

Source: hoing.io

Date Published: 9/12/2022

View: 769

[MongoDB] 몽고디비란? 기본 개념, 장점 단점 / CRUD

MongoDB 출현 배경 알아보기. 클라우드, 빅데이터 출현함으로써 이를 효율적으로 처리할 빅데이터 솔루션이 필요해짐 -> NoSQL(Not Only SQL) 의 등장 …

+ 여기에 더 보기

Source: blckchainetc.tistory.com

Date Published: 11/6/2022

View: 7601

몽고DB란? | 테라다데이터

MongoDB는 비필수 스키마와 함께 JSON과 같은 문서를 사용하여 대량의 데이터를 저장하는 NoSQL 데이터베이스입니다. 유연한 데이터 저장 모델을 통해 사용자는 쿼리를 더 …

+ 여기에 보기

Source: kr.teradata.com

Date Published: 2/29/2022

View: 5315

몽고DB 완벽 가이드 – YES24

몽고DB 완벽 가이드. : 실전 예제로 배우는 NoSQL 데이터베이스 기초부터 활용까지. [ 3판 ]. 크리스티나 초도로,섀넌 브래드쇼 …

+ 더 읽기

Source: www.yes24.com

Date Published: 9/23/2022

View: 8328

주제와 관련된 이미지 몽고 db

주제와 관련된 더 많은 사진을 참조하십시오 MongoDB와 MySQL 누가 더 빠를까?. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

MongoDB와 MySQL 누가 더 빠를까?
MongoDB와 MySQL 누가 더 빠를까?

주제에 대한 기사 평가 몽고 db

  • Author: 큰돌의터전
  • Views: 조회수 1,687회
  • Likes: 좋아요 31개
  • Date Published: 2021. 12. 31.
  • Video Url link: https://www.youtube.com/watch?v=3axR2Onz1nU

위키백과, 우리 모두의 백과사전

Robomongo 0.8.5를 사용하여 몽고DB에 레코드를 삽입하고 있는 모습.

몽고DB(MongoDB ←HUMONGOUS )는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. NoSQL 데이터베이스로 분류되는 몽고DB는 JSON과 같은 동적 스키마형 도큐먼트들(몽고DB는 이러한 포맷을 BSON이라 부름)을 선호함에 따라 전통적인 테이블 기반 관계형 데이터베이스 구조의 사용을 삼간다. 이로써 특정한 종류의 애플리케이션을 더 쉽고 더 빠르게 데이터 통합을 가능케 한다. 아페로 GPL과 아파치 라이선스를 결합하여 공개된 몽고DB는 자유-오픈 소스 소프트웨어이다.

뉴욕시에 기반을 둔 회사인 10gen (현재의 몽고DB)에서 2007년 10월, 계획된 PaaS(서비스형 플랫폼) 제품의 구성 요소로 처음 개발하였으며 10gen이 상용 지원 및 기타 서비스를 제공한 2009년에 오픈 소스 개발 모델로 전향하였다.[3] 그 뒤로 몽고DB는 크레이그리스트, 이베이, 포스퀘어, 소스포지, 뉴욕 타임즈, 구글, 페이스북와 같은 수많은 주요 웹사이트 및 서비스에 백엔드 소프트웨어로 채택되고 있다. 몽고DB는 가장 유명한 NoSQL 데이터베이스 시스템이다.[4]

역사 [ 편집 ]

10gen 소프트웨어 기업은 2007년에 PaaS 제품으로서 몽고DB의 개발을 시작했다. 2009년, 이 기업은 오픈 소스 개발 모델로 전환했으며 기업은 상용 지원과 기타 서비스를 제공하는 방식을 채택하였다. 2013년, 10gen은 사명을 MongoDB Inc.로 변경하였다.[3]

2017년 10월 20일, 몽고DB는 주식 공개 기업이 되었으며 NASDAQ에 MDB라는 심볼로 등재되었으며 IPO 가격은 한 주에 24달러였다.[5]

주요 기능 [ 편집 ]

애드혹 쿼리 [ 편집 ]

몽고DB는 필드, 레인지 쿼리, 정규 표현식 검색을 지원한다.[6] 쿼리는 특정 필드의 도큐먼트를 반환할 수 있으며 사용자 지정 자바스크립트 함수를 포함할 수도 있다. 쿼리는 주어진 크기의 임의의 결과 샘플을 반환하도록 설정할 수도 있다.

색인 [ 편집 ]

몽고DB 도큐먼트의 필드는 프라이머리(primary) 인덱스와 세컨더리(secondary) 인덱스로 인덱싱할 수 있다.

리플리케이션 [ 편집 ]

몽고DB는 리플리카 세트(replica set)와 함께 고가용성을 제공한다.[7] 리플리카 세트는 둘 이상의 데이터 사본으로 구성된다. 각 리플리카 세트 멤버는 어느 시점에서나 프라이머리나 세컨더리 리플리카 역할을 수행할 수 있다. 모든 쓰기와 읽기는 기본값으로 프라이머리 리플리카에서 수행된다. 세컨더리 리플리카는 내장된 리플리케이션 기능을 사용하여 프라이머리의 데이터의 사본을 관리한다. 프라이머리 리플리카가 실패하면 리플리카 세트는 어느 세컨더리가 프라이머리가 되면 좋을지 결정하기 위해 선거 과정을 자동으로 수행한다. 세컨더리 리플리카들은 선택적으로 읽기 조작을 서비스할 수 있으나 해당 데이터는 기본적으로 일관성을 유지한다.

로드 밸런싱 [ 편집 ]

몽고DB는 샤딩을 사용하여 수평으로 스케일링한다.[8] 사용자는 컬렉션 안의 데이터의 배포 방식을 결정하는 샤드 키를 선택하게 된다. 데이터는 여러 레인지(샤드 키에 따라)로 분리되며 여러 샤드로 배포된다. (샤드는 하나 이상의 리플리카가 존재하는 마스터이다)

몽고DB는 여러 개의 서버 위에서 실행할 수 있고 부하분산이라든지, 기동 중 데이터 복제, 하드웨어 고장 시 수행이 가능하다.

파일 스토리지 [ 편집 ]

몽고DB는 파일 저장을 위해 여러 머신에 로드 밸런싱, 데이터 리플리케이션 기능과 더불어 GridFS라는 이름의 파일 시스템으로 사용할 수 있다.

이 기능은 그리드 파일 시스템이라고 부르며[9] 몽고DB 드라이버에 포함되어 있다. 몽고DB는 파일 조작의 기능과 콘텐츠를 개발자들에게 노출한다. GridFS는 mongofiles 유틸리티나 Ngnix 플러그인[10], Lighttpd를 사용하여 접근할 수 있다.[11] GridFS는 파일 하나를 여러 부분이나 덩어리(chunk)로 분리시키며 해당 덩어리들 각각을 별도의 도큐먼트로 저장한다.[12]

애그리게이션 [ 편집 ]

몽고DB는 애그리게이션 수행을 위해 3가지 수단을 제공한다: 애그리게이션 파이프라인(aggregation pipeline), 맵리듀스 기능(map-reduce function), 단일 목적 애그리게이션 방식(single-purpose aggregation method).[13]

데이터 처리와 애그리게이션 조작을 위해 맵리듀스를 사용할 수 있다. 그러나 몽고DB의 문서에 따르면 애그리게이션 파이프라인이 대부분의 애그리게이션 조작에 더 나은 성능을 제공한다.[14]

애그리게이션 프레임워크를 사용하면 사용자들이 SQL GROUP BY 절이 사용되는 결과의 종류를 취득할 수 있다. 애그리게이션 연산자들은 하나로 묶어서 하나의 파이프라인을 형성할 수 있는데, 이는 유닉스 파이프와 비슷하다. 애그리게이션 프레임워크는 여러 도큐먼트로부터 도큐먼트들을 조인(join)할 수 있는 $lookup 연산자를 포함하고 있으며 표준 편차 등의 통계 연산자를 포함한다.

서버 사이드 자바스크립트 실행 [ 편집 ]

자바스크립트를 쿼리, 애그리게이션 기능(맵리듀스 등)에 사용할 수 있으며 직접 데이터베이스로 보내어 실행할 수 있다.

캡트 컬렉션 [ 편집 ]

몽고DB는 캡트 컬렉션(capped collection)이라는 이름의 고정 크기의 컬렉션을 지원한다. 이러한 유형의 컬렉션은 삽입 순서를 관리하고 특정 크기에 도달하면 원형 버퍼처럼 동작하게 만들 수 있다.

트랜잭션 [ 편집 ]

멀티 도큐먼트 ACID 트랜잭션 지원이 2018년 6월 4.0 릴리스의 GA(General Availability)와 더불어 몽고DB에 추가되었다.[15]

참조 [ 편집 ]

외부 링크 [ 편집 ]

01. MongoDB(몽고디비) Study – NoSQL 이란? 그리고 MongoDB 소개

728×90

요즘 IT 분야의 화두는 머신러닝, 딥러닝 등의 인공지능 분야이지만, 한 2년 전만 해도 빅데이터가 가장 화두였습니다. 이러한 빅데이터를 처리하는 기술로 NoSQL을 사용하게 됩니다. 그럼 NoSQL 이란 어떤 것일까요?

NoSQL

“Non Relational Operation Database SQL” 의 줄임말로써 “관계형 데이터베이스가 아닌 SQL” 입니다.

일반적인 관계형 데이터베이스에서는 데이터의 중복을 제거하고 무결성을 보장하기 위해서 정규화를 하게 되는데 이러한 정규화가 과도한 JOIN으로 인해 성능 저하가 있을 수 있습니다.

하지만 NoSQL은 아래의 그림 처럼 중첩데이터 형태를 띔으로써 불필요한 JOIN 을 최소화시킵니다.

NoSQL의 장점

1) 불필요한 Join의 최소화

2) 유연성있는 서버 구조 제공

3) 비정형 데이터 구조로 설계비용 감소

4) Read/Write가 빠르며 빅데이터 처리가 가능

5) 저렴한 비용으로 분산처리 및 병렬처리 가능

4번 장점의 경우는 반드시는 아닙니다. 일반적인 관계형 데이터베이스가 빠른 경우도 많습니다.

그리고 비정형 데이터로 인해 관계형 데이터베이스보다 1.5배정도 용량을 많이 차지 합니다.

이러한 NoSQL은 크게 4종류의 모델이 있고 대표적인 데이터베이스입니다.

1) KEY-VALUE – Redis , Memcached 2) COLUMN – Hbase, Casandra 3) DOCUMENT – MongoDB, 4) GRAPH – GraphDB

2. 관계형 데이터베이스(Relational Database)와 NoSQL 비교

Relational Database NoSQL Scale-up – 서버 한대 중심으로 확장 Scale-out – 여러대의 서버를 중심으로 확장 무결성 유연성 데이터 중복 제거 데이터 중복 허용 트랜잭션 빠른 쓰기, 읽기

3 . MongoDB

Json 타입의 Document 방식의 NoSQL 입니다. 특징은 다음과 같습니다.

JSON 형식의 데이터구조

CRUD위주의 다중 트랜잭션 처리 가능

Sharding(분산) / Replica(복제) 기능 제공

Memory Mapping기술을 기반으로 빅데이터 처리에 성능이 탁월

관계형데이터베이스가 가지는 여러 특징을 구현 할수 있는 것이 장점이지만, 그런방식을 구현할 시에는 성능적인 면도 고려해야합니다.

4. 관계형 데이터베이스(Relational Database) 와 MongoDB 논리적 구조 비교

Relational Database MongoDB Table Collection Row Document Column Field Primary Key Object_ID Field Relationship Embbeded & Link

MongoDB를 공부해본 결과, 관계형 데이터베이스와의 차이점도 존재하지만, 데이터베이스의 본질적인 부분은 유사한 점도 많습니다.

유사점을 살짝 언급 해보면 관계형 데이터베이스에 있는 Join, 파티션, 복제, 힌트, 백업, 복구 등등의 기능을 유사하게 또는 같은 방식으로 그리고 다른 명칭으로 구현하고 있습니다.

다음 글에서 부터 본격적으로 MongoDB를 하나씩 정리를 해보겠습니다. 다음 글은 MongoDB 설치 및 시작

728×90

‘NoSQL로의 초대’ 개발자를 위한 몽고DB 개론

몽고DB, 문서 데이터 저장소

<그림 1> 몽고DB 문서 저장소

# create a database:

CREATE DATABASE menagerie;

# create a table in the database:

USE menagerie; CREATE TABLE pet (name VARCHAR(20));

# connect to the database in app and issue insert:

INSERT INTO pet (name) VALUES (‘Friar Tuck’);

# add a column:

ALTER TABLE pet ADD type VARCHAR(20));

# update existing record:

UPDATE pet SET type = ‘cat’ WHERE name = ‘Friar Tuck’

# connect to the database in app and issue insert:

use menagerie; db.pet.insertOne({name:”friar tuck”});

# issue update:

db.pet.updateOne({ name:’friar tuck’ }, { $set:{ type: ‘cat’ } } );

몽고DB의 ID 필드

_id

_id

몽고DB의 인덱싱

db.pet.createIndex( { name: 1 } )

몽고DB의 중첩 문서

<예제 1> 중첩 문서의 예

{

“_id”: “5cf0029caff5056591b0ce7d”,

“name”: “Friar Tuck”,

“address”: {

“street”: “Feline Lane”,

“city”: “Big Sur”,

“state”: “CA”,

“zip”: “93920”

},

“type”: “cat”

}

몽고DB의 역정규화

몽고DB 쿼리 언어

db.pet.find({ “type” : “cat” })

db.pet.find({ “type” : “cat”, “address.state”: “CA” })

몽고DB 업데이트 구문

$set

<예제 2> 중첩 문서 업데이트

db.people.update(

{

“type”: “cat”,

“name”: “Friar Tuck”

},

{

$set: {

“address.zip”: “86004”

}

}

)

몽고DB 클라우드 및 배포 옵션

몽고DB의 고가용성

NoSQL 데이터 저장소는 더 유연한 데이터 관리 방법을 통해 소프트웨어 개발에 혁신을 불러왔다. 이런 NoSQL 중 대표적인 솔루션 중 하나가 바로 문서 지향 데이터 저장소인 몽고DB다. 몽고DB의 정의와 이 DB가 애플리케이션 요구사항을 어떻게 처리하는지 알아보자.관계형 데이터베이스는 엄격하게 통제되는 테이블과 열에 정보를 저장한다. 반면 문서 저장소인 몽고DB는 컬렉션과 문서에 정보를 저장한다. 이것은 몽고DB의 가장 특징이기도 한데, 컬렉션과 문서가 비구조적이라는 점이다. 스키마리스(schema-less)라고 불리는 것도 이 때문이다. 몽고DB 인스턴스(컬렉션 및 문서) 구조는 사전에 정의되지 않고, 저장되는 데이터에 적합하도록 유연하게 변형된다.몽고DB의 문서는 키-값 집합으로 그 동작 방식은 자바스크립트와 같은 코드의 객체와 매우 비슷하다. 안에 들어가는 데이터에 따라 구조가 변경된다. 덕분에 몽고DB와 같은 데이터 저장소를 대상으로 한 코딩은 관계형 데이터 저장소에 대한 코딩에 비해 더 쉽고 민첩하다. 간단히 말해 애플리케이션 코드와 문서 데이터 저장소 간의 상호작용이 더 자연스럽게 느껴진다. 은 몽고DB의 컬렉션과 문서 구조를 시각적으로 보여준다.이 데이터 모델링 형태는 매우 유연해 데이터를 그때그때 필요에 맞게 처리할 수 있고, 결과적으로 성능 혜택 으로 이어진다. 몽고DB와 기존 DB의 차이점을 확실히 이해하기 위해 같은 작업(레코드를 만든 다음 애플리케이션에서 필드를 추가하기)을 처리하는 방법을 비교해 보자.먼저 관계형 데이터베이스에서는 보통 다음과 같이 시작한다.같은 작업을 몽고DB에서 실행하면 다음과 같다.결국 두 구문을 보면 몽고DB를 사용할 경우 개발이 더 매끄럽다는 것을 알 수 있다. 물론 이런 유연함은 개발자에게는 스키마 팽창을 피해야 한다는 부담을 의미하기도 한다. 따라서 대규모 앱에서는 문서 구조에 대한 통제력을 유지하는 것이 중요하다.관계형 데이터베이스에는 기본 키(primary key)라는 개념이 있는데, 이는 많은 경우 합성 ID 열, 즉 비즈니스 데이터와 관계되지 않고 생성된 값이다. 몽고DB에는 비슷한 목적으로 모든 문서에필드가 있다. 개발자가 문서를 만들 때 ID를 제공하지 않으면 몽고DB 엔진이 UUID로 자동 생성한다.필드는 기본 키와 마찬가지로 자동으로 인덱싱되며 고유해야 한다.몽고DB의 인덱싱은 관계형 데이터베이스의 인덱싱과 비슷하다. 문서의 필드에 대한 부가적인 데이터를 생성해 이 필드에 의존하는 조회의 속도를 높인다. 몽고DB는 B-트리 인덱스를 사용한다. 인덱스는 다음과 같은 구문으로 만들 수 있다. 매개변수의 정수는 인덱스가 오름차순(1)인지 내림차순(-1)인지를 나타낸다.몽고DB의 문서 지향 구조가 갖는 강력한 장점은 문서를 중첩할 수 있다는 것이다. 예를 들어 의 구조와 같이, 반려동물 문서에서 주소 정보를 저장할 또 다른 테이블을 만드는 대신 중첩 문서를 만들 수 있다.몽고DB와 같은 문서 저장소는 조인을 다소 제한적으로 지원하며 외래 키의 개념이 없다. 데이터 구조의 동적인 특성 때문이다. 따라서 몽고DB의 데이터 모델링은 역정규화로 흐르는 경향이 있다. 즉, 엄격하게 테이블 사일로에 데이터를 유지하는 대신 문서에 데이터의 사본을 만든다. 조회 속도는 빨라지지만 대신 데이터 일관성을 위한 유지보수 작업이 늘어난다.역정규화는 필수 요건은 아니지만 문서 지향 데이터베이스를 사용할 때 뚜렷하게 나타난다. 데이터를 특정 단일 값 열로 정규화하는 (즉, 중복하지 않는) 경향이 있는 SQL과 달리 복잡한 중첩 레코드를 처리하는 기능이 우수하기 때문이다.몽고DB의 쿼리 언어는 문서 구조와 마찬가지로 JSON 지향적이다. 덕분에 복잡한 중첩 문서도 처리할 수 있는 매우 강력하고 표현력이 뛰어난 구문을 제공한다.예를 들어 가상의 데이터베이스에서 모든 고양이를 쿼리하려면를 실행하면 되고, 캘리포니아에 있는 모든 고양이를 쿼리하려면를 실행하면 된다. 쿼리 언어는 중첩된 주소 문서를 순회한다.몽고DB의 구문은 JSON과 비슷한 부분도 있다. 예를 들어키워드는 어느 필드가 어느 값으로 변경될지를 나타낸다. 와 같이 set 객체는 점 표기법을 통해 중첩 문서를 지원한다. 에서는 이름이 “Friar Truck”인 고양이의 우편번호를 변경한다.를 보면 업데이트 구문이 매우 강력하다는 것을 알 수 있다. 실제로 SQL의 업데이트 구문보다 더 강력하다.몽고DB 설계의 핵심은 확장성과 분산 배포다. 웹 스케일 워크로드를 충분히 처리할 수 있을 정도다. 이를 위해 몽고DB 기업은 몽고DB 아틀라스(Atlas)에서 멀티클라우드 데이터베이스 클러스터링 솔루션을 제공한다. 몽고DB 아틀라스는 여러 클라우드 플랫폼을 포괄하는 관리형 데이터베이스와 같이 동작하며, 모니터링 및 내결함성과 같은 엔터프라이즈 기능을 포함한다.AWS의 아마존 도큐먼트DB에 몽고DB 호환성이 주요 특징으로 기술되어 있는 것을 보면 몽고DB의 중요성이 어느 정도인지 짐작할 수 있다. 마이크로소프트 애저 코스모스 DB 역시 몽고DB API를 지원한다.몽고DB는 고가용성을 위한 복제본 집합을 지원한다. 데이터가 주 인스턴스에 한 번 작성된 후 읽기를 위한 2차 저장소에 복제하는 식이다. 몽고DB 웹사이트 에서 더 자세한 내용을 확인할 수 있다. 몽고DB는 유연한 스키마 데이터 저장소라는 새로운 트렌드를 이끄는 주도적인 NoSQL 솔루션이다. 거의 모든 프로그래밍 언어를 위한 고급 드라이버가 있으며 다양한 배포 옵션도 지원한다. [email protected]

[MongoDB] 몽고디비란? 기본 개념, 장점 단점 / CRUD

반응형

MongoDB 출현 배경 알아보기

클라우드, 빅데이터 출현함으로써 이를 효율적으로 처리할 빅데이터 솔루션이 필요해짐 -> NoSQL(Not Only SQL) 의 등장 -> 대량의 데이터를 빠른 속도로 처리가능 (SQL의 부족한 점을 돕는 기능, 완벽하게 대체는 X) -> NoSQL의 종류 중 하나인 document key/value Store 의 대표 케이스가 MongoDB이다.

클라우드

– 클라우드 컴퓨팅 : 인터넷 기반 컴퓨팅 기술, 개인 단말기는 주로 입/출력만 이루어지고 정보 분석 및 처리, 저장, 관리, 유통 등은 클라우드 공간에서 이루어지는 컴퓨팅 시스템

– 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터, 휴대폰 등에 불러와서 사용하는 웹 기반 소프트웨어 서비스

클라우드 장점

– 초기 구입 비용과 비용이 적으며 휴대성이 높다.

– 컴퓨터 가용율이 높다.

(그린 IT 개념, * 그린it : 지구 환경을 보호하는 차원에서 친환경적인 성격을 갖는 IT 기기나 IT 기술)

– 다양한 기기를 단말기로 사용하는 것이 가능

– 서비스를 통한 일관성 있는 사용자 환경 구현 가능

– 사용자 데이터를 신뢰성 높은 서버에 안전하게 보관 가능

– 전문적인 하드웨어 지식 없이 쉽게 사용 가능

클라우드 단점

– 서버가 공격 당하면 개인정보 유출 가능

– 재해에 의해 데이터가 손상되면 백업하지 않은 정보 복구 불가

– 애플리케이션 설치 제약, 새로운 애플리케이션 미지원

– 열악한 통신환경에서의 서비스 이용 어려움

– 개별 정보 물리적인 위치 파악 불가

빅데이터

그 전에는 분석이 불가능했지만 IT가 발전하면서 다룰 수 있게 된 방대한 양의 데이터

ex) 휴대폰 통화내역, 기상 정보, 실시간 교통량, 인터넷 검색 내역, 소셜네트워크서비스 메세지 등등

빅데이터 특징

– 데이터의 양 (Volume)

– 데이터 생성 속도 (Velocity)

– 형태의 다양성 (Variety)

– 빅데이터에서 이름, 나이, 주민번호, 성별, 직업 등의 정형적인 특성보다 ‘당신이 어디에서 무엇을 하며, 어떤 행동 방식을 선호하는가’ 가 의미있는 자료가 된다.

빅데이터 solutions 로 NoSQL 등장

https://blckchainetc.tistory.com/349

NoSQL 중 Doucment data model 의 대표적인 MongoDB

MongoDB 개요

– 10gen 사에서 개발한 솔루션 ( C++로 만듬)

– key-value 와 다르게 여러 용도로 사용이 가능 (범용적)

– 스키마를 고정하지 않는 형태

* 스키마 변경으로 오는 문제 없음

* 데이터를 구조화해서 json 형태로 저장 (데이터를 key-value화 저장)

– json 형태를 사용함 (아래 json에 대한 설명 有)

– join 이 불가능 -> 애초에 join 필요없도록 데이터 설계 필요

MongoDB 특징

– 메모리맵 형태의 파일엔진 DB이기 때문에 메모리에 의존적

* 메모리 크기가 성능을 좌우

* 메모리를 넘어서는 경우 성능이 급격히 저하됨

– 쌓아놓고 삭제가 없는 경우 적합

* 로그 데이터

* 이벤트 참여내역

* 세션

– 트랜젝션이 필요한 금융, 결제, 빌링, 회원정보 등에는 부적합 ( 요론 경우들은 RDBMS )

모든 것을 mongoDB로 하는 것이 아니라 적절하고 필요한 경우에 사용,

일관성을 유지해야하고 보완성이 필요한 중요정보 등의 경우에는 RDBMS를 사용

Document Data Model

가장 큰 { } 괄호가 하나의 document 이다. 하나의 document안에 key : value 형태로 다양한 형태의 데이터들이 담겨 있다.

Document Data Model : 데이터 설계를 “종이 문서” 설계하듯이 해야 한다.

– 속성의 이름과 값으로 이루어진 쌍의 집합 (key & value)

– 속성(value)은 문자열이나 숫자, 날짜 가능

– 배열 또는 다른 도큐먼트를 지정하는 것도 가능

– 하나의 document에 필요한 정보를 모두 담아야 함

– one query로 모두 해결이 되게끔 collection model 설계를 해야 함

– join이 불가능하므로 필요한 데이터를 미리 embedding 시켜야 함

* json *

– json : JavaScript Object Notation * notation : 표기법

– lightweight data 교환 형식

– 사람이 읽고 쓰기 쉽고, 기계가 parsing하고 생성하기 쉬움

– JavaScript의 Array 문법으로 데이터 구조를 기술하는 방법으로 XML이 가지는 유연성과 구조적 데이터 표현기능을 확보하면서, XML이 가진 오버헤드를 줄이는 방법으로 사용됨

– 클라이언트에서 처리 포포몬쓰 높음

– XML이 표현하는 구조적인 정보 모두 표현 가능

– 송수신 데이터로 XML를 사용하는 것보다 훨씬 빠르고, 간편

Mongo DB 장점 단점

MongoDB 장점

– Schema-less 구조 :

* 다양한 형태의 데이터 저장 가능

* 데이터 모델의 유연한 변화 가능 (데이터 모델 변경, 필드 확장 용이)

– Read/Write 성능 뛰어남

– Sacale Out 구조

* 많은 데이터 저장 가능

* 장비 확장이 간단함

– JSON 구조 : 데이터 직관적 이해 가능

– 사용 방법 쉽고, 개발이 편리함

– MongoDB와 MySQL 에서 동일한 데이터로 CRUD를 수행할 때 대부분 MongoDB가 빠르다.

– Single Node, Multi Node 간에 성능 차이는 거의 없다.

MongoDB 단점

– 데이터 업데이트 중 장애 발생 시, 데이터 손실 가능 (분산 처리 시스템 – 데이터의 부분 결함 가능성이 있다._)

=> 감안하고 사용해야함

– 많은 인덱스 사용 시, 충분한 메모리 확보 필요

– 데이터 공간 소모가 RDBMS에 비해 많음 (비효율적인 key 중복 입력)

– 복잡한 join 사용시 성능 제약이 따름

* join 예시 : embedded document로 collection 안에 하나의 field에 조인될 만한 로우를 입력하는 방식을 사용

ex) $lookup 이라는 함수로 join과 동일한 효과로 collection을 합칠 수 있다.

– transactions 지원이 RDBMS 대비 미약

– 제공되는 map reduce 작업이 hadoop에 비해 성능이 떨어짐

– MongoDB의 불안전성 : 데이터의 유실 가능성 (큰 데이터 모두가 아닌 중간중간 일부 데이터)

* 데이터 양이 많을 경우

– 일부 데이터 손실 가능성 존재

– 샤딩(데이터 분산 저장)의 비정상적인 동작 가능성

– 레플리카 프로세스(복제하는 기능) 의 비정상 동작 가능성

– MongoDB Multi Node의 Insert 연산 중에 연산 실패가 일어나는 경우 발생

=> 장점이 극명하여 단점을 감안하고도 많이 사용됨 (NoSQL 사용 비율 1위)

분산을 목적으로 한 DBMS선택할 경우, RDBMS에 비해 낮은 비용과 빠른 성능을 제공하는 MongoDB가 유리하다.

MongoDB 주요 기능

MongoDB 인덱스

– 다수 인덱스 설정 가능

– 복합 인덱스 지원

– 빠른 검색 지원

– 도큐먼트에 저장된 데이터와 중복 저장되는 문제 있음

– 메모리가 부족한 시스템에서는 검색 속도 저하 문제 있음

MongoDB 복제

– Master-Slave 구조 구성

– 데이터 복사본을 Slave에 배치

– Master 장애에 따른 데이터 손실 없이 Slave 데이터 사용 가능

– Master 장애가 발생했을 때, Slave에서 Master 선출 가능 (중단없는 서비스 가능)

* 여러대의 서버로 데이터를 분산 저장하고 손실 방지하기 위해 복제 수행 -> 단순히 수동적인 복제가 아님

Master 문제가 발생했다는 것을 능동적으로 감지 하고 그것에 대한 대응을 스스로 함

(운영자 or 개발자 개입 없이)

– 데이터 손실을 최소화하기 위해 저널링 지원 (MongoDB의 데이터 변화에 따른 모든 연산에 대한 로그 적재)

* 이 로그를 가지고 손실된 데이터를 복구

BigData with MongoDB

– Memory Mapped 사용 (데이터 쓰기 시에 OS의 가상 메모리에 데이터를 넣은 후 비동기로 디스크에 기록하는 방식)

– 방대한 데이터를 빠르게 처리 가능

– OS의 메모리를 활용하기 때문에 메모리가 차면 하드디스크로 데이터 처리하여 속도가 급격히 느려짐

– 하드웨어적인 측면에서 투자가 필요

MongoDB 샤딩 (Sharding)

– 대용량의 데이터를 저장하기 위한 방법

* 소프트웨어적으로 데이터베이스를 분산시켜 처리하는 구조

– 샤딩 방식

* 데이터베이스가 저장하고 있는 테이블을 테이블 단위로 분리 하는 방법

* 데이터베이스가 저장하고 있는 테이블 자체를 분할 하는 방법

– 분산 데이터베이스의 전통적인 분할 3계층 구조 지원

* 응용 계층, 중개자 계층, 데이터 계층

* 응용 계층은 데이터에 접근하기 위해 중개자를 통해 모든 데이터의 입출력을 처리

* 추상화된 한개의 데이터베이스가 존재하는 것처럼 운용

* 샤딩 : 샤딩은 “조각내다”라는 뜻으로 데이터베이스 저장기법 중 하나이며, 전체 네트워크를 분할한 뒤 트랜잭션을 영역별로 저장하고 이를 병렬적으로 처리하는 방법

(블록체인에 확장성을 부여하는 온체인 솔루션으로 데이터를 샤드라는 단위로 나눠서 저장 및 처리한다.)

MongoDB 맵리듀스 (map reduce)

map 함수는 각각 본인의 일을 처리 -> 다시 합쳐서 reduce 에게 -> output -> 사용자에게 전달

– 대용량의 데이터를 안전하고 빠르게 처리하기 위한 방법

* 데이터를 분산하여 연산하고 다시 합치는 기술

* 맵과 리듀스 단계로 나누어 처리하며, 사용자가 임의 코딩 가능

* 입/출력 데이터는 key-value형태로 구성

– 한대 이상의 하드웨어를 활용하는 분산 프로그래밍 모델

* 분산을 통해 분할된 조각으로 처리한 다음, 다시 모아서 훨씬 짧은 시간에 계산을 완료

– 대용량 파일에 대한 로그 분석, 색인 구축 검색 등에 활용

– 일괄처리 방식으로 전체 데이터 셋을 분석할 필요가 있는 문제에 적합

MongoDB CRUD Query

1. Create (C)

db.person.save( {‘name’:’emily’} );

2. Read (R)

db.person.find();

3. Update (U)

db.users.update( {name:’emily’}, {name: ‘Cash’, languages: [‘english’]} );

4. Delete (D)

db.users.remove( {name: ’emily’} );

mongoDB 설치 & 설정

MongoDB

1) 수평적 확장이라는 특성을 가짐

2) 한 대 이상의 서버 로 구성하는 것이 일반적

3) 메모리 사용 가능량에 대비하여 성능이 좌우되기 때문에 독립된 서버에서 실행 권장

4) 기본적으로 MongoDB는 mongod 라는 실행파일 을 단위로 실행

5) 데이터를 한 곳에만 저장하면 데이터 손상 시 복구가 불가능하기 때문에 보통 3개의 Replica 단위로 구성하여 데이터를 복제

6) mongos 서버를 통해 마치 한대의 데이터베이스 서버처럼 사용 가능

실습에서는 서버 1개로 ㄱㄱ!

샤드로 구성된 mongod 서버들을 mogos 라우터를 통해 연결, mongos 조차도 여러대로 분산하여 저장할 수 있고 최상위에는 Load Balancer 를 둠

필요하다면 다른 장소에 있는 Data center B 에도 복제set를 구성해줄 수 있다.

mongoDB 설치

https://www.mongodb.com/try/download/community

On-premises – Download 클릭

mongoDB 환경변수 설정 & mongoDB path 설정 및 shell 실행

https://sanghn.tistory.com/2

mongoDB 안전 종료 (clean exit)

use admin;

db.shutdownServer();

mongoDB와 node.js=잘 맞음

node.js 기본 개념

1) Event-driven

– 사용자 또는 외부 환경이 만들어낸 사건(event)를 기반으로 어떤 처리를 할지 지정해주는 개발 방식

ex) 사용자가 마우스를 움직였다거나 키보드를 입력했다거나 새로운 데이터가 들어왔다거나 이 모든 것을 사 건(event)로 처리

– 일부 웹서버는 데이터가 들어올때까지 무한정 기다리는 문제 있음

2) Non-blocking I/O (비동기식 I/O)

– 쓰기/읽기 이벤트가 시작되어도 모듈을 반환

– 다른 작업이 가능한 준비상태로 전환

– 동기식보다 빠르고 메모리도 적게 차지

Non-blocking 의 반대 -> blocking (동기식 I/O)

– 쓰기/읽기 이벤트가 발생할 경우 해당 이벤트가 끝날때까지 해당 모듈을 계속 점유

– 다른 일을 할 수 없는 상태가 됨

– 메모리를 계속 차지하고 있기 때문에 자원의 낭비가 심함

References : https://www.youtube.com/watch?v=Dvi_TsBMFJo

반응형

몽고DB란?

MongoDB는 기존의 테이블 기반 관계형 데이터베이스 구조가 아닌 문서 지향 데이터 모델을 사용하는 교차 플랫폼 오픈 소스 데이터베이스입니다. 이러한 유형의 모델을 사용하면 정형 및 비정형 데이터를 보다 쉽고 빠르게 통합할 수 있습니다.

MongoDB는 어떻게 작동하나요?

MongoDB는 비필수 스키마와 함께 JSON과 같은 문서를 사용하여 대량의 데이터를 저장하는 NoSQL 데이터베이스입니다. 유연한 데이터 저장 모델을 통해 사용자는 쿼리를 더 쉽게 작성할 수 있고, 또한 개발자도 데이터베이스를 더 쉽게 관리할 수 있습니다.

몽고DB 완벽 가이드

출판사 리뷰

개발자와 데이터베이스 관리자를 위한 몽고DB의 모든 것

몽고DB를 사용하여 애플리케이션을 개발하고 관리하는 데 필요한 폭넓은 내용을 한 권에 담았습니다. 개발을 시작하기에 앞서 도큐먼트와 같이 NoSQL 데이터베이스의 핵심 용어와 동작 방식부터 차근차근 익힙니다. 기초를 익힌 후에는 효율적인 애플리케이션을 설계하기 위한 기능과 고려 사항을 다양한 예제를 통해 학습합니다. 몽고DB 입문자도 책의 내용을 따라가다 보면 전반적인 개발 과정을 익힐 수 있습니다. 데이터베이스 관리자와 운영자에게 유용한 관리 방법도 다룹니다.

[개정 3판]에서 달라진 점

몽고DB 최신 버전(v4.x)은 트랜잭션, 집계 표현식, 복제, 샤딩 성능이 강화되고 기능이 추가되었으며 와이어드타이거 스토리지 엔진을 도입하여 성능이 향상되었습니다. 이를 반영한 개정 3판에서는 복제와 샤딩을 더 깊이 있게 다루고 풍부한 예제를 통해 이해하기 쉽게 설명합니다. 애플리케이션 개발 방법뿐 아니라 관리 방법도 자세히 다룹니다. 몽고DB 아틀라스와 같은 클라우드 서비스를 비롯하여 새로 도입된 엔터프라이즈 제품도 소개하며 활용 팁을 제공합니다.

주요 내용

-몽고DB 핵심 개념과 연산, 쿼리 방법

-데이터 집계 기술과 인덱스, 컬렉션, 트랜잭션 사용법

-복제 셋을 구축하고 운영하는 방법

-클러스터를 구성하고 샤드 키를 선택하는 방법

-애플리케이션 관리를 위한 보안과 인증, 권한 구성 방법

-서버를 모니터링하고 백업, 복구하는 방법

키워드에 대한 정보 몽고 db

다음은 Bing에서 몽고 db 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 MongoDB와 MySQL 누가 더 빠를까?

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

MongoDB와 #MySQL #누가 #더 #빠를까?


YouTube에서 몽고 db 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 MongoDB와 MySQL 누가 더 빠를까? | 몽고 db, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment