dolthub/dolt

Dolt – Git for Data

Dolt – SQL 데이터를 위한 Git 스타일 버전 관리

개요 – Dolt는 테이블을 Git 리포지토리의 파일처럼 다루는 관계형 데이터베이스(MySQL 호환)입니다. Git에서 사용하는 것과 동일한 명령어를 사용하여 데이터와 스키마 변경 사항을 fork, clone, branch, merge, push, pull 및 commit 할 수 있습니다. 이러한 작업은 명령줄 도구(dolt)나 SQL 시스템 테이블, 함수, 저장 프로시저를 통해 수행됩니다.

중요성 – 기존 데이터베이스는 단일하고 가변적인 상태만을 유지합니다. Dolt는 타임트래블(time-travel) 및 협업 기능을 추가합니다. 모든 변경 사항은 커밋으로 기록되며, 차이점(diffs)을 확인하고, 병합 충돌을 해결하며, 기록의 어느 시점으로든 롤백할 수 있습니다. 이는 협업 분석, 재현 가능한 연구, 그리고 AI에게 중요한 에이전트 메모리(agent memory)(여러 에이전트가 버전 관리되는 공유 지식 베이스가 필요한 경우)와 같은 데이터 중심 워크플로우에 매우 유용합니다.

주요 기능

  • Git 스타일 CLI – init, add, commit, branch, merge, push, pull 등이 파일이 아닌 테이블을 대상으로 작동합니다.
  • SQL 수준의 버전 관리 – dolt_log, dolt_status와 같은 시스템 테이블과 dolt_add, dolt_commit 같은 저장 프로시저를 통해 모든 MySQL 클라이언트에서 동일한 기능을 사용할 수 있습니다.
  • MySQL 호환 서버 – dolt sql-server는 표준 MySQL 포트(3306)에서 실행되며, 모든 MySQL 클라이언트가 연결할 수 있습니다.
  • 완벽한 관계형 기능 – 외래 키, 인덱스, 트리거, 체크 제약 조건, 저장 프로시저 및 최대 12개 테이블의 JOIN을 지원합니다.
  • 호스팅 옵션 – DoltHub를 통한 공개 공유, 자체 호스팅 DoltLab, 또는 완전 관리형 Hosted Dolt를 제공합니다. PostgreSQL 호환 프론트엔드(Doltgres)도 사용 가능합니다.
  • 크로스 플랫폼 설치 – 바이너리(~103 MB), Homebrew, Arch, Chocolatey, Docker 이미지 또는 소스 빌드(Go + cgo)를 지원합니다.

일반적인 워크플로우

  1. dolt init으로 새 리포지토리 생성(데이터베이스용 폴더 생성).
  2. 서버 시작: dolt sql-server.
  3. MySQL 클라이언트로 연결(dolt -u root -p '' sql 또는 표준 mysql 클라이언트).
  4. 일반 SQL로 테이블 생성/수정.
  5. dolt_add(또는 dolt add <tables>)로 변경 사항을 스테이징한 후 dolt_commit -m "msg"로 커밋.
  6. dolt_log, dolt_diff_<table> 또는 dolt_status로 기록을 확인하고 dolt merge로 브랜치를 병합.

프로젝트가 강조하는 사용 사례

  • 협업 데이터 과학 및 분석 파이프라인.
  • 재현 가능한 연구를 위한 버전 관리 데이터셋.
  • 멀티 에이전트 AI 시스템을 위한 에이전트 메모리 저장소(README에서는 "에이전트 메모리를 위한 최고의 데이터베이스"라고 명시).
  • 공개 데이터 공유(예: DoltHub 데이터셋 카탈로그).

시작하기 – 제공된 스크립트, Homebrew, Docker를 통해 설치하거나 바이너리를 다운로드하세요. dolt config로 사용자 이름/이메일을 설정한 다음, README의 퀵스타트를 따라 서버를 실행하고 스키마를 생성하며 커밋과 차이점을 확인해 보세요.


위의 모든 세부 정보는 리포지토리의 README에서 직접 가져온 것이며, 외부의 가정은 포함되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트