コラムバックナンバー
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年から法人化。
2022/06/08(水)
【ランチタイム開催】「教えて山田さん!デベロッパーツールを使いこなせるようになりたいです」|2022/6/8(水)
セミナー・イベント名 【ランチタイム開催】「教えて山田さん!デベロッパーツールを使いこなせるようになりたいです」 セミナー・イベント内容 サ …
2022/05/31(火)
オンラインセミナー「ビジネスを切り拓くデータストーリーテリング ~考え方と実践」|2022/5/31(火)
BIツールを導入した、ダッシュボードやレポートもたくさん作った。しかし、あまり見られていない、成果も上がらない…。そんなデータ活用の現場に足 …
2022/04/21(木)
オンラインセミナー「GA4、導入後の設定と「ユーザー軸」分析」|2022/4/21(木)
今後の積極的な導入と活用が必須となるGA4。ユニバーサルアナリティクス版からの移行の期限も迫っている中、どのように移行や導入を進めればよいの …
今年1月のことですが、日本マーケティング・リサーチ協会(JMRA)から「非公正な「No.1 調査」への抗議状」が発表され、マーケティング・リ …
この1週間で見かけた記事の中で、興味を引いた記事を2つ紹介します。どちらも共通して、新規と既存のバランスを掌握したり、早い改善サイクルや打席 …
技術の進歩はすさまじいもので、1年もすれば新しいソリューションが数多く生まれてきます。以前はできなかったことが、新しいソリューションによって …