NoSQL 사용 사례
NoSQL은 최근 업계에서 많은 관심을 받고 있습니다.관계형 데이터베이스 스토리지에 대한 최적의 사용 사례에 대해 사람들이 어떻게 생각하는지 정말 궁금합니다.개발자가 특정 데이터셋이 NoSQL 솔루션에 더 적합하다고 생각하게 하는 이유는 무엇입니까?PHP 개발에서 MongoDB와 CouchDB가 가장 많은 커버리지를 받고 있는 것 같아서 특히 관심이 많습니다.
관계형 데이터 모델을 MongoDB나 CouchDB와 같은 NoSQL 데이터베이스에 매핑하지 않겠다고 스스로에게 약속하십시오.이는 개발자들이 신흥 기술을 평가할 때 가장 많이 저지르는 실수입니다.
그 접근법은 차를 타고 말처럼 카트를 도로 아래로 끌어내려 하는 것과 비슷합니다.
물론 누구나 경험했기 때문에 당연한 반응이지만 문서 데이터베이스를 사용하는 것의 진정한 가치는 데이터 모델을 단순화하고 개발자로서 겪는 어려움을 최소화할 수 있다는 것입니다.코드 베이스가 축소되어 버그가 적어지고 검출이 용이해져 퍼포먼스가 향상되어 확장이 심플해집니다.
Joomla의 창업자인 저는 편견이 있지만 CMS 분야에서 온 MongoDB와 같은 것은 컨텐츠가 문서 시스템에 매우 자연스럽게 매핑되기 때문에 매우 유용합니다.
MongoDB의 또 다른 훌륭한 사례는 실시간 분석입니다. MongoDB는 특히 동시성과 관련하여 매우 강력한 성능과 확장성을 가지고 있기 때문입니다.MongoDB.org 웹사이트에는 이러한 특성을 보여주는 사례 연구가 있습니다.
각 데이터베이스마다 목적과 사용 사례가 있다는 생각에 동의합니다. 각 데이터베이스의 목적에 따라 평가하십시오.
MongoDB 사이트에는 MongoDB에 대한 몇 가지 훌륭한 사용 사례가 언급되어 있습니다.예를 들어 실시간 분석, 로깅 및 전체 텍스트 검색이 있습니다.이 기사들은 모두 http://www.mongodb.com/use-cases에서 읽을 가치가 있습니다.
또한 NoSQL 데이터베이스가 어떤 유형의 프로젝트에 가장 적합한지에 대한 훌륭한 기술도 있습니다. http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
Rick Cattell의 기타 데이터 스토어에 대한 이 기사를 제안합니다.NoSQL)의 차이점 및 일부 사용 사례: http://www.cattell.net/datastores/index.html
저는 한동안 NoSQL DB를 사용해 왔습니다.이것이 이 토픽에 대한 저의 공헌입니다.
NoSQL 데이터베이스의 좋은 활용 사례는 통계 및/또는 보고서 생성을 위한 애플리케이션입니다. 특히 서드파티 소스에서 데이터를 제공하는 경우에는 더욱 그렇습니다.
이러한 상황에서는 NoSQL 데이터베이스를 선택하는 것이 좋습니다.
예를 들어 MongoDB에 대해 생각해 봅시다.
데이터를 JSON에 저장하면(서드파티 API에서 가져올 수도 있고 SQL 응용 프로그램에서 내보낼 수도 있음), 데이터베이스 내의 JSON 데이터를 Import 및 갱신하는 것이 매우 간단합니다(커맨드라인 유틸리티 사용 등).
이 시점에서 필터링과 그룹화를 사용하여 동적 쿼리를 작성하는 것은 매우 간단합니다.이러한 종류의 어플리케이션에 적합합니다.
예를 들어 Aggregation Framework를 사용하는 경우:
$pipeline = [];
//filter by date
$pipeline[] = [ '$match' => [ 'created_at' => [ '$gte' => $starDate, '$lte' => $endDate ] ] ];
//if we want to filter by a specific field, we add the filter to the pipeline array
if( $filters->isFilterByField() )
$pipeline[] = [ '$match' => [ 'field' => $fieldValue ] ];
//group the results by date and get the count
$pipeline[] = [ '$group' => [ '_id' => '$created_at', 'num_elements' => [ '$sum' => 1 ] ] ];
return $collection->aggretate( $pipeline );
php 데이터 구조를 사용하여 필터를 디나믹하게 추가/제거할 수 있고, 쿼리를 구축하기 위해 지루한 문자열 연결을 피할 수 있다는 점을 강조하고 싶습니다.이 방법에서는 필터 추가/삭제가 어레이에서 요소를 추가/삭제하는 것만큼이나 간단합니다.
또 다른 큰 이점은 이러한 솔루션이 릴레이셔널 데이터베이스를 사용하는 것보다 더 빠를 가능성이 높기 때문에 필요한 모든 데이터를 얻기 위해 서로 다른 테이블을 사용해야 합니다.
또한 이 사용 사례는 NoSQL 데이터베이스의 주요 제한을 모두 회피하기 때문에 최적입니다.
트랜잭션 부족:애플리케이션은 쓰기를 수행하지 않고 읽기만 수행하므로 트랜잭션은 전혀 필요하지 않습니다.
테이블 간 조인 부족:중복성을 사용하여 정규화된 데이터를 컬렉션에 저장할 수 있으므로 가입할 필요가 없습니다.데이터만 읽기 때문에 업데이트 간에 정규화 해제된 데이터를 동기화할 염려가 없습니다.
이렇게 하면 단일 수집에 초점을 맞춘 쿼리에 적합한 방식으로 중복된 데이터를 저장하는 데 집중할 수 있습니다.
예전에 그런 걸 읽었더라면 연구할 시간이 좀 절약되었을 것 같아서 쓰는 거예요.
누군가에게 도움이 되었으면 좋겠다.
NoSQL의 장점은 성능이나 조작성과는 전혀 관계가 없습니다.문서 저장소는 원자 데이터 단위가 문서와 유사할 때 사용하기 쉬운데, 이는 개체와 직렬화하는 것이 간단하기 때문입니다.그것은 단지 더 재밌을 뿐이고, 그것은 개인 프로젝트나 부업 프로젝트에서 중요한 요소이다.
나는 마틴 파울러의 이 강연을 강력히 추천한다.
https://www.youtube.com/watch?v=qI_g07C_Q5I
개요: Martin은 NoSQL 데이터베이스의 출처, 사용하는 데이터 모델의 특성, 일관성에 대한 다른 사고방식 등 빠르게 소개합니다.여기서 어떤 상황에서 사용할지, 관계형 데이터베이스를 쓸모없게 만들지 않는 이유 및 폴리글롯 지속성의 중요한 결과를 개략적으로 설명합니다.
NoSQL이 무엇인지, 다양한 카테고리 및 관계형 데이터베이스 세계에서 모든 사람이 이해해야 할 사항을 잘 보여줍니다.안부 전해요.
먼저 CAP(Consistency, Availability, Partitioning) 이론과 비즈니스 활용 사례를 이해해야 합니다.MongoDB는 일관성을 충족하고 파티셔닝과 카우치 DB는 가용성과 파티셔닝을 충족시킵니다.
NoSQL에 관한 유튜브의 Edureka 동영상은 최고의 동영상 튜토리얼 중 하나입니다.
https://www.youtube.com/watch?v=gJFG04Sy6NY
https://www.youtube.com/watch?v=KSq6tMMXZ8s
https://www.youtube.com/watch?v=3z1KFA2qcSo
좋은 프레젠테이션은 slideshare.net에서 구할 수 있습니다.
http://www.slideshare.net/EdurekaIN/no-sql-databases-35591065?qid=f1b9c095-6d70-4d0a-91da-1df664c4f389&v=qf1&b=&from_search=3 (이 프레젠테이션은 유튜브 동영상 튜토리얼 지원)
특히 분석 쿼리의 경우 Postgres의 이 래퍼를 사용하여 MongoDB에서 SQL 쿼리를 실행할 수 있습니다.
현재 시장에 출시된 NoSQL 데이터베이스는 그 어느 때보다 많기 때문에 지원, 확장성, 관리 및 비용에 따라 엔터프라이즈 애플리케이션에 적합한 데이터베이스를 찾고 있다면 Gartner Magic Quadrant를 검토하는 것이 좋습니다.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Couchbase는 현재 CB Server의 리비전(2.5.1)에 거의 2개 뒤처져 있고, 2H15의 4.0 릴리즈가 가까워졌기 때문에 아직 시도하지 않은 사람에게 Couchbase를 제안하고 싶습니다.
http://www.couchbase.com/coming-in-couchbase-server-4-0
공급업체/제품으로서의 Couchbase의 또 다른 부분은 DB의 다중 사용 유형이라는 것입니다.순수 K/V 스토어, 다차원 확장 기능을 갖춘 Document Oriented Database, 지속성을 갖춘 Memcached, 캐시 사이드, 자동 결합 기능을 갖춘 ANSI 92 준거 SQL, 버튼 하나로 DR 클러스터로의 복제 기능, 심지어 모바일 컴포넌트가 에코시스템에 내장되어 있습니다.
그 외에는 최신 벤치마크를 확인할 필요가 있습니다.
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html
언급URL : https://stackoverflow.com/questions/2875432/use-cases-for-nosql
'programing' 카테고리의 다른 글
| Backbone.js 모델 데이터를 저장하는 방법 (0) | 2023.03.20 |
|---|---|
| WordPress wp_head - 새로운 스크립트 파일을 상단에 추가하려면 어떻게 해야 합니까? (0) | 2023.03.20 |
| Jackson Json Ignore를 동적으로 변경 (0) | 2023.03.20 |
| 서버 없이 React 응용 프로그램 실행 (0) | 2023.03.20 |
| WP: wp_enqueue_script에서 버전 번호를 삭제하려면 어떻게 해야 합니까? (0) | 2023.03.20 |