Cosmos DB のアーキテクチャ
Azure Storage 開発
Shahzad Mian
Content developer, DataCamp
Azure Cosmos DB
課題
Cosmos DB とは
マルチモデル対応のグローバル分散型 NoSQL データベース。
NoSQL - 柔軟なフォルダー形式のストレージ。
複数の API とデータ型をサポート。
用途に合わせて API を選択可能:
SQL (Core): JSON ドキュメント用。
MongoDB: Mongo 開発者向け。
Cassandra: ワイドカラム データ用。
Gremlin: グラフ リレーションシップ用。
Table API: キーと値のストレージ用。
開発者向け Cosmos DB
開発者向けに設計。
自動インデックス作成 - スキーマ管理不要。
高速クエリ。
5 段階の整合性レベル: Strong から Eventual まで。
パフォーマンスと整合性のトレードオフ。
Strong: 全員が同じ情報を即座に受信。
Eventual: 全員が後から同期。
スケーリングとスループット (RU/s)
リクエスト ユニット/秒 (RU/s) = Cosmos DB のパフォーマンスの基準単位。
読み取り、書き込み、クエリごとに RU/s を消費。
固定プロビジョニングまたは自動スケールを選択。
スケーリングとスループット (RU/s)
リクエスト ユニット/秒 (RU/s) = Cosmos DB のパフォーマンスの基準単位。
読み取り、書き込み、クエリごとに RU/s を消費。
固定プロビジョニングまたは自動スケールを選択。
自動スケールは需要に応じて自動調整。
エラスティック スケールとパーティション分割
Cosmos DB はパーティション分割によってスケールアウト。
各コンテナーはパーティション キーを使用。
キーで関連データをグループ化。
例: Cipher Coffee は注文に
/customerId
を使用。
/customerId
をパーティション キーにすると、同じ顧客の注文が同一パーティションに格納。
データが増えてもクエリを高速に維持。
ホット パーティション
: 負荷の偏りによるパフォーマンス低下。
グローバル分散
任意の Azure リージョンへのデータ レプリケーションが簡単。
チェックボックスをオンにするだけで設定不要。
リージョン障害時にトラフィックを自動再ルーティング。
ダウンタイムもデータ損失もなし。
即座に対応できるバックアップ拠点のような存在。
監視とコスト最適化
Azure Portal でパフォーマンスを監視。
RU/s、待機時間、リクエスト コストなどのメトリックを確認。
車のダッシュボードのように速度と燃料を把握。
Cipher Coffee のエンジニアがこれらのメトリックを分析。
スループットを動的に調整してコストを削減。
では、練習しましょう!
Azure Storage 開発
Preparing Video For Download...