시작하기

이 가이드는 DBX를 설치하고 첫 번째 쿼리를 실행하는 데 도움을 줍니다.

목차

  1. 설치
    1. Rust
    2. .NET (C#, VB.NET, F#)
  2. 기본 사용법
    1. 데이터베이스 열기
    2. CRUD 작업
      1. 삽입 (Insert)
      2. 조회 (Get)
      3. 삭제 (Delete)
      4. 개수 확인 (Count)
  3. MVCC 트랜잭션
  4. SQL 쿼리
  5. 암호화
    1. 키 교체 (Key Rotation)
  6. GPU 가속 (선택 사항)
  7. 다음 단계

설치

Rust

Cargo.toml에 DBX를 추가하세요:

[dependencies]
dbx-core = "0.0.6-beta"

.NET (C#, VB.NET, F#)

NuGet을 통해 설치하세요:

dotnet add package DBX.Client

기본 사용법

데이터베이스 열기

use dbx_core::Database;

// 인메모리 데이터베이스
let db = Database::open_in_memory()?;

// 영구 저장 데이터베이스
let db = Database::open("./mydata")?;

CRUD 작업

삽입 (Insert)

db.insert("users", b"user:1", b"Alice")?;
db.insert("users", b"user:2", b"Bob")?;

조회 (Get)

let value = db.get("users", b"user:1")?;
assert_eq!(value, Some(b"Alice".to_vec()));

삭제 (Delete)

db.delete("users", b"user:1")?;

개수 확인 (Count)

let count = db.count("users")?;
println!("Total users: {}", count);

MVCC 트랜잭션

DBX는 스냅샷 격리(Snapshot Isolation) 기능이 포함된 ACID 트랜잭션을 지원합니다:

use dbx_core::Database;

let db = Database::open("./data")?;

// 트랜잭션 시작
let tx = db.begin_transaction()?;

// 스냅샷 격리를 통한 일관된 읽기
tx.insert("users", b"user:3", b"Charlie")?;
tx.insert("users", b"user:4", b"David")?;

// 커밋 (또는 롤백)
tx.commit()?;

SQL 쿼리

DBX는 표준 SQL 쿼리를 지원합니다:

use dbx_core::Database;
use arrow::array::{Int32Array, RecordBatch};
use arrow::datatypes::{DataType, Field, Schema};
use std::sync::Arc;

let db = Database::open_in_memory()?;

// 테이블 스키마 생성
let schema = Arc::new(Schema::new(vec![
    Field::new("id", DataType::Int32, false),
    Field::new("age", DataType::Int32, false),
]));

// 데이터 생성
let batch = RecordBatch::try_new(
    schema.clone(),
    vec![
        Arc::new(Int32Array::from(vec![1, 2, 3])),
        Arc::new(Int32Array::from(vec![25, 30, 35])),
    ],
).unwrap();

// 테이블 등록
db.register_table("users", vec![batch]);

// SQL 실행
let results = db.execute_sql("SELECT id, age FROM users WHERE age > 28")?;

암호화

DBX는 AES-256-GCM-SIV 및 ChaCha20-Poly1305 암호화를 지원합니다:

use dbx_core::Database;
use dbx_core::storage::encryption::EncryptionConfig;

// 암호화된 데이터베이스 생성
let enc = EncryptionConfig::from_password("my-secret-password");
let db = Database::open_encrypted("./secure-data", enc)?;

// 일반적인 사용
db.insert("secrets", b"key1", b"sensitive-data")?;

키 교체 (Key Rotation)

// 암호화 키 교체
let new_enc = EncryptionConfig::from_password("new-password");
let count = db.rotate_key(new_enc)?;
println!("교체된 레코드 수: {}", count);

GPU 가속 (선택 사항)

Cargo.toml에서 GPU 기능을 활성화하세요:

[dependencies]
dbx-core = { version = "0.0.6-beta", features = ["gpu"] }

GPU 가속 사용:

let db = Database::open_in_memory()?;

// ... 데이터 등록 ...

// GPU 캐시 동기화
db.sync_gpu_cache("users")?;

// GPU 가속 작업
if let Some(gpu) = db.gpu_manager() {
    let sum = gpu.sum("users", "age")?;
    let filtered = gpu.filter_gt("users", "age", 30)?;
}

다음 단계


Copyright © 2026 ByteLogicCore. MIT OR Apache-2.0 License.

This site uses Just the Docs, a documentation theme for Jekyll.