Open4

DuckDB メモ

voluntasvoluntas

モチベーション

  • JSONL を読み込んで解析するツールが欲しかった
    • ログを読み込ませたいので圧縮機能は必須
  • 自社のパッケージ製品が出力する JSONL を読み込んで解析できる仕組み
    • 顧客が問題解析を気軽にできるようにしたい
  • 顧客向けツールとして提供したい
    • つまり顧客環境で動かしたい
  • 1 バイナリ
  • OSS として提供したい
    • Apache-2.0 として公開したい
  • ログファイルは大きくても 100 GB は行かない
  • もともと Go + SQLite + JSONB で検討していた
  • SQL で書きたい
  • SQLite ファイルとして書き出したい
    • SQLite ファイルフォーマットは信頼できる
    • S3 などにファイルを置いておくだけにしたい

クラウド版に組み込みたい

  • 顧客毎に duckdb ファイル作ればいいのでは?
  • duckdb ファイルダウンロードできると便利そう

DuckDB

voluntasvoluntas

S3 から直接読み込める

  • Cloudflare R2
  • ローカルの自社製品の開発用の debug.jsonl をアップロード 20 MB
  • SELECT * FROM read_json_auto("s3://duckdb/debug.jsonl");
    • duckdb は bucket 名

Image from Gyazo

DuckDB の設定

R2 を利用しているので s3_endpoint の設定が必須。

D load httpfs
D load aws;
D SET s3_access_key_id = '<access_key_id>';
D SET s3_secret_access_key = '<secret_access_key>';
D SET s3_endpoint='<account_id>.r2.cloudflarestorage.com';