コラムバックナンバー

技術の進歩はすさまじいもので、1年もすれば新しいソリューションが数多く生まれてきます。以前はできなかったことが、新しいソリューションによって簡単に実現可能になり、仕事に大きな変化をもたらす。そんなことが当たり前のようにあるので、日々情報収集が大切だと痛感するところです。そんな中、先日とあるフィードから面白いデータベースを見つけました。

DuckDB

まず一般論としてデータベースには大きく2種類あります。取引を記録、管理するのが目的のトランザクション処理用のデータベースであるOLTPと、分析を行うためのデータベースであるOLAPです。

OLTPは大量の複雑なインプットを整合性を保って処理するのが目的で、OracleやPostgreSQLなど昔から「データベース」といえばこちらが主でした。

OLAPは分析に特化したデータベースで、インプットはあまり想定していません。ストックされた大量のデータをいかにして高速に処理してアウトプットするかに主眼を置いたタイプのものです。Amazon RedshiftやGoogle BigQueryなどは典型的なOLAPです。DuckDBはOLAPに位置付けられます。

データベースというのはサーバを用意して、あるいは誰かが用意した(ホストされた)サーバを使うのが一般的ですが、このDuckDBは1つのプログラムファイルがあれば実行可能で、さまざまなプログラム言語から呼び出して使うことも可能です。

SQLiteというローカルで動作するデータベースを意識して作られたもののようです。こちらは有名で、同様にインストール不要で手軽に使えるデータベースのソフトウェアです。私も以前ちょっとしたローカルでの分析をするときにSQLiteを使ったことがあります。しかしSQLiteはOLTP寄りで分析機能が弱く、関数もあまり充実していませんでした。個人情報が入っているので簡単にクラウドにアップロードして、というわけにはいかず、かといってローカルにPostgreSQLをインストールするのも面倒だし、そこまで高速ではないので抵抗がありました。SQLiteもいろいろやろうとすると結局コンパイルが必要で手間がかかるし、結局Rがいいのかなとか、いろいろ考えた記憶があります。

DuckDBはとにかく軽量で高速なOLAPです。動作するコンピュータのメモリ上で動作するので、メモリがあれば高速に動作します。まあ最近のPCではメモリが16GBとかあるのが当たり前なので、数百万行のデータも一瞬で処理ができてしまいます。

使い方はバイナリファイルを1個だけダウンロードし、それを実行します。するとクエリを実行できるターミナルになるので、

SELECT … FROM ‘ファイル名.csv’;

これでCSVファイルに対してクエリを実行することができます。SQLiteを使う場合ですらCSVファイルは別途コマンドで読み込む必要があります。データをインポートしたりテーブルを設計したりする必要なく、CSVファイルに対して直接SQLを書くことができるのです(きちんと使いたい方のために厳密にスキーマを定義することも可能です)。

手元でちょっとデータ加工や分析するのによく使われるのがPythonのPandasというライブラリですが、文法が覚えにくく、処理速度が遅い。Pythonで同じ処理をPandasではなくDuckDBを使って(Pythonから呼び出して使うこともできます)実行すると圧倒的に速いのです。Python使えなくてもSQL覚えていれば使えるし、最近GA4関連でSQLを勉強し始めた方にはおすすめです。関数が豊富で、PostgreSQL互換っぽい点も便利です。ウィンドウ関数や正規表現関数、統計関数も充実しています。

SQLの教科書では最初に環境構築でPostgreSQLをインストールするというのが定番になっていますが、いきなりハードルが高い。そもそもクエリを書くのと環境構築は別のスキルで、正直分析だけやりたい人に環境構築を求めるのは酷だと思います。
BigQueryはその点簡単で安価なのでいいのですが、やはり従量課金なのと、データをアップロードする必要がある点に抵抗がある人も多いです。

BigQueryのおかげでSQLが役に立つ場が増えたのは事実ですが、DuckDBってもっと間口を広げる可能性を秘めていませんか?こういうツールがあるからこそ、より一層SQLって便利だなと思うのです。

コラム担当スタッフ

柳井 隆道

Option合同会社
代表社員
マーケティングテクノロジスト
marketechlabo

東京大学を卒業後、webマーケティングやサービス企画、システム開発などに従事。
デジタルマーケティングの世界に落ち着き、事業会社、広告代理店を経て2014年に独立。
現在は大小さまざまの事業会社、広告代理店などに対して、テクノロジー観点からデジタルマーケティングの支援を行っている。データ計測の設計、実装から分析、マーケティングオートメーションや広告運用などの施策との連携まで扱う。
さまざまな規模の経験から、企業の身の丈にあったデジタルマーケティングの企画に強い。フリーランスで活動していたが、2017年から法人化。

一つ前のページに戻る

a2i セミナー風景イメージ

あなたも参加しませんか?

「アナリティクス アソシエーション」は、アナリティクスに取り組む皆さまの活躍をサポートします。会員登録いただいた方には、セミナー・イベント情報や業界の関連ニュースをいち早くお届けしています。

セミナー・イベント予定

予定一覧へ

コラムバックナンバー

バックナンバー一覧へ