RavenDB
RavenDB![]() | |
원저작자 | 오렌 에이니(일명 아옌데 라히엔) |
---|---|
개발자 | 겨울잠을 자는[1] 코뿔소 |
초기 릴리즈 | [2] | 전(
안정된 릴리스 | 5.3 / 2021년 [3] , 전( |
저장소 | |
기입처 | C# |
엔진 | 보론 |
운영 체제 | Windows, Linux, Mac OS, Docker 및 Rasberry[4][5] Pi |
이용가능기간: | 영어 |
유형 | 문서 지향 데이터베이스 |
면허증. | AGPLv3 |
웹 사이트 | ravendb hibernatingrhinos |
RavenDB는 C#으로 작성된 오픈소스 완전 ACID 문서 지향 데이터베이스로 Hibernating Cornes [6][7][8][1][9][10]Ltd에 의해 개발되었습니다.크로스 플랫폼이며 Windows, Linux 및 Mac [6]OS에서 지원됩니다.RavenDB는 데이터를 JSON 문서로 저장하며 마스터 복제를 통해 분산 클러스터에 배포할 수 있습니다.
역사
원래 "Rino DivanDB"[6][11]라고 이름 붙여진 RavenDB는 Oren Eini(일명 Ayende Rahien)[12][13]의 프로젝트로 2008년에 시작되었으며 Hibernating Corons Ltd.[1]에 의해 개발되었습니다.회사에서는 이 데이터베이스가 에서 기본적으로 실행되는 최초의 문서 데이터베이스라고 주장하고 있습니다.NET [14][15][7][16]프레임워크ACID [8][16][17]보증을 제공하는 초기 문서 데이터베이스입니다.
2019년 Hibernating Cirons는 RavenDB [18][19][20]Cloud라는 이름의 클라우드 서비스로 RavenDB를 제공하기 시작했습니다.
버전 이력
버전 | 날짜. | 추가된 기능(부분 목록) |
---|---|---|
1.0 | 2010년 5월[2] | |
2.0 | 2013년 1월[21] | 레플리케이션[22][23] |
2.5 | 2013년 6월[24] | 투영, 면 조회[22] |
3.0 | 2014년 11월[25] | Java API, Voron 스토리지[26][27] 엔진 |
3.5 | 2016년 10월[28] | 클러스터링[28] |
4.0 | 2018년 2월[29] | 크로스 플랫폼이 되어 무료[5] 라이선스로 이용 가능 |
4.1 | 2018년 8월[30] | 클러스터 전체의 트랜잭션[18][30] |
4.2 | 2019년 5월[3] | 그래프[18] 쿼리 |
5.0 | 2020년 7월[31] | 시계열;[32] Zstd 알고리즘을[33] 사용한 데이터 압축 |
5.1 | 2020년 11월[34] | 첨부 [35]파일 인덱싱, 필터링을 통한[36] 허브/싱크 복제 |
5.2 | 2021년 6월[34] | OLAP ETL,[37] 커스텀아나라이저[38] |
5.3 | 2021년 11월[34] | 동시 데이터 서브스크립션,[39] 전력BI[40] 지원 |
- 빨간색: 지원되지 않음
- 녹색: 지원 대상
시스템 아키텍처
데이터는 스키마리스 문서로 JSON [6][11][7][41][22][23][10]형식으로 저장됩니다.문서는 모음으로 그룹화되며, 각 문서는 정확히 하나의 [22][23][42]모음으로 구성됩니다.
다중 마스터 [6][8]복제를 사용하여 분산된 서버 클러스터('노드'라고 함)에 데이터베이스를 배치할 수 있습니다.클러스터 레벨의 일부 조작에서는 노드 과반수의 합의가 필요합니다.합의는 [6]Rachis라고 불리는 Raft 알고리즘의 실장을 사용하여 결정됩니다.태스크는 균형 잡힌 방법으로 [6][43]여러 노드에 분산됩니다.
버전 1.0~3.5는 샤딩을 지원하지만 버전 4.x는 지원하지 않습니다.[6][7][8][22][23]
RavenDB는 원래 ESENT 스토리지 [11][12][23]엔진을 사용했습니다.버전 3.0은 Voron이라는 [26][27]새로운 오픈 소스 스토리지 엔진으로 대체했습니다.
클라이언트는 C#, C++, Java, NodeJS, Python, Ruby 및 [8]Go에서 지원됩니다.
주요 기능
- 클러스터 전체의 ACID 트랜잭션 - 단일 노드 트랜잭션 외에 클러스터 범위에서 ACID 트랜잭션을 실행할 수 있습니다.트랜잭션은 노드 간 합의에 의해 확인된 경우에만 유지되며, 그렇지 않은 경우 트랜잭션은 취소되고 [6][18]롤백됩니다.
- 분산 카운터[44][45]
인덱스 및 쿼리
쿼리는 LINQ 또는 [6][7][8]RQL(Raven Query Language의 약자)이라는 이름의 커스텀쿼리 언어로 SQL과 유사한 구문을 사용하여 표현됩니다.
- 동적 인덱스 - RavenDB에서 쿼리는 인덱스에 의해서만 충족될 수 있습니다.적절한 인덱스가 존재하지 않으면 쿼리를 [6][15][4][22][23][10]충족하기 위해 새로운 인덱스가 생성됩니다.
- 그래프 조회 - 관련 문서는 그래프에서 꼭지점으로 처리되고 연결은 모서리로 처리됩니다.이를 통해 재귀 [44][45][46]쿼리를 만들 수 있습니다.
- Projection - 인덱스를 구성하여 인덱스 [6][8][47]데이터를 변환하고 계산을 수행하며 집계를 수행하며 서버 측에서 JavaScript 코드를 실행할 수 있습니다.
- 전체 텍스트 검색 - 낮은 수준에서 데이터는 Lucene.net으로 인덱싱됩니다. 즉, 인덱스는 전체 텍스트 [6][17][22][23][48][49]검색을 지원합니다.
문서 확장자
문서는 JSON에 적합하지 않은 다른 데이터 유형으로 확장할 수 있습니다.이러한 확장자는 문서 [41]자체와 독립적으로 로드, 수정 및 저장할 수 있습니다.
- 첨부 파일 - 문서에는 이미지, 오디오 또는 순수 [4]바이너리와 같은 모든 데이터 유형의 여러 첨부 파일이 있을 수 있습니다.
- 시계열 - 특정 시간과 관련된 숫자 데이터이며 시간순으로 [33][32]정렬됩니다.
RavenDB 클라우드
RavenDB Cloud는 AWS, Azure 및 GCP에서 2019년에 시작된 관리형 서비스형 데이터베이스(DaaS)입니다.이 서비스는 사용자에 대한 하드웨어 유지보수 및 보안 등의 관리 태스크를 수행합니다.클러스터 내의 여러 노드 간에 CPU 리소스를 공유하여 [18][19][20]슬롯링을 방지합니다.
임베디드 인스턴스
RavenDB는 임베디드 인스턴스로도 실행할 수 있습니다.예를 들어 소규모 애플리케이션이나 개념 증명에 매우 적합합니다.of of Concept)에 매우 적합합니다.
서버에서: 임베디드 인스턴스[50] 실행 페이지: "RavenDB를 사용하면 응용 프로그램에 쉽게 삽입할 수 있습니다.RavenDB Embedded 패키지를 사용하면 몇 가지 간단한 절차로 RavenDB 서버를 통합할 수 있습니다."
라이선스
RavenDB는 AGPLv3 [6]라이선스의 오픈소스입니다무료 라이선스와 상용 라이선스로 이용할 수 있습니다.
레퍼런스
- ^ a b c "Other Vendors to Consider for Operational DBMSs". www.gartner.com. 2018. Retrieved 10 October 2020.
- ^ a b "RavenDB goes live!". ayende.com. 2010. Retrieved 10 October 2020.
- ^ a b "RavenDB 4.2 has been released!". ayende.com. 2019. Retrieved 10 October 2020.
- ^ a b c "RavenDB: Driving DX through DB infrastructure management". ciostory.com. Retrieved 10 October 2020.
- ^ a b "NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar". www.heise.de. 2018. Retrieved 10 October 2020.
- ^ a b c d e f g h i j k l m n "RavenDB". Database of Databases. Retrieved 10 October 2020.
- ^ a b c d e "Raven, a Document Database for .NET". www.infoq.com. 2010. Retrieved 10 October 2020.
- ^ a b c d e f g "RavenDB System Properties". db-engines.com. Retrieved 10 October 2020.
- ^ "Hibernating Rhinos". hibernatingrhinos.com. Retrieved 10 October 2020.
- ^ a b c Kaur, Harpreet, Kamal Jeet Kaur."리뷰:문서 지향 데이터베이스와 그 보안에 대한 연구"국제 컴퓨터 과학 고등 연구 저널 4.8 (2013).
- ^ a b c "Ayende's DivanDB (also, is ESENT the most widely used database engine?)". blogs.msdn.microsoft.com. 2008. Retrieved 10 October 2020.
- ^ a b "Hidden Windows Gems: Extensible Storage Engine". ayende.com. 2008. Retrieved 10 October 2020.
- ^ "Interview with Oren Eini of RavenDB on database management, analytics & security". bigdata-madesimple.com. 2019. Retrieved 10 October 2020.
- ^ "RavenDB Development: Finally, A Solid Document-based Database for Windows?". www.whoishostingthis.com. 2019. Retrieved 10 October 2020.
- ^ a b "NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application". docs.microsoft.com. 2011. Retrieved 10 October 2020.
- ^ a b "Why Raven DB?". dzone.com. 2010. Retrieved 10 October 2020.
- ^ a b "RavenDB vs SQL Server". www.integrace.nl (in Dutch). Retrieved 10 October 2020.
- ^ a b c d e "RavenDB Launches Managed Cloud Service". www.datanami.com. 2019. Retrieved 10 October 2020.
- ^ a b "SD Times news digest: Google robots.text parser open sourced, Bonitasoft's cloud and low-code capabilities, and OWASP ZAP 2.8". sdtimes.com. 2019. Retrieved 10 October 2020.
- ^ a b "RavenDB Adds New Enhancements to Its Cloud-Based Database Service". it.toolbox.com. 2019. Retrieved 10 October 2020.
- ^ "RavenDB 2.0 RTM". ayende.com. 2013. Retrieved 10 October 2020.
- ^ a b c d e f g "RavenDB: A document database for the .NET platform". learning.oreilly.com. Retrieved 10 October 2020.
- ^ a b c d e f g "RavenDB: A document database for the .NET platform". learning.oreilly.com. Retrieved 10 October 2020.
- ^ "RavenDB 2.5 Release Candidate is out". ayende.com. 2013. Retrieved 10 October 2020.
- ^ "RavenDB 3.0 RTM!". ayende.com. 2014. Retrieved 10 October 2020.
- ^ a b "NoSQL for .NET: RavenDB 3.0 Takes Flight". visualstudiomagazine.com. 2014. Retrieved 10 October 2020.
- ^ a b "NoSQL: RavenDB 3.0 erhält weitere Storage Engine". www.heise.de. Retrieved 10 October 2020.
- ^ a b "RavenDB 3.5 RTM released". ayende.com. 2016. Retrieved 10 October 2020.
- ^ "RavenDB 4.0 is out". ayende.com. 2018. Retrieved 10 October 2020.
- ^ a b "RavenDB 4.1 Release Candidate is out". ayende.com. 2018. Retrieved 10 October 2020.
- ^ "RavenDB 5.0 has been released!". ravendb.net. 2020-07-24. Retrieved 10 October 2020.
- ^ a b "RavenDB Adds Time Series Query Support". i-programmer.info. 16 July 2020. Retrieved 10 October 2020.
- ^ a b "RavenDB 5 Improves Distributed Time-Series, Document Compression, and Indexing". infoq.com. Aug 3, 2020. Retrieved 10 October 2020.
- ^ a b c "An Open Source NoSQL Database The History of RavenDB". RavenDB NoSQL Database.
- ^ "RavenDB 5.1 Features: Searching in Office documents". RavenDB NoSQL Database.
- ^ "Filtered Replication NoSQL Database RavenDB NoSQL". RavenDB NoSQL Database.
- ^ "OLTP vs. OLAP Databases: The Challenges of ETL". Datavail. May 21, 2020.
- ^ "NoSQL Database Documentation". RavenDB NoSQL Database.
- ^ "RavenDB 5.3 New Features: Concurrent subscriptions". Ayende @ Rahien.
- ^ "RavenDB Features 5.3: Power BI integration". Ayende @ Rahien.
- ^ a b "A document database for the .NET platform". learning.oreilly.com. Retrieved 10 October 2020.
- ^ "The Design of RavenDB 4.0: The Implications of the Blittable Format". dzone.com. 2016. Retrieved 10 October 2020.
- ^ "Review: NoSQL database RavenDB". techgenix.com. 2019. Retrieved 10 October 2020.
- ^ a b "RavenDB Adds Graph Queries". www.datanami.com. 2019. Retrieved 10 October 2020.
- ^ a b "SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware's acquisition of Bitnami". sdtimes.com. 2019. Retrieved 10 October 2020.
- ^ "RavenDB Features". ravendb.net. Retrieved 10 October 2020.
- ^ "Data Modeling with Indexes in RavenDB". www.codeproject.com. 2019. Retrieved 10 October 2020.
- ^ Stevic, Milorad P. "서비스 지향 아키텍처에서 NoSQL로 문서 관리"온라인 응용 지식 관리 저널(OJAKM) 1.2 (2013): 105-115.
- ^ "Data Points - What the Heck Are Document Databases?". docs.microsoft.com. 2011. Retrieved 10 October 2020.
- ^ "Server: Running an Embedded Instance". Ravendb.net. Retrieved 25 April 2022.