시작하기

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

목차

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

설치

Rust

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

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

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

NuGet을 통해 설치하거나 dbx-csharp 바인딩을 사용하세요:

dotnet add package DBX.Client

예제 실행 (Examples)

v0.2.0부터 모든 예제는 dbx-examples 패키지로 분리되었습니다. 다음 명령어로 실행해 볼 수 있습니다:

# 기본 퀵스타트 예제 실행
cargo run -p dbx-examples --example quick_start

# 분산 그리드 서버 실행 예제
cargo run -p dbx-examples --example distributed_grid

# 5-Tier 티어링 대규모 데이터 예제
cargo run -p dbx-examples --example storage_tiering

기본 사용법

데이터베이스 열기

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")?;

GPU 가속 (선택 사항)

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

[dependencies]
dbx-core = { version = "0.2.0-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.