Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2020 年下半期 Cosmos DB の更新まとめ

miyake
November 18, 2020

2020 年下半期 Cosmos DB の更新まとめ

Alternative Architecture DOJO #5 で発表したスライドです。スライド内のリンクを参照するには PDF をダウンロードしてご覧下さい。

miyake

November 18, 2020
Tweet

More Decks by miyake

Other Decks in Technology

Transcript

  1. 2020 年下半期 Cosmos DB の更新まとめ
    Alternative Architecture DOJO #5
    Kazuyuki Miyake - ZEN Architects

    View Slide

  2. About Me
    三宅 和之 @kazuyukimiyake
    株式会社ゼンアーキテクツ CTO
    Microsoft MVP ( for Microsoft Azure )
    Vue.js ⽇本ユーザーグループ運営
    PaaS がかりの部屋(Blog): https://k-miyake.github.io/blog/

    View Slide

  3. Azure Cosmos DB 2020 年後半のアップデート
    多すぎるため、分野ごとに個⼈的に注⽬の Updates に絞っていきます
    3

    View Slide

  4. Updates スケーリング関連
    オートスケール: GA
    Autoscale provisioned throughput for Azure Cosmos DB ★★★
    サーバーレス: Preview
    Serverless offer for Azure Cosmos DB now in preview 
    Serverless offer for Azure Cosmos DB in preview on all APIs ★
    11 ⽉にすべての API で利⽤可能に
    4

    View Slide

  5. 「オートスケール」のユースケース
    夜間にトラフィックが減るようなアプリ等で有効
    RU 使⽤率が 2/3 以内であれば固定より有利になる [docs]
    5

    View Slide

  6. 「サーバーレス」のユースケース
    主に開発⽤/低トラフィック⽤ [docs]
    (まだ未サポートだが) Synapse Link との組み合わせが有効になるケースも
    6

    View Slide

  7. 最新情報より⼤切なこと
    データモデリング、パーティショニング
    スキーマレスであっても、事前の Well-Architecting は必須
    Cosmos DB Blog Data modeling, partitioning, and pricing in 2 minutes
    インデックスの最適化
    デフォルトのインデックスポリシーではリッチすぎるケースが多い
    MS Learn Identify indexing strategies for your Azure Cosmos DB data
    7

    View Slide

  8. NoSQL(non-relational)におけるデータモデリング
    non-relational の特⾊を⽣かした設計
    「埋め込み「や「⾮正規化」を活⽤する
    リレーショナルなデータモデルを Cosmos DB で最適化するヒント
    Cosmos DB Blog Data Modeling and Partitioning for Relational Workloads
    RDB が必要なユースケースもある
    どちらかではなく、ユースケースに応じてデータストアを使い分ける
    Cosmos DB Blog Azure Cosmos DB for the SQL Professional
    8

    View Slide

  9. Updates Azure Synapse Link for Cosmos DB
    Synapse Link for Cosmos DB がプレビュー、SQL Serverless からも利⽤可能に
    Azure Synapse Link for Azure Cosmos DB is now in preview ★★
    Azure Synapse Link now supports Azure Cosmos DB API for Mongo DB
    (Preview)
    Azure Synapse Link for Azure Cosmos DB: SQL serverless runtime support in
    preview ★★★
    9

    View Slide

  10. ビッグデータ分析(HTAP)がサーバレスで実現
    Serverless で Cosmos DB のデータがクエリ可能に︕(Cosmos DB Blog)
    RU を消費せず、T-SQL ベースの柔軟なクエリが使える
    10

    View Slide

  11. DEMO
    Synapse Link (SQL Serverless) for Cosmos DB
    11

    View Slide

  12. Updates Change Feed & Cosmos DB Trigger
    Full fidelity Change Feed(仮称)
    現状アナウンスのみ
    Change feed with full database operations for Azure Cosmos DB ★★
    Cosmos DB Trigger のリトライポリシー
    Change Feed を使ったパイプラインの信頼性がさらに向上
    Azure Functions error handling and retry guidance ★★★
    12

    View Slide

  13. Cosmos DB を起点としたラムダアーキテクチャ
    Cosmos DB の Change Feed を活⽤して、⽬的の異なるそれぞれの⽤途に合わ
    せたデータパイプラインを構築可能
    13

    View Slide

  14. Updates SDK
    Java SDK が⼤きく進化し、.NET SDK にほぼ追いついてきた。Transactional
    Batch のサポートにも⼤注⽬。
    Azure Cosmos DB Python SDK 4.0 now available
    Azure Cosmos DB Java SDK 4.0 for Core (SQL) API release now in general
    availability ★
    Update your Azure Cosmos DB .NET SDKs by 31 August 2022
    Spring Data Azure Cosmos DB SDK v3.0.0 release now available
    Azure Cosmos DB transactional batch support for Java SDK 4.7.0 and
    above is now available ★★
    14

    View Slide

  15. Transactional Batch
    従来ストアドプロシージャでの実装が必要だった ACID トランザクション
    が、クライアント SDK でも実装可能に
    Cosmos DB Blog
    Introducing TransactionalBatch in the Azure Cosmos DB .NET SDK
    Cosmos DB ドキュメント
    Transactional batch operations in Azure Cosmos DB using the .NET
    SDK
    Java SDK もサポート開始
    15

    View Slide

  16. 再)最新情報より⼤切なこと
    「パーティション」は、すべての設計の⼤前提となる
    Cosmos DB では、パーティションを跨いでできることは少ない
    ACID トランザクションもパーティションは越えられない
    ⽔平スケールを実現するためのアーキテクチャ
    管理の観点では、別パーティションを別 DB くらいに捉える(極論)
    ただし、開発では透過的に扱えるのは⼤きなメリット
    16

    View Slide

  17. Updates ネットワーク関連
    Private Link の GA により、Cosmos DB は 3 種類のネットワーク構成を選択可
    能に。
    Azure Private Link for Azure Cosmos DB now in general availability ★
    Azure Cosmos DB transport layer security (TLS) 1.2 enforcement starts on
    July 29, 2020
    Azure Private Link Services available in China
    17

    View Slide

  18. 3 つのネットワーク構成オプション
    「すべてのネットワーク」: IP ファイアウォールは利⽤可能
    「パブリックエンド ポイント」: VNET サービスエンドポイント
    「プライベート エンドポイント」: Azure Private Link サービス
    18

    View Slide

  19. Updates Management & Security
    PITR は現状アナウンスのみ。Azure Advisor 等を使ってコストを最適化するこ
    とを推奨(特にインデックス周り)。
    Encryption at rest with customer-managed keys on Azure Cosmos DB now
    generally available
    Point-in-time-restore (PITR) for Azure Cosmos DB]
    (https://azure.microsoft.com/ja-jp/updates/pointintimerestore-pitr-for-
    azure-cosmos-db/) ★★
    Azure Policy support for Azure Cosmos DB is now available
    Cost optimization enhancements now available in Azure Advisor
    19

    View Slide

  20. Updates API & Dev
    Case-insensitive string functions with Azure Cosmos DB now available
    No downtime indexing updates in Azure Cosmos DB ★
    Wildcard indexes in Azure Cosmos DB's API for MongoDB
    New features for Azure Cosmos DB built-in Jupyter Notebook support ★
    Azure Databases extension for Visual Studio Code
    Azure Cosmos DB Management with PowerShell cmdlets is in public
    preview
    Azure Cosmos DB: Azure CLI support for autoscale
    20

    View Slide

  21. まとめ
    スケーリングのオプションが増え Cosmos DB が⾼いとは⾔えない状況に
    サーバーレス HTAP の実現により、Analytics 領域は常識が変わるはず
    運⽤管理/ネットワーク⾯では、エンタープライズ系の厳格な要件に対応
    データモデリングとパーティショニングが肝であることに変わりはない
    21

    View Slide

  22. ご清聴ありがとうございました
    22

    View Slide