コラムバックナンバー
Option合同会社 柳井 隆道
発信元:メールマガジン2022年5月11日号より
技術の進歩はすさまじいもので、1年もすれば新しいソリューションが数多く生まれてきます。以前はできなかったことが、新しいソリューションによって簡単に実現可能になり、仕事に大きな変化をもたらす。そんなことが当たり前のようにあるので、日々情報収集が大切だと痛感するところです。そんな中、先日とあるフィードから面白いデータベースを見つけました。
まず一般論としてデータベースには大きく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って便利だなと思うのです。
東京大学を卒業後、webマーケティングやサービス企画、システム開発などに従事。
デジタルマーケティングの世界に落ち着き、事業会社、広告代理店を経て2014年に独立。
現在は大小さまざまの事業会社、広告代理店などに対して、テクノロジー観点からデジタルマーケティングの支援を行っている。データ計測の設計、実装から分析、マーケティングオートメーションや広告運用などの施策との連携まで扱う。
さまざまな規模の経験から、企業の身の丈にあったデジタルマーケティングの企画に強い。フリーランスで活動していたが、2017年から法人化。
2023/06/15(木)
オンラインセミナー「【基礎と応用】Google タグマネージャーでGA4のタグを設定してみよう」|2023/6/15(木)
ユニバーサルアナリティクスの計測停止を目前にしてGA4への移行がまったなしとなりました。移行を機にGoogle タグマネージャーでのタグ管理 …
2023/06/07(水)
【ランチタイム開催】「クラシコムにおける「データ」とは?データ基盤の立ち上げと活用について」|2023/6/7(水)
セミナー・イベント名 【ランチタイム開催】「クラシコムにおける「データ」とは?データ基盤の立ち上げと活用について」 セミナー・イベント内容 …
2023/05/17(水)
オンラインセミナー「注目 Microsoft 広告とAI~デジタルマーケティングはどう変わるのか?」|2023/5/17(水)
2022年5月末に日本市場でローンチされたMicrosoft 広告が急速に浸透しています。 また、Microsoftは対話型AIを搭載した検 …
【コラム】BardとGPTに聞くAI時代のSEO 長尾キーワードが鍵?
アナリティクスアソシエーション 大内 範行前回の大内のコラムは、要点を伝えてChatGPTに書いてもらいました。今回はGoogle BardとChatGPTの両方の助けを借りながら書 …
a2iでのコラム連載が最後になるのですが、意外と忘れられがちな、でもデータの分析や活用のために重要な視点をおさらいします。普遍的なことから、 …
【コラム】アナリティクスの新時代:データ分析の課題にどう取り組むべきか?
アナリティクスアソシエーション 大内 範行※ このコラムは大内が趣旨をプロンプトに投げて、ChatGPT(GPT-4)が書いたものを微調整しました。また、題名はGPT-4が出した案を …