• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

litestream

date: 2022-06-25 excerpt: litestreamの概要と使い方

tag: litestreamsqlites3


litestreamの概要と使い方

概要

  • /sqlite/のデータをS3にstreamデータでレプリケーションするdaemon
  • 画期的な点として、cloudfloreのS3互換バケットなどがあれば、低遅延でユーザサイド(または、物理的にユーザの近くのサーバ)にDBを持たせることが可能になる
    • 中央集権型のデータベースの終焉の可能性

インストール

$ go install github.com/benbjohnson/litestream/cmd/litestream@latest

使用例

minioでテストバケットを作成

$ minio server minio-test --address ":9000" --console-address ":9001"
$ mc alias set localhost http://localhost:9000 minioadmin minioadmin
$ mc mb localhost/test
  • /minio/の詳しい使い方は専用のページを参照

sqliteでテスト用のテーブルを作成

$ sqlite3 fruits.db
CREATE TABLE fruits (name TEXT, color TEXT);
INSERT INTO fruits (name, color) VALUES ('apple', 'red');
INSERT INTO fruits (name, color) VALUES ('banana', 'yellow');

litestreamでバックアップ

$ export LITESTREAM_ACCESS_KEY_ID=minioadmin
$ export LITESTREAM_SECRET_ACCESS_KEY=minioadmin
$ litestream replicate fruits.db s3://test.localhost:9000/fruits.db
  • testにsqliteの内容がstreamで書き込まれていることを確認できる

S3からDBのリストア

$ litestream restore -o fruits2.db s3://test.localhost:9000/fruits.db
  • fruits2.dbという名前でS3から復元される

リストアしたDBの内容の確認

$ sqlite3 fruits2.db 'SELECT * FROM fruits'
apple|red
banana|yellow

参考

  • litestream.io/getting-started/
  • Litestream をさくらのオブジェクトストレージで試してみた


litestreamsqlites3 Share Tweet