Googleは米国時間8月1日、クラウドデータアーキテクチャ―を構成するデータベースとデータアナリティクスに対する一連のアップデートを発表した。ここでは、同社が提供するクラウドデータベースである「Spanner」と「Bigtable」の発表に焦点を当てる。
Spannerは、世界にまたがってデータの一貫性を維持することに優れたクラウドデータベースである。また、スケーラビリティーが高く、国や地域をまたいだデータベースの構築も可能だ。テキストだけでなくメディアデータにも対応するマルチモーダルであり、全てをSQLクエリーで実行することができる。
Bigtableは、とてもスケーラブルであり、その特徴であるワイドカラムは即座に追加することができ、行ごとに一様に定義する必要もない。また、レイテンシーが非常に低く、スループットが高い。これまでは、柔軟なスキーマとデータ編成を可能にする非リレーショナルデータベースを表す用語であるNoSQLデータベースとして特徴づけられてきた。
これらのツールはどちらも巨大なエンタープライズデータベースをサポートしている。グローバルに分散されたデータベースを使用し、堅牢かつ即時の一貫性と複雑なトランザクションを必要とするアプリケーションには、一般的にSpannerの方が適している。高いスループットが重要な場合は、Bigtableの方が優れている。Bigtableも一貫性を備えているが、伝播遅延があるために即座にデータの一貫性を保てるわけではない。
Bigtableの発表
Bigtableは主にAPIコールで照会される。今回発表された機能の中で、最大級かつ画期的なものが「Bigtable SQL」である。
これはプログラミングスキルの観点からは非常に大きなことである。2023年のStack Overflowによるプログラミング言語の調査では、SQLは4位で48.66%のプログラマーが使用していた。この調査には、Bigtableについての言及はなかったので、筆者は「LinkedIn」で“SQL”を含む求人情報を検索すると、40万件以上の結果が表示された。一方、“Bigtable”で検索した結果は1561件で、SQLの1%にも満たない。
今後は、開発者のほぼ2人に1人が、必要な時にいつでもBigtableの新しいSQLインターフェイスを使ってクエリーを書くことができるようになった。
ただ、1つ注意点がある。Bigtable SQLは、全てのSQLをサポートしているわけではない。しかし、同社は100以上のSQL関数を実装し、今後増やしていくとしている。
また、Bigtableテーブルに分散カウンターが導入されている。カウンターとは、合計や平均をはじめとする数学関数のような機能になる。同社は、これらのデータ集計をリアルタイムかつ、非常に高いレベルのスループットで、Bigtableクラスターの複数のノードにまたがって取得する機能を導入しており、これによってソース間で同時に分析や集計を実行できるようになる。