開発者向けの機能
Spannerは開発者が利用しやすいものになっており、JDBCドライバや、オープンソーススタック開発者の間で人気のある、JavaやPython、Node.jsなどの言語のソフトウェア開発キット(SDK)が提供されている。
Microsoft/.NET陣営の開発者に向けても、ODBCドライバとC#用のSDKが準備されている。これが公開されれば、AzureのCosmos DB、SQL Database、SQL Data Warehouseや、AmazonのRDSなどのMicrosoftのスタックで利用しやすい製品とも戦いやすくなるだろう。AmazonのDynamoDBでさえ.NETがサポートされていることを考えれば、Spannerでも一刻も早くODBCとC#をサポートすべきだ。
ほかのサービスとの組み合わせ
繰り返しになるが、これらは単純な比較ではない。SpannerはAWSやAzureのデータベースとは異なる軸のイノベーションをもたらしている。その軸の1つが、サービス間統合に関するものだ。例えば、Google BigQueryは、Spannerと同じSQLの方言を使っている。一方、AzureのSQL Databaseと「SQL Data Warehouse」はどちらもMicrosoftのTransact-SQLを使っているが、Cosmos DBでは異なるSQLの方言が使われている。Amazonに至っては、DynamoDBにはSQLに対するネイティブサポートさえない。
Googleのサービス間統合は、SQLの方言以外にも及んでいる。たとえばBigQueryでは、「BigTable」のデータや「Googleドライブ」のファイルも対象に含めた統合クエリに対応している。今のところ、Spannerのテーブルはこの統合クエリの対象ではないが、状況が変わっても不思議ではない。
どのデータベースを選ぶべきか
読者のアプリケーションにはどのデータベースが適しているのだろうか。データを移動させる作業は高くつくため、どのデータベースを使うべきかは、現在データがどこにあるかにも大きく依存するだろう。多くの企業は、Amazonの「Simple Storage Service」(S3)に大量のデータを置いており、その意味でAWSはかなり有利な立場にある。
一方で、グローバル分散データベースでリレーショナルモデルを使いたい場合は、Spannerには強い魅力を感じるだろう。コンプライアンス上の理由や、自社の顧客とサービス品質保証(SLA)契約を結んでいる関係で、SLAに強いこだわりのある顧客には、ほかの2つのデータベースよりもCosmos DBが適しているかも知れない。
どのデータベースサービスにも、それなりの利点がある。DynamoDB、Cosmos DB、Spannerの3つはどれも、3大インターネット企業が自社のサービスで実際に使用しているグローバル分散データベースを、顧客向けバージョンとして提供したものだ。それが最低基準である以上、競争が激しい(その状況は今後も続く)のは当然であり、顧客は十分なメリットを得られるだろう。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。