Oracle NoSQL 데이터베이스
Oracle NoSQL Database| 개발자 | 오라클 코퍼레이션 |
|---|---|
| 초기 릴리즈 | 2011년 9월, 전( |
| 안정된 릴리스 | 19.5 / 2019년 11월 19일( |
| 기입처 | 자바 |
| 이용가능기간: | 영어 |
| 유형 | NoSQL |
| 면허증. | Apache License 2.0(CE) 및 독점(EE) |
| 웹 사이트 | oracle |
Oracle NoSQL Database(ONDB)는 Oracle [1][2][3][4]Corporation에서 제공하는 NoSQL 유형의 분산 키-값 데이터베이스입니다.데이터 조작, 수평 확장성, 간단한 관리 및 모니터링을 위한 트랜잭션 의미론을 제공합니다.
Oracle은 2018년 8월 10일 Oracle Autonomous NoSQL Database Cloud(OANDC)를 출시했습니다.OANDC는 짧은 지연 시간, 유연한 데이터 모델 및 동적 워크로드를 위한 유연한 확장이 필요한 애플리케이션을 위한 관리형 클라우드 서비스입니다.
개발자는 백엔드 서버, 스토리지 확장, 클러스터 구현, 토폴로지, 소프트웨어 설치/패치/업그레이드, 백업, 운영 체제 및 가용성을 관리하는 대신 애플리케이션 개발 및 데이터스토어 요건에 초점을 맞춥니다.OANDC는 동적 애플리케이션 워크로드 및 스루풋 요구사항을 충족하도록 확장됩니다.
사용자는 애플리케이션 데이터를 저장하고 데이터베이스 작업을 수행하기 위한 테이블을 만듭니다.OANDC 테이블은 프로비저닝된 쓰기 단위, 읽기 단위 및 스토리지 용량을 포함한 추가 속성을 가진 관계형 테이블과 유사합니다.사용자는 예상되는 워크로드를 기반으로 각 테이블의 처리량과 스토리지 용량을 프로비저닝합니다.OANDC 리소스는 워크로드 요건에 맞게 할당 및 확장됩니다.사용자는 프로비저닝된 용량에 따라 매시간 과금됩니다.
OANDC는 표 형식의 모델을 지원합니다.각 행은 응용 프로그램에 의해 해석되는 임의의 길이의 고유 키로 식별되며 값이 있습니다.응용 프로그램은 트랜잭션의 단일 행을 조작(삽입, 삭제, 업데이트, 읽기)할 수 있습니다.응용 프로그램은 데이터베이스의 모든 행에 대해 트랜잭션 없이 반복 스캔을 수행할 수도 있습니다.
라이선스
Oracle Corporation은 Oracle NoSQL 데이터베이스를 다음 세 가지 에디션으로 배포합니다.
- Apache 라이센스 버전 2.0의 Oracle NoSQL Database Server Community Edition
- Oracle 상용 라이선스의 Oracle NoSQL Enterprise Edition
- Oracle NoSQL Basic Edition
Oracle NoSQL Database는 프리미엄 모델을 사용하여 라이센스가 부여됩니다.Oracle NoSQL Community Edition의 오픈 소스 버전을 사용할 수 있지만 최종 사용자는 Oracle [5]Store를 통해 추가 기능과 지원을 구입할 수 있습니다.Oracle Enterprise Manager 또는 Oracle Cohence와 같은 다른 Oracle 제품과 통합할 경우 Oracle NoSQL Enterprise Edition을 구입해야 합니다.
Oracle NoSQL Database Basic [6]Edition은 고객이 Oracle Database Enterprise Edition(DPE) 버전 11g 또는 12c 라이센스를 구입했거나 구입한 경우 Oracle NoSQL Database Basic Edition을 다운로드하여 사용할 수 있습니다.Oracle NoSQL Database Basic Edition 지원은 DBE 지원 계약의 일부로 포함됩니다.
Apache 2.0 라이센스에 따라 라이센스가 부여된 Oracle NoSQL Database [7]드라이버는 커뮤니티 에디션과 엔터프라이즈 [8]에디션 모두에서 사용됩니다.
주요 기능
아키텍처
Oracle NoSQL Database는 Oracle Berkeley DB Java Edition 고가용성 스토리지 엔진을 기반으로 구축되었습니다.또한 서비스를 추가하여 대용량의 대기 시간에 민감한 애플리케이션에 [9]적합한 고가용성(HA) 키/값 저장소를 제공합니다.
샤딩 및 레플리케이션
Oracle NoSQL Database는 클라이언트-서버, 샤드된 공유 없음 시스템입니다.각 샤드의 데이터는 샤드를 구성하는 각 노드에 복제됩니다.애플리케이션 개발자에게 단순한 키-밸류 패러다임을 제공합니다.레코드의 주요 키는 레코드가 속한 샤드를 식별하기 위해 해시됩니다.Oracle NoSQL Database는 추가 하드웨어 가용성에 따라 동적으로 샤드 수를 변경할 수 있도록 설계되었습니다.샤드 수가 변경되면 키와 값의 쌍이 시스템을 셧다운하고 재시작할 필요 없이 새로운 샤드세트로 동적으로 재배포됩니다.샤드는 읽기 및 쓰기 요청을 처리하는 단일 선택 가능한 마스터 노드와 읽기 요청을 처리할 수 있는 여러 복제본(일반적으로 두 개 이상)으로 구성됩니다.복제본은 스트리밍 복제를 사용하여 최신 상태로 유지됩니다.마스터 노드의 각 변경은 디스크에 로컬로 커밋되며 복제본에도 전파됩니다.
고가용성 및 폴트 톨러런스
Oracle NoSQL Database는 싱글 마스터,[10] 멀티 리플리카 데이터베이스 복제를 제공합니다.트랜잭션 데이터는 트랜잭션별로 유연한 내구성 정책을 통해 모든 복제본 노드에 전달됩니다.마스터 복제 노드에 장애가 발생할 경우 합의 기반 PAXOS 기반 자동 페일오버 선택 프로세스를 통해 다운타임을 최소화합니다.장애가 발생한 노드는 복구되는 즉시 샤드에 다시 가입하여 업데이트한 후 읽기 요청을 처리할 수 있습니다.따라서 Oracle NoSQL Database 애플리케이션은 샤드 내의 노드 장애 및 개별 샤드 내의 노드 장애도 여러 번 허용할 수 있습니다.
Oracle NoSQL Database에 의해 서버 하드웨어(랙 및 상호접속 스위치)에 마스터 및 복제본을 적절히 배치하는 것은 상용 서버에서의 가용성을 높이는 것을 목적으로 합니다.
투과적인 로드밸런싱
Oracle NoSQL Database[11] Driver는 데이터를 실시간으로 분할하여 스토리지 노드에 균등하게 분산합니다.네트워크 토폴로지 및 레이텐시 인식 읽기 및 쓰기 작업을 가장 적절한 스토리지 노드에 라우팅하여 로드 분산 및 성능을 최적화합니다.
관리 및 시스템 감시
Oracle NoSQL Database의 관리 서비스는 웹 콘솔 또는 명령줄 인터페이스에서 액세스할 수 있습니다.이 서비스는 구성 파일, 셸 스크립트 또는 명시적인 데이터베이스 작업 없이 스토리지 노드를 구성, 시작, 중지 및 모니터링하는 기능과 같은 기능을 지원합니다.이를 통해 Java Management Extensions(JMX) 또는 SNMP(Simple Network Management Protocol) 에이전트를 모니터링에 사용할 수 있습니다.이를 통해 관리 클라이언트는 스토리지 노드 및 관리 [12]서비스의 상태, 성능 메트릭 및 운영 매개 변수에 대한 정보를 폴링할 수 있습니다.
유연한 구성
「탄력성」이란, 도입된 클러스터의 [13]동적인 온라인 확장을 의미합니다.스토리지 노드를 추가하면 용량, 성능 및 신뢰성이 향상됩니다.Oracle NoSQL Database에는 관리자가 데이터베이스가 온라인 상태일 때 NoSQL 데이터베이스의 구성을 수정할 수 있는 토폴로지 계획 기능이 포함되어 있습니다.관리자는 다음 작업을 수행할 수 있습니다.
- 클러스터 내의 샤드 수를 증가시켜 쓰기 스루풋을 증가시킴으로써 데이터 분배를 향상시킵니다.
- 레플리케이션 팩터 향상: 각 샤드에 추가 레플리케이션 노드를 할당함으로써 읽기 스루풋과 시스템 가용성이 향상됩니다.
- 데이터스토어 재조정: 스토리지 노드의 용량을 수정하여 시스템을 재조정하고 필요에 따라 복제 노드를 스토리지[14] 노드에 다시 할당할 수 있습니다.
관리자는 레플리케이션 노드 및/또는 파티션을 사용률이 높은 노드에서 사용률이 낮은 스토리지 노드로 또는 그 반대로 이동할 수 있습니다.
멀티존 도입
Oracle NoSQL Database는 여러 존을 지원하여 프로세스와 데이터의 리플리케이션을 인텔리전트하게 할당함으로써 하드웨어, 네트워크 및 전원 관련 장애 모드에서의 신뢰성을 향상시킵니다.두 가지 유형의 존이 있습니다.프라이머리 존에는 마스터 또는 레플리카로 기능할 수 있는 노드가 포함되어 있으며 일반적으로 고속 인터커넥트로 연결됩니다.보조 영역에는 복제본으로만 사용할 수 있는 노드가 있습니다.세컨더리 존을 사용하면 멀리 있는 데이터에 대한 짧은 레이텐시 읽기 액세스를 제공하거나 분석, 보고서 생성, 데이터 교환 등의 읽기 전용 워크로드를 오프로드하여 워크로드 관리를 개선할 수 있습니다.
JSON 데이터 형식
Oracle NoSQL Database는 스키마 기반의 컴팩트한 바이너리 데이터 형식을 제공하는 Avro 데이터 직렬화를 지원합니다[15].스키마는 JSON을 사용하여 정의됩니다.Oracle NoSQL Database는 스키마 진화를 지원합니다.구성 가능한 스마트 토폴로지 시스템 관리자는 특정 스토리지 노드에서 사용 가능한 용량을 표시하므로 더 많은 기능을 갖춘 노드가 여러 복제 노드를 호스트할 수 있습니다.시스템에서 구성의 스토리지 노드의 용량을 파악하면 자동으로 복제 노드를 지능적으로 할당합니다.이는 보다 나은 로드 밸런싱, 시스템 리소스 사용 및 스토리지 노드 장애 시 시스템에 미치는 영향을 최소화하기 위한 것입니다.스마트 토폴로지는 데이터 센터를 지원하므로 완전한 복제 세트가 각 데이터 센터에 처음 할당됩니다.
온라인 롤링 업그레이드
Oracle NoSQL Database는 롤링 업그레이드를 수행할 수 있는 기능을 제공하여 데이터베이스를 사용 [16]가능한 상태로 시스템 관리자가 클러스터 노드를 업그레이드할 수 있도록 합니다.
폴트 톨러런스
Oracle NoSQL 데이터베이스는 CAP에서 C/[17]P 또는 A/P로 구성할 수 있습니다.특히 쓰기가 모든 복제본에 동기화되도록 구성된 경우 CAP의 C/P가 됩니다. 즉, 파티션 또는 노드 장애로 인해 시스템을 쓰기에 사용할 수 없게 됩니다.복제가 비동기적으로 수행되고 모든 복제본에서 읽기가 처리되도록 구성된 경우 CAP에서는 A/P가 됩니다. 즉, 시스템을 항상 사용할 수 있지만 일관성이 보장되지 않습니다.
데이터베이스 기능
테이블 데이터 모델
릴리스 3.0에서는 표 형식의 데이터 구조가 도입되어 기존의 스키마 설계 개념을 활용하여 애플리케이션 데이터 모델링을 단순화합니다.테이블 모델은 분산된 키-값 구조 위에 계층화되어 모든 장점을 계승하고 익숙한 SQL 기반 애플리케이션과 심리스하게 통합함으로써 애플리케이션 설계를 단순화합니다.
이차 지수
프라이머리 키만을 기반으로 한 인덱스는 저지연 액세스 경로의 수를 제한합니다.특정 애플리케이션 요건을 지원하기 위해 비프라이머리 키 기반 경로가 필요할 수 있습니다.OND는 임의의 [18]값 필드에서 secondary 인덱스를 지원합니다.
대규모 객체 지원
Oracle NoSQL Database EE Stream 기반 API를 사용하면 전체 파일을 메모리로 구현하지 않고도 오디오 및 비디오 파일과 같은 LOB(대형 객체)를 읽고 쓸 수 있습니다.이는 다양한 크기의 [19]객체가 혼합된 워크로드에서 작업 지연 시간을 줄이기 위한 것입니다.
산 준거 트랜잭션
Oracle NoSQL Database는 CRUD(Create, Read, Update and Delete) 전체 작업을 위한 ACID 호환 트랜잭션을 제공하며, 조정 가능한 내구성 및 일관성 트랜잭션 보증을 제공합니다.영향을 받는 모든 레코드가 같은 메이저키 [20]경로를 공유하고 있는 한 일련의 조작은 단일 원자 유닛으로 동작할 수 있습니다.
통합
Oracle NoSQL Database에는 Java, C, Python, C# 및 REST API 지원이 포함되어 있습니다.이를 통해 응용 프로그램 개발자는 CRUD 작업을 수행할 수 있습니다.이러한 라이브러리에는 Avro 지원이 포함되어 있어 개발자는 C와 Java 애플리케이션 간에 [21]키 값 레코드를 시리얼화하고 키 값 레코드를 시리얼화 해제할 수 있습니다.
Oracle RESTful 서비스
Oracle NoSQL 데이터베이스는 Oracle REST Data Services(ORD)[22]를 지원합니다.이를 통해 고객은 Oracle Database 또는 OND의 데이터에 액세스할 수 있는 REST 기반 애플리케이션을 구축할 수 있습니다.
GeoJSON
RFC7946 준거 GeoJSON 데이터에 대한 공간 쿼리를 지원합니다.GeoJSON 데이터에 대한 공간 기능 및 색인이 지원됩니다.
Apache Hadoop
KVAvroInputFormat 및 KVInputFormat[23] 클래스는 OND에서 Hadoop MapReduce 작업으로 데이터를 기본적으로 읽을 수 있습니다.이 클래스의 한 가지 용도는 Oracle Loader for [24]Hadoop에서 NoSQL 데이터베이스 레코드를 읽는 것입니다.
Oracle 통합
Oracle 빅데이터 SQL 및 Hive
Oracle Big Data SQL은 Hadoop, HDFS, Hive 및 OND에 저장된 데이터에 대한 일반적인 SQL 액세스 계층입니다.이를 통해 고객은 Hive 또는 Oracle Database에서 Oracle NoSQL Data를 쿼리할 수 있습니다.사용자는 안전한 액세스를 위해 구성된 OND에 저장된 데이터에 대해 MapReduce 작업을 실행할 수 있습니다.최신 릴리스는 원시 및 복잡한 데이터 유형도 모두 지원합니다.
Oracle 데이터베이스
Oracle NoSQL Database EE는 외부 테이블을 지원하므로 Select, Select Count(*) 등의 SQL 문을 사용하여 Oracle 데이터베이스에서 Oracle NoSQL 데이터를 가져올 수 있습니다.외부 테이블을 통해 NoSQL 데이터가 노출되면 표준 JDBC 드라이버를 통해 데이터에 액세스하거나 엔터프라이즈 비즈니스 인텔리전스 도구를 통해 시각화할 수 있습니다.
기타 Oracle 제품
Oracle Event Processing(OEP)은 NoSQL Database 카트리지를 통해 Oracle NoSQL Database에 대한 읽기 액세스를 제공합니다.카트리지가 구성되면 CQL 쿼리를 사용할 수 있습니다.Oracle Semantic Graph에는 대량의 RDF 데이터(트리플릿/쿼드러플릿)를 저장할 수 있는 Oracle[25] NoSQL 데이터베이스용 Jena 어댑터가 포함되어 있습니다.이 어댑터를 사용하면 SPARQL 쿼리를 통해 OND에 저장된 그래프 데이터에 빠르게 액세스할 수 있습니다.오라클 일관성과의 통합을 통해 OND를 오라클 일관성 애플리케이션의 캐쉬로 사용할 수 있으므로 애플리케이션이 OND에서 캐시된 데이터에 직접 액세스할 수 있습니다.
엔터프라이즈 보안
Oracle NoSQL Database EE는 OS에 의존하지 않는 클러스터 전체의 암호 기반 사용자 인증 및 Oracle Wallet 통합을 지원하며 중요한 데이터에 대한 무단 액세스로부터 더욱 강력한[26] 보호를 제공합니다.또한 세션 수준의 SSL(Secure Sockets Layer) 암호화 및 네트워크 포트 제한으로 네트워크 침입으로부터 보호 기능이 향상됩니다.
릴리스 업데이트
OND 버전 4.0 – 신기능 :
- 풀 텍스트 검색 – Elastic Search.
- 존속 가능 시간– "기한이 지난" 데이터의 효율적인 에이징 아웃 – 일반적인 IoT 요건.
- SQL Query – 선언형 쿼리 언어.
- Predicate Pushdown – NoSQL Database 노드의 빅데이터 SQL에서 술어를 처리할 수 있으며 술어에 실패한 데이터를 전달하지 않고 성능과 확장성을 향상시킬 수 있습니다.
- Import/Export – Oracle NoSQL Database 스토어 간에 데이터 백업/복원 또는 데이터 이동이 용이합니다.
성능
Oracle NoSQL Database 팀은 Intel 및 [27]Cisco를 포함한 여러 주요 Oracle 파트너와 협력하여 Yahoo!를 수행하고 있습니다. 다양한 하드웨어 구성에 대한 클라우드 서비스 벤치마크(YCSB)와 그 결과를 공개했습니다.예를 들어 2012년에 Oracle은 Oracle NoSQL Database가 혼합 YCSB Ops/[28]sec 100만 개를 초과했다고 보고했습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Oracle NoSQL Database Technical Overview". www.oracle.com.
- ^ "Oracle NoSQL Database Performance Tests".
- ^ Wayner, Peter (16 November 2011). "First look: Oracle NoSQL Database".
- ^ Wolfe, Alexander. "Do You Know NoSQL?". Forbes.
- ^ "Oracle Store". shop.oracle.com.
- ^ "Oracle NoSQL Basic Edition". blogs.oracle.com.
- ^ "Oracle NoSQL Database Downloads". www.oracle.com.
- ^ "Oracle NoSQL Database 12c Release 2 (12.2.4.5)". docs.oracle.com.
- ^ ""Oracle NoSQL Database White Paper"" (PDF).
- ^ "Chapter 1. Introduction to Oracle NoSQL Database". docs.oracle.com.
- ^ 인텔리전트 드라이버
- ^ "Oracle NoSQL Database Administration". www.oracle.com. Retrieved 2019-04-15.
- ^ "Elastic Expansion". www.oracle.com.
- ^ "Storage Nodes".
- ^ "Chapter 8. Avro Bindings". docs.oracle.com.
- ^ "Rolling Upgrade". www.oracle.com.
- ^ Abadi, Daniel (4 October 2011). "DBMS Musings: Overview of the Oracle NoSQL Database".
- ^ "Oracle NoSQL Database 3.0 Supports Table Data Model and Secondary Indexing". InfoQ.
- ^ "Large Object Support". www.oracle.com.
- ^ "Oracle NoSQL Database transactions". www.oracle.com.
- ^ "Oracle NoSQL Database API". www.oracle.com.
- ^ 비교:
- ^ "Oracle NoSQL Database API". docs.oracle.com.
- ^ "Using Oracle NoSQL Database with Hadoop". www.oracle.com.
- ^ "Oracle Semantic Technologies Downloads". www.oracle.com.
- ^ "Oracle NoSQL Database 3.0 Ups Security and Performance". www.dbta.com. April 2, 2014.
- ^ "Cisco Data Center" (PDF). Cisco.
- ^ 2015-05-20 Wayback Machine에서 아카이브된 "Oracle NoSQL Database Exceeds Million Mixed YCSB Ops/sec"