> 백엔드 개발 > 파이썬 튜토리얼 > Jinbase – 다중 모델 트랜잭션 내장형 데이터베이스

Jinbase – 다중 모델 트랜잭션 내장형 데이터베이스

Susan Sarandon
풀어 주다: 2024-12-04 13:06:10
원래의
747명이 탐색했습니다.

Jinbase – Multi-model transactional embedded database

안녕하세요 개발자!

저는 기술 매니아인 알렉스입니다. 다중 모델 트랜잭션 내장 데이터베이스인 Jinbase를 선보이게 되어 기쁩니다.

약 1년 전 저는 다중 형식 스트리밍 직렬화에 대한 저의 견해인 Paradict를 소개했습니다. 가독성을 고려하면 Paradict 텍스트 형식은 사실상 구성 파일에 대한 흥미로운 데이터 형식으로 나타납니다. 그러나 Paradict를 사용하여 구성 파일을 관리하면 프로그래밍 인터페이스가 복잡해지고 구성 파일 전용 대체 라이브러리(TOML, INI 파일 등)를 선택하는 사용자에게 혼란을 줄 수 있습니다. 그래서 섹션이 있는 구성 파일에 초점을 맞춘 새로운 프로젝트인 KvF(키-값 파일 형식)에 대한 종속성으로 Paradict를 사용했습니다.

간단한 바이너리 형식을 사용하는 Paradict는 I/O 기능(예: 열기, 읽기, 쓰기, 탐색, 말하기, 닫기)을 사용하여 최소한의 신뢰성을 구현하는 새 프로젝트에 효율적인 종속성이 될 것이라고 생각했습니다. 지속성 솔루션. 하지만 그것은 "파일이 어렵다"는 것을 알기 전이었습니다. 트랜잭션, BLOB 데이터 유형 및 BLOB용 증분 I/O를 갖춘 SQLite는 내 새 프로젝트에 딱 맞는 거물처럼 보였습니다.

Jinbase는 키-값 저장소로 작게 시작하여 일반적으로 SQLite로 수행하는 작업의 경계를 넓히는 다중 모델 내장형 데이터베이스로 발전했습니다. 두 번째 데이터 모델(디포)로의 첫 번째 전환은 키-값 저장소가 각각의 새 레코드에 대해 고유 식별자(UID)가 자동으로 생성되어 사용자에게 절약되는 경우에 적합하지 않다는 것을 깨달았을 때 발생했습니다. 실수로 충돌이 발생하여 기존 레코드를 덮어쓸 수 있는 식별자를 제공해야 하는 부담이 있습니다. 그런 다음 디포 저장소의 UID 범위, 디포 및 키-값 저장소 모두의 시간 범위(레코드에 자동으로 타임스탬프가 지정됨), 키-값 저장소의 문자열 및 정수 키에 대한 GLOB 패턴 및 숫자 범위를 허용하는 검색 기능을 구현했습니다. .

큐 및 스택 데이터 모델은 레코드를 특정 순서로 소비해야 하는 사용 사례에 대한 솔루션으로 등장했습니다. 일반적인 기록은 단일 트랜잭션 단위로 데이터베이스에서 검색 및 삭제됩니다.

SQLite를 스토리지 엔진으로 사용하기 때문에 Jinbase는 사실상 관계형 모델을 지원합니다. 편의를 위해 Jinbase 내부와 관련된 모든 테이블에는 jinbase_라는 접두사가 붙습니다. 따라서 Jinbase는 레거시 SQLite 파일을 열어 임시 관계형 모델과 안전하게 공존할 수 있는 새로운 데이터 모델을 추가하는 데 유용한 도구입니다.

네 가지 주요 데이터 모델(키-값, 저장소, 대기열, 스택) 모두 사전, 문자열, 이진 데이터, 정수, 부울, 날짜/시간 등과 같은 Paradict 호환 데이터 유형을 지원합니다. 쓰기 작업을 시작하고 Jinbase는 데이터를 직렬화(바이너리 데이터 제외)하고 청크하고 반복적으로 저장합니다. 레코드는 대량으로 액세스할 수 있을 뿐만 아니라 바이트 수준과 필드 수준의 두 가지 부분 액세스 세부 수준을 통해 액세스할 수도 있습니다.

SQLite의 BLOB용 증분 I/O는 행의 개별 BLOB 열을 대상으로 설계되었지만 Jinbase는 이를 확장하여 각 레코드에 대해 증분 읽기가 마치 단일 통합 BLOB인 것처럼 모든 청크를 포괄합니다. 사전 레코드의 경우에만 Jinbase는 루트 필드에 대한 포인터로 구성된 경량 인덱스를 자동으로 생성 및 유지 관리합니다. 이를 통해 반환되기 전에 자동으로 역직렬화된 필드의 내용을 임의의 레코드에서 추출할 수 있습니다.

Jinbase의 가장 확실한 사용 사례는 사용자 기본 설정 저장, 종료 전 세션 데이터 유지, 데이터 스트림의 주문 기반 처리, 다른 프로세스에 대한 데이터 노출, 새로운 데이터 모델로 레거시 SQLite 파일 업그레이드 및 맞춤형 데이터 지속성 솔루션입니다.

Jinbase는 Python으로 작성되었으며 PyPI에서 사용할 수 있으며 README에서 예제를 사용해 볼 수 있습니다.

이 프로젝트에 대해 어떻게 생각하는지 알려주세요.

프로젝트 링크: https://github.com/pyrustic/jinbase

위 내용은 Jinbase – 다중 모델 트랜잭션 내장형 데이터베이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿