mygems

CSVファイルにSQLを実行

データベースを入れずに、ファイルへ本物のSQLを。

  • フィルター欄ではなく本物のSQL
  • GROUP BY、JOIN、ウィンドウ関数
  • データベースのインストール不要
  • アップロードなし

CSVまたはTSV。ここにドラッグするか、ファイルを選択してください。

作った理由

CSVを検索する定番の方法は、まずデータベースに取り込むことですが、最初の質問をするまでに3段階の準備が必要です。このツールはSQLエンジン(WebAssemblyにコンパイルしたDuckDB)をブラウザのタブの中で動かすので、ファイルを入れた瞬間にクエリできるテーブルになります。

できること

  • ファイルを`csv`という名前のテーブルとして登録し、クエリできます。
  • DuckDBのSQLをフルに利用可能: WHERE、GROUP BY、HAVING、ORDER BY、JOIN、CTE、ウィンドウ関数。
  • 列名と型は自動で推定され、入力前に一覧で確認できます。
  • エラーはエンジンのメッセージをそのまま表示するので、打ち間違いも原因がわかります。

なぜDuckDBか

DuckDBは単一のプロセスで動く分析用データベースで、WebAssemblyにコンパイルできます。つまり、サーバーでファイルを検索するのと同じエンジンを、タブの中で動かせるということです。ファイルは参照として登録され、クエリが必要とする分だけ読み込まれます。

よくある質問

どのSQL方言ですか?
DuckDBのSQLで、PostgreSQLに近い書き方です。集計、JOIN、CTE、ウィンドウ関数が使えます。ディスクへの書き込みを伴う操作は、ディスクがないため使えません。
テーブル名は何ですか?
`csv`です。そのため`SELECT * FROM csv LIMIT 10`は、いつでも最初のクエリとして使えます。列名は見出し行から取られ、エディタの上に表示されます。
クエリのためにファイルがサーバーに送られますか?
いいえ。データベースエンジンがブラウザにダウンロードされ、クエリはブラウザ内で実行されます。ファイルはディスクから読み込まれ、外へ出ることはありません。