🦔
【DuckDB】CSVをSQLライクに操作する
CSVデータを扱うときに、Excelでフィルタリングするだけでなくもっと柔軟に検索したり、計算したりしたいと思ったことはありませんか。
この記事では、CSVファイルをDuckDBを用いてSQLライクに操作する方法をまとめます。
DuckDBとは
DuckDBは分析処理用のDBシステムです。
インストール
Mac/Linuxでは以下のコマンドを実行すればインストールできます。
curl https://install.duckdb.org | sh
Windowsでは以下のページから実行ファイルをダウンロードしてください。
DuckDBを使う
DuckDBはCLIでも利用できますが、Webブラウザ上で操作できるDuckDB Local UIを利用すると便利です。次のコマンドで起動します。
duckdb -ui
CSVを操作する
ここではサンプルとして、東京都が提供するCSVを利用します。
時系列データの「第1表 区市町村別世帯数(昭和60年~令和7年)」のCSVをダウンロードします。

DuckDB Local UIを起動する
次のコマンドで起動すると、ブラウザ上で利用できます。
duckdb -ui

データソースを追加する
左ペインのAttached databasesの+ボタンからデータソースとしてCSVを追加します。

| 項目 | 値 |
|---|---|
| Location | File |
| Path | 【ダウンロードしたCSVのパス】 |

NoteBookを開く
1つ目のCellには以下のように入力して実行します。
attach if not exists ':jy25rv0100:' as jy25rv0100
2つ目ののCellで以下のようにCSVをSQLライクに操作できます。
select "地域_1", "令和7年/総世帯数(世帯)" from 'jy25rv0100'
where "令和7年/総世帯数(世帯)" > 300000
order by "令和7年/総世帯数(世帯)" desc

まとめ
この記事ではDuckDBを用いることでCSVをSQLライクに操作できることを説明しました。CSVファイルの文字コードはUTF-8である必要があるので注意が必要です。
Discussion