Just a Search Box
Googleの検索画面を初めて見たとき、壊れているのかと思った。
検索窓がひとつあるだけだ。当時のポータルサイトはとにかく賑やかだった。Infoseek、Lycos、Yahoo、goo。トップページにニュースが並び、広告が点滅し、カテゴリリンクが画面を埋め尽くしていた。検索順位も恣意的だった。金を払えば上に来る。どのサイトが本当に有用かは、使う側が自分で判断するしかなかった。
Googleはページランクで殴り込んできた。被リンクの数と質で重要度を計算する。人間が順位を決めるのではなく、ウェブの構造そのものが順位を決める。シンプルだが革命的だった。あの検索窓だけの画面は、アルゴリズムへの自信の表れだったのだろう。
その裏で動いていたのが分散ストレージだった。GFS、MapReduce、Bigtable。Googleが論文として公開したこれらの技術は、後にHadoopやHBaseとしてオープンソースの世界に降りてきた。ウェブ全体をクロールし、インデックスを構築し、ミリ秒で検索結果を返す。それを支えるインフラの設計思想が、論文という形でベールを脱いだ。
BigQueryはその延長線上にある。ペタバイト級のデータをSQLで殴れる。インデックスを張る必要がない。フルスキャンが前提の設計だ。RDBMSの常識ではフルスキャンは悪だが、Googleの分散基盤の上ではそれが最適解になる。Colossusの上にDremelのエンジンが乗り、カラムナストレージで圧縮されたデータを数千のワーカーが並列に読む。あの検索窓の裏で培われた技術が、いまは誰でもコンソールから使える。
検索窓ひとつで世界を変えた会社が、いまはSQLひとつでペタバイトを返している。「悪をなさない」に惹かれて集まったとびきり優秀な頭脳たちは、いまや帝国の建国に忙しいようだが。