$ gcloud spanner instances create my-instance \ --config=nam3 \ --description=my-instance \ --nodes=3 $ gcloud spanner databases create my-database --instance=my-instance $ gcloud spanner databases ddl update my-database --instance=my-instance --ddl="$(cat <<EOF CREATE TABLE Vault ( Key STRING(MAX) NOT NULL, Value BYTES(MAX), ) PRIMARY KEY (Key); EOF )"
# config.hcl storage "spanner" { database = "projects/my-default-project/instances/my-instance/databases/my-database" }
$ export VAULT_ADDR=http://127.0.0.1:8200 $ sudo vault server -dev -config=config.hcl
$ vault write secret/my-secret foo=bar
一覧表示に強整合性がなければ、ファイルを見落とす可能性が出てきます。製品開発中に読み込んだデータの整合性に信頼が置けなくなります。整合性のない一覧表示が原因で、目に見えない問題が起きることさえあります。たとえば、Spotify の処理ツールが部分的なデータの読み込みに成功し、一見有効な出力を生成する可能性があるのです。こういった問題は、依存関係のツリー全体であっという間に拡散していきます。 こういうことが起きた場合、運が良ければ問題に気づき、依存関係ツリー内で生成されたすべてのデータセットを再計算することになります。最悪なら、エラーに気づかず、間違ったレポートや統計情報を作ってしまいます。私たちが実行しているデータ パイプラインがいかに膨大かを考えると、そのような可能性がわずかでもあれば大変なことです。一覧表示の強整合性がクラウド ストレージ製品で欠如していることは、Spotify のデータ処理にとって大きな阻害要因でした。
NFS ベースのグローバルな整合性キャッシュの利用、Netflix の S3mper の導入、データとともに格納されるマニフェスト ファイルの永続化リストなど、私たちは問題回避に向けてさまざまな方法を検討しました。しかしどの方法も、単一障害点を導入するか、独自ソリューションの開発とツールの調整に膨大なリソースが必要になるという問題があり、最適とは言い難いものでした。一方、Cloud Storage は一覧表示で強い整合性を提供してくれるので、既存のデータ処理スタックをそのまま使い続けることができます。データ処理スタックに変更を加えたり、データの破損を心配したりする必要はないのです。 Cloud Storage における一覧表示の強整合性は、Spotify のデータ処理の根幹を支える機能です。私たちは Hadoop Distributed File System の上に構築された Hadoop ベースのデータ処理スタックを使っており、これはファイル システム的な保証が前提条件になるということを意味します。私たちのビジネスで整合性はきわめて重要であり、これがなければさまざまな問題が生じます。
Begin Transaction SELECT * FROM Airplanes WHERE location = "San Francisco" AND Availability = "Free"; If number of airplanes is > 1: # to enforce "one free plane" rule Pick 1 airplane Set its Availability to "InUse" Commit Else: Rollback
gcloud config set project [MY_PROJECT_ID]
gcloud auth application-default login
gcloud spanner instances create test-instance --config=regional-us-central1 \ --description="Test Instance" --nodes=1
gcloud spanner databases create test-db --instance=test-instance
「Cloud Spanner は、我々の顧客である世界中の小売業、製造業、卸売業にとてつもなく大きな価値をもたらすでしょう。簡単なプロビジョニングとスケーラビリティ、それが世界中のユーザーにクラウド ベースのオムニチャネル サプライチェーン ソリューションを提供する我々のビジネスを後押しします。」 — John Sarvari, Group Vice President of Technology, JDA
「これまでの経験とパフォーマンス テストから、大規模なリレーショナル データベースへのクエリ負荷に対応できる最も魅力的な選択肢は Cloud Spanner です。NoSQL データベースと同様のパフォーマンスとスケーラビリティがありながら、SQL が使える。これは現実的にシャーディングした MySQL の代わりになり得ます。本当に素晴らしいテクノロジーで、データベース管理するということが劇的なまでにシンプルになるでしょう。」 — Peter Bakkum, Platform Lead, Quizlet