SlideShare a Scribd company logo
1 of 43
Download to read offline
Azure Cosmos DB で
始める Java + NoSQL
開発
JJUG CCC 2020 Fall
@mappie_kochi
⾃⼰紹介
• Yuji Masaoka (まっぴぃ⊿)
• Twitter: @mappie_kochi
• GitHub: @ymasaoka
• ⻘い R の中の⼈
• 情シス担当
• 普段は SharePoint や SQL Server をメインで担当
• コミュニティ
• JSSUG (Japan SQL Server User Group) Organizer
• JCDUG (Japan Azure Cosmos DB User Group) Organizer
2
Agenda
• Azure Cosmos DB 概要
• Azure Cosmos DB Java SDK
• Azure Cosmos DB を使⽤した Java アプリ開発
• 環境作成
• Azure Cosmos DB への接続
• Azure Cosmos DB へのクエリ実⾏
• Azure Cosmos DB 変更フィードの取得
3
Azure Cosmos DB とは
Azure Cosmos DB 概要
Azure Cosmos DB
• あらゆる規模に対応するオープン API を備えた⾼速な NoSQL
データベース
• 読み取りと書き込みのレイテンシーが 1 桁ミリ秒を要求される運⽤
/分析ワークロード向けに特化
• 99.9 % 以上の⾼可⽤性 (SLA)、スループットと⼀貫性を保証
5
サポートしている API
6
サービス体系
• プロビジョニング or サーバレス
• プロビジョニングの場合、Free Tier (無償枠) が存在
• プロビジョニングの場合、スループットは無制限でスケールアウト可能
• 既存のドライバーを使⽤することが可能
• MongoDB、Cassandra、Gremlin に対応
• 既存のコードを Cosmos DB 向けに改修する必要なし
• 簡単ワンクリックでグローバル分散が可能
7
Free Tier (無償枠)
• 毎⽉最初の 400 RU/s と 5GB のストレージが無料
• 超過した分から課⾦が⾏われる
• 1 Azure サブスクリプションあたり、1 つのみ設定可能
• Azure Cosmos DB アカウント単位で設定
8
要求ユニット (RU/s)
• スループットの単位
• 1 RU = シングルパーティションから 1 KB のドキュメントを 1 回読み取り
• 設定できる最⼩値は 400 RU/s (1 秒あたり 400 RU)
• RU は 100 RU/s 刻みでスケーリング可能
• ⼿動構成やオートスケールの設定が可能
• 書き込み (PUT) は 2 倍の RU が必要
9
データベース / コンテナー / アイテム
10
https://docs.microsoft.com/en-us/azure/cosmos-db/databases-containers-items
データベース / コンテナー / アイテム
• データベース
• 名前空間 (package/namespace) のようなもの
• コンテナーを管理する単位
• コンテナー
• いわゆる RDB でいうところのテーブルや NoSQL のコレクションに相当
• パーティションキー (≒シャードキー) に基づいてデータを分散
• 同じパーティションのデータは 20 GB まで登録可能
• アイテム
• コンテナー内に格納されるデータ
• 1 アイテム 2 MB まで
11
Azure Cosmos DB の強み
Azure Cosmos DB 概要
12
スキーマレスと⾃動インデックス作成
• すべてのデータのインデックス付けを⾃動で⾏い、⾼速クエリを提供
• すべてのコンテナーに対して、コンテナーのアイテムのインデックスを作成する⽅
法を指⽰
• 「同期」と「なし」の 2 つのインデックス作成モードをサポート
• 既定のインデックス作成ポリシーは⾃動で有効 (automatic = true)
• カスタムインデックス作成ポリシーも設定可能
• 複合インデックス
• 空間インデックス
• プロパティパスの包含・除外の指定
13
包括的な SLA と
99 パーセンタイルの低待機時間
• SLA (Service Level Agreement)
• 99.9 %
• Azure Cosmos DB サーバレス利⽤時
• 99.99 %
• 単⼀リージョン、または複数リージョンにプロビジョニングしているが書き込
みは 1 リージョンのみに限定している時
• 99.999 %
• 複数リージョンにプロビジョニング、かつ複数のリージョンで書き込み可能
にしている時
• 99 パーセンタイル
• 世界中で読み取り (インデックス付き) と書き込みの両⽅に対して適⽤
• 10 ミリ秒未満の待機時間を保証
14
⼈気のある OSS API をそのまま利⽤
• 既存のクライアントドライバー(ツール)の利⽤が可能
• Gremlin、Cassandra、MongoDB
• 移⾏が簡単
• 少ない労⼒で、業界最⾼レベルの SLA が提供されるフルマネージドのサー
ビスが利⽤可能
• ニーズに応じて、スケーリングが容易に可能に
• アプリケーションの移植性を保持したまま、クラウドベンダーに⾮依存な状態を
維持可能
15
Azure Synapse Link
16
Azure Synapse Link
• HTAP (Hybrid Transaction Analytical Processing)
• クラウドネイティブのハイブリットトランザクションおよび分析処理
• グローバルに分散された⼤規模運⽤データを ETL 対応なしで、ほぼリアルタ
イムに分析することが可能
• Azure Synapse Analytics (SQL DW の進化版) と接続し、Spark
や SQL を使⽤
• Cosmos DB のトランザクションワークロードのパフォーマンスに影響を与えず、
BI や分析、機械学習パイプラインを実⾏可能
17
Azure Synapse Link
18
トランザクションストア 分析ストア
トランザクションの読み
取りおよび書き込み用に
最適化された行ストア
分析クエリ用に最適化された
列ストア
運用データ
機械学習
ビックデータ分析
BI ダッシュボード
自動で同期自動で同期
SDK について
Azure Cosmos DB Java SDK 概要
SQL API を利⽤する場合
• Core (SQL) API ⽤ Azure Cosmos DB Java SDK v4 を
利⽤
• maven
• https://mvnrepository.com/artifact/com.azure/azure-
cosmos
• GitHub
• https://github.com/Azure/azure-sdk-for-
java/tree/master/sdk/cosmos/azure-cosmos
• API Docs
• https://docs.microsoft.com/ja-
jp/java/api/overview/azure/cosmos-readme?view=azure-
java-stable
SQL API 以外を利⽤する場合
• Java MongoDB Driver
• https://docs.mongodb.com/drivers/java
• Ver. 3.2 endpoint: *.documents.azure.com
• Ver. 3.6 endpoint: *.mongo.cosmos.azure.com
• DataStax Java Driver for Apache Cassandra
• https://docs.datastax.com/en/developer/java-driver/4.9/
• 3.5 以上
• gremlin-java Driver
• http://tinkerpop.apache.org/javadocs/current/full/
• 3.2.0 以上
21
Core (SQL) API ⽤ Azure
Cosmos DB Java SDK v4
• GA (General Availability) – Jun 15th, 2020
• JDK 8 以上
• 負荷時のリクエストのスループットと安定性を⼤幅に最適化
• 古い Java SDK (v2 および v3) よりも 20% パフォーマンスが向上
• 機能追加
• プログラムによる Autoscale のスループットのプロビジョニングを完全サポート
• DISTINCT クエリに対応
• Analytical Time-to-Live (TTL) に対応
22
環境作成
Azure Cosmos DB を使⽤した Java アプリ開発
開発環境準備
• JDK 8+
• IDE (今回は Eclipse を使⽤)
• 有効な Azure Cosmos DB アカウント
24
Azure Cosmos DB アカウント作成
• Azure ポータルや Azure CLI などから作成
• アカウント作成時、どの API を使⽤するか選択が必須
• Core (SQL)、MongoDB、Cassandra、Table、Gremlin
• アカウント作成にはお⾦はかからない
• データベースやコンテナーを作成すると課⾦が発⽣し始める
• 以降のスライドでは、SQL API を選択した過程で進めます
25
Azure Cosmos DB への接続
Azure Cosmos DB を使⽤した Java アプリ開発
26
接続情報を取得
• Azure ポータル上などで、接続に必要な情報を取得
接続クライアントを⽣成
• CosmosClient (同期) / CosmosAsyncClient (⾮同期)
• CosmosClientBuilder を使⽤したクライアント⽣成
• .endpoint :ホスト名指定
• .key :キーを指定
• .preferredRegions :接続先リージョンを指定(任意)
• .consistencyLevel :整合性を指定(任意)
• .buildClient :CosmosClient を⽣成
• .buildAsyncClient :CosmosAsyncClient を⽣成
例: CosmosClient を⽣成
29
private CosmosClient client;
private final String HOST = “<Cosmos DB のホスト>”;
private final String MASTER_KEY = “プライマリまたはセカンダリのパスワード”;
client = new CosmosClientBuilder()
.endpoint(HOST)
.key(MASTER_KEY)
.preferredRegions(Collection.singletonList(“Japan East”))
.consistencyLevel(ConsistencyLevel.SESSION)
.buildClient();
データベースを作成・取得
• CosmosDatabase
• CosmosClient を使⽤してデータベースを作成
• createDatabase :DB を新規作成
• createDatabaseIfNotExists :指定した DB がなければ新規作成
• getDatabase : 指定した id に紐づくデータベースクライアントを取得
例: CosmosDatabase を⽣成
31
private CosmosClient client;
private CosmosDatabase database;
private final String DATABASE_ID = “<任意のデータベース(id)名>”;
// CosmosClient ⽣成後
CosmosDatabaseResponse databaseResponse
= client.createDatabaseIfNotExists(DATABASE_ID);
database = client.getDatabase(databaseResponse.getProperties().getId());
コンテナーを作成・取得
• CosmosContainer
• CosmosDatabase を使⽤してコンテナーを作成
• createContainer :コンテナーを新規作成
• createContainerIfNotExists :指定したコンテナーがなければ新規作成
• getContainer :指定した id に紐づくコンテナークライアントを取得
32
例: CosmosClient を⽣成
33
private CosmosClient client;
private CosmosDatabase database;
private CosmosContainer container;
private final String CONTAINER_ID = “<任意のデータベース(id)名>”;
private final String PARTITION_KEY = “<任意のパーティションキー>”;
// CosmosClient、CosmosDatabase ⽣成後
CosmosContainerProperties properties = new CosmosContainerProperties(
CONTAINER_ID,
PARTITION_KEY
);
CosmosContainerResponse containerResponse
= database.createContainerIfNotExists(properties);
container = database.getContainer(containerResponse.getProperties().getId());
Demo
34
クエリ実⾏
Azure Cosmos DB を使⽤した Java アプリ開発
35
CRUD 実⾏
• ActiveRecord のようにすることも、クエリを作成して実⾏することも
可能
• CosmosContainer を使⽤して操作
36
Demo
37
変更フィードの取得
Azure Cosmos DB を使⽤した Java アプリ開発
38
変更フィードとは
• コンテナーに対して⾏われたアイテムの更新内容を取得
• アイテムの挿⼊や更新の最終更新内容を取得
• 今後、更新に加えて削除も対応される予定
• 今後、プルモデルも登場する予定
• 下記の API で作成した Cosmos DB アカウントで有効
• Core (SQL)、MongoDB、Cassandra、Gremlin
Demo
• セッション時間の都合上、詳しくは Web で
• GitHub
• Azure-Samples / azure-cosmos-java-sql-app-example
40
まとめ
41
Java + Cosmos DB (NoSQL)
• Cosmos DB は Azure のフルマネージドな NoSQL のサービス
• データベース
• コンテナー
• アイテム
• Free Tier (無償枠) もある
• 業界最⾼レベルの SLA を利⽤可能
• 99.9 % 以上
• 99 パーセンタイルで 10 ミリ秒未満の待機時間を保証
• 好きな API を選択し、対応する Java SDK を利⽤して開発
Thank you !!
Any Questions?
@mappie_kochi
43

More Related Content

What's hot

ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようShuto Suzuki
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことBIGLOBE Inc.
 
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6DDDモデリング勉強会 #6
DDDモデリング勉強会 #6株式会社Jurabi
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019Tokoroten Nakayama
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CDYuta Matsumura
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
HashiCorp Vault 紹介
HashiCorp Vault 紹介HashiCorp Vault 紹介
HashiCorp Vault 紹介hashicorpjp
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsKenji Hiranabe
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAmazon Web Services Japan
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Shin Ohno
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java増田 亨
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜Yoshiki Nakagawa
 

What's hot (20)

ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
ドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したことドメイン駆動設計 失敗したことと成功したこと
ドメイン駆動設計 失敗したことと成功したこと
 
DDDモデリング勉強会 #6
DDDモデリング勉強会 #6DDDモデリング勉強会 #6
DDDモデリング勉強会 #6
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ひと漕ぎで二度おいしい!? Flutterを使ったモバイルアプリ開発への期待と実態と付き合い方(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
HashiCorp Vault 紹介
HashiCorp Vault 紹介HashiCorp Vault 紹介
HashiCorp Vault 紹介
 
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah modelsModeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツールAWS における Microservices Architecture と DevOps を推進する組織と人とツール
AWS における Microservices Architecture と DevOps を推進する組織と人とツール
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
DDD sample code explained in Java
DDD sample code explained in JavaDDD sample code explained in Java
DDD sample code explained in Java
 
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
 

Similar to Azure Cosmos DB で始める Java + NoSQL 開発

Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロKazuyuki Miyake
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
Start learning Azure Cosmos DB with Azure Synapse Link
Start learning Azure Cosmos DB with Azure Synapse LinkStart learning Azure Cosmos DB with Azure Synapse Link
Start learning Azure Cosmos DB with Azure Synapse LinkOshitari_kochi
 
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...Naoki (Neo) SATO
 
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザインオープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した WebシステムデザインDaisuke Masubuchi
 
Introduction to DocumentDB
Introduction to DocumentDBIntroduction to DocumentDB
Introduction to DocumentDBTakekazu Omi
 
20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめYasuhiro Araki, Ph.D
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Hirano Kazunori
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたGoAzure
 
2011/12/3 わんくま同盟
2011/12/3 わんくま同盟2011/12/3 わんくま同盟
2011/12/3 わんくま同盟貴仁 大和屋
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Takekazu Omi
 
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Serviceモバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a ServiceYuta Matsumura
 
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそうde:code 2017
 
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそうNaoki (Neo) SATO
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...Norio Sashizaki
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたSunao Tomita
 

Similar to Azure Cosmos DB で始める Java + NoSQL 開発 (20)

Azure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロAzure Cosmos DB のキホンと使いドコロ
Azure Cosmos DB のキホンと使いドコロ
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
Start learning Azure Cosmos DB with Azure Synapse Link
Start learning Azure Cosmos DB with Azure Synapse LinkStart learning Azure Cosmos DB with Azure Synapse Link
Start learning Azure Cosmos DB with Azure Synapse Link
 
Sql azure入門
Sql azure入門Sql azure入門
Sql azure入門
 
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
[de:code 2018] [DA19] 次世代データベース サービス「Azure Cosmos DB」を使いこなそう ~ Azure Cosmos D...
 
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザインオープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
オープンソーステクノロジー対応の App Service と Azure Database Servicesを活用した Webシステムデザイン
 
Introduction to DocumentDB
Introduction to DocumentDBIntroduction to DocumentDB
Introduction to DocumentDB
 
20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ20140628 AWSの2014前半のアップデートまとめ
20140628 AWSの2014前半のアップデートまとめ
 
Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary Microsoft Azure build & ignight update summary
Microsoft Azure build & ignight update summary
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみたA 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
 
2011/11/26 Dot netlab
2011/11/26 Dot netlab2011/11/26 Dot netlab
2011/11/26 Dot netlab
 
2011/12/3 わんくま同盟
2011/12/3 わんくま同盟2011/12/3 わんくま同盟
2011/12/3 わんくま同盟
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編Cosmos DB 入門 multi model multi API編
Cosmos DB 入門 multi model multi API編
 
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Serviceモバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
モバイルアプリ開発者にも知ってほしい Microsoft AzureのDatabase as a Service
 
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[DI04] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
 
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
[de:code 2017] 使わないのはもったいない! プラネット スケールの NoSQL サービス「Azure Cosmos DB」を使いこなそう
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
 
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみたAwsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
 

More from Oshitari_kochi

Azure SQL MI Link で移行も DR もポチッとな、の時代へ
Azure SQL MI Link で移行も DR もポチッとな、の時代へAzure SQL MI Link で移行も DR もポチッとな、の時代へ
Azure SQL MI Link で移行も DR もポチッとな、の時代へOshitari_kochi
 
Azure Policy + Azure RBAC の導入に際して得たアレコレ
Azure Policy + Azure RBAC の導入に際して得たアレコレAzure Policy + Azure RBAC の導入に際して得たアレコレ
Azure Policy + Azure RBAC の導入に際して得たアレコレOshitari_kochi
 
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選Oshitari_kochi
 
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021Oshitari_kochi
 
試験スキルのアウトラインから得たMCP試験受験のコツ
試験スキルのアウトラインから得たMCP試験受験のコツ試験スキルのアウトラインから得たMCP試験受験のコツ
試験スキルのアウトラインから得たMCP試験受験のコツOshitari_kochi
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphOshitari_kochi
 
ここから始めましょう、イチからーーいいえ、Cosmosから!
ここから始めましょう、イチからーーいいえ、Cosmosから!ここから始めましょう、イチからーーいいえ、Cosmosから!
ここから始めましょう、イチからーーいいえ、Cosmosから!Oshitari_kochi
 
Azure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてAzure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてOshitari_kochi
 
Azure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてAzure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてOshitari_kochi
 
About entities of Azure Cosmos DB
About entities of Azure Cosmos DBAbout entities of Azure Cosmos DB
About entities of Azure Cosmos DBOshitari_kochi
 
Azure Synapse Link for Azure Cosmos DB
Azure Synapse Link for Azure Cosmos DBAzure Synapse Link for Azure Cosmos DB
Azure Synapse Link for Azure Cosmos DBOshitari_kochi
 
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recapOshitari_kochi
 
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話Oshitari_kochi
 
Get started with future C# .Net development with Docker
Get started with future C# .Net development with DockerGet started with future C# .Net development with Docker
Get started with future C# .Net development with DockerOshitari_kochi
 
Start Cosmos DB with VSCode Extension
Start Cosmos DB with VSCode ExtensionStart Cosmos DB with VSCode Extension
Start Cosmos DB with VSCode ExtensionOshitari_kochi
 
Summary of SQL Database Updates
Summary of SQL Database UpdatesSummary of SQL Database Updates
Summary of SQL Database UpdatesOshitari_kochi
 
Summary of SQL Server 2019 new features
Summary of SQL Server 2019 new featuresSummary of SQL Server 2019 new features
Summary of SQL Server 2019 new featuresOshitari_kochi
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with DockerOshitari_kochi
 
Explains Microsoft Extensibility SDK for Java for SQL Server
Explains Microsoft Extensibility SDK for Java for SQL ServerExplains Microsoft Extensibility SDK for Java for SQL Server
Explains Microsoft Extensibility SDK for Java for SQL ServerOshitari_kochi
 
Tips for passing AZ-103 once
Tips for passing AZ-103 onceTips for passing AZ-103 once
Tips for passing AZ-103 onceOshitari_kochi
 

More from Oshitari_kochi (20)

Azure SQL MI Link で移行も DR もポチッとな、の時代へ
Azure SQL MI Link で移行も DR もポチッとな、の時代へAzure SQL MI Link で移行も DR もポチッとな、の時代へ
Azure SQL MI Link で移行も DR もポチッとな、の時代へ
 
Azure Policy + Azure RBAC の導入に際して得たアレコレ
Azure Policy + Azure RBAC の導入に際して得たアレコレAzure Policy + Azure RBAC の導入に際して得たアレコレ
Azure Policy + Azure RBAC の導入に際して得たアレコレ
 
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選
SPS 開発から SPO 開発に変わる際に気をつけなければならないポイント 3 選
 
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
Updates of Azure NoSQL announced at Microsoft Ignite Spring 2021
 
試験スキルのアウトラインから得たMCP試験受験のコツ
試験スキルのアウトラインから得たMCP試験受験のコツ試験スキルのアウトラインから得たMCP試験受験のコツ
試験スキルのアウトラインから得たMCP試験受験のコツ
 
PySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL GraphPySpark Intro Part.2 with SQL Graph
PySpark Intro Part.2 with SQL Graph
 
ここから始めましょう、イチからーーいいえ、Cosmosから!
ここから始めましょう、イチからーーいいえ、Cosmosから!ここから始めましょう、イチからーーいいえ、Cosmosから!
ここから始めましょう、イチからーーいいえ、Cosmosから!
 
Azure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについてAzure Cosmos DB の整合性レベルについて
Azure Cosmos DB の整合性レベルについて
 
Azure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてAzure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについて
 
About entities of Azure Cosmos DB
About entities of Azure Cosmos DBAbout entities of Azure Cosmos DB
About entities of Azure Cosmos DB
 
Azure Synapse Link for Azure Cosmos DB
Azure Synapse Link for Azure Cosmos DBAzure Synapse Link for Azure Cosmos DB
Azure Synapse Link for Azure Cosmos DB
 
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
20200809_2020年から始める Azure Cosmos DB 入門 with Azure Synapse Link recap
 
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話
よわよわエンジニアがde:code 2020に感化されて新しくコミュニティを立ち上げてみた話
 
Get started with future C# .Net development with Docker
Get started with future C# .Net development with DockerGet started with future C# .Net development with Docker
Get started with future C# .Net development with Docker
 
Start Cosmos DB with VSCode Extension
Start Cosmos DB with VSCode ExtensionStart Cosmos DB with VSCode Extension
Start Cosmos DB with VSCode Extension
 
Summary of SQL Database Updates
Summary of SQL Database UpdatesSummary of SQL Database Updates
Summary of SQL Database Updates
 
Summary of SQL Server 2019 new features
Summary of SQL Server 2019 new featuresSummary of SQL Server 2019 new features
Summary of SQL Server 2019 new features
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
 
Explains Microsoft Extensibility SDK for Java for SQL Server
Explains Microsoft Extensibility SDK for Java for SQL ServerExplains Microsoft Extensibility SDK for Java for SQL Server
Explains Microsoft Extensibility SDK for Java for SQL Server
 
Tips for passing AZ-103 once
Tips for passing AZ-103 onceTips for passing AZ-103 once
Tips for passing AZ-103 once
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Azure Cosmos DB で始める Java + NoSQL 開発

  • 1. Azure Cosmos DB で 始める Java + NoSQL 開発 JJUG CCC 2020 Fall @mappie_kochi
  • 2. ⾃⼰紹介 • Yuji Masaoka (まっぴぃ⊿) • Twitter: @mappie_kochi • GitHub: @ymasaoka • ⻘い R の中の⼈ • 情シス担当 • 普段は SharePoint や SQL Server をメインで担当 • コミュニティ • JSSUG (Japan SQL Server User Group) Organizer • JCDUG (Japan Azure Cosmos DB User Group) Organizer 2
  • 3. Agenda • Azure Cosmos DB 概要 • Azure Cosmos DB Java SDK • Azure Cosmos DB を使⽤した Java アプリ開発 • 環境作成 • Azure Cosmos DB への接続 • Azure Cosmos DB へのクエリ実⾏ • Azure Cosmos DB 変更フィードの取得 3
  • 4. Azure Cosmos DB とは Azure Cosmos DB 概要
  • 5. Azure Cosmos DB • あらゆる規模に対応するオープン API を備えた⾼速な NoSQL データベース • 読み取りと書き込みのレイテンシーが 1 桁ミリ秒を要求される運⽤ /分析ワークロード向けに特化 • 99.9 % 以上の⾼可⽤性 (SLA)、スループットと⼀貫性を保証 5
  • 7. サービス体系 • プロビジョニング or サーバレス • プロビジョニングの場合、Free Tier (無償枠) が存在 • プロビジョニングの場合、スループットは無制限でスケールアウト可能 • 既存のドライバーを使⽤することが可能 • MongoDB、Cassandra、Gremlin に対応 • 既存のコードを Cosmos DB 向けに改修する必要なし • 簡単ワンクリックでグローバル分散が可能 7
  • 8. Free Tier (無償枠) • 毎⽉最初の 400 RU/s と 5GB のストレージが無料 • 超過した分から課⾦が⾏われる • 1 Azure サブスクリプションあたり、1 つのみ設定可能 • Azure Cosmos DB アカウント単位で設定 8
  • 9. 要求ユニット (RU/s) • スループットの単位 • 1 RU = シングルパーティションから 1 KB のドキュメントを 1 回読み取り • 設定できる最⼩値は 400 RU/s (1 秒あたり 400 RU) • RU は 100 RU/s 刻みでスケーリング可能 • ⼿動構成やオートスケールの設定が可能 • 書き込み (PUT) は 2 倍の RU が必要 9
  • 10. データベース / コンテナー / アイテム 10 https://docs.microsoft.com/en-us/azure/cosmos-db/databases-containers-items
  • 11. データベース / コンテナー / アイテム • データベース • 名前空間 (package/namespace) のようなもの • コンテナーを管理する単位 • コンテナー • いわゆる RDB でいうところのテーブルや NoSQL のコレクションに相当 • パーティションキー (≒シャードキー) に基づいてデータを分散 • 同じパーティションのデータは 20 GB まで登録可能 • アイテム • コンテナー内に格納されるデータ • 1 アイテム 2 MB まで 11
  • 12. Azure Cosmos DB の強み Azure Cosmos DB 概要 12
  • 13. スキーマレスと⾃動インデックス作成 • すべてのデータのインデックス付けを⾃動で⾏い、⾼速クエリを提供 • すべてのコンテナーに対して、コンテナーのアイテムのインデックスを作成する⽅ 法を指⽰ • 「同期」と「なし」の 2 つのインデックス作成モードをサポート • 既定のインデックス作成ポリシーは⾃動で有効 (automatic = true) • カスタムインデックス作成ポリシーも設定可能 • 複合インデックス • 空間インデックス • プロパティパスの包含・除外の指定 13
  • 14. 包括的な SLA と 99 パーセンタイルの低待機時間 • SLA (Service Level Agreement) • 99.9 % • Azure Cosmos DB サーバレス利⽤時 • 99.99 % • 単⼀リージョン、または複数リージョンにプロビジョニングしているが書き込 みは 1 リージョンのみに限定している時 • 99.999 % • 複数リージョンにプロビジョニング、かつ複数のリージョンで書き込み可能 にしている時 • 99 パーセンタイル • 世界中で読み取り (インデックス付き) と書き込みの両⽅に対して適⽤ • 10 ミリ秒未満の待機時間を保証 14
  • 15. ⼈気のある OSS API をそのまま利⽤ • 既存のクライアントドライバー(ツール)の利⽤が可能 • Gremlin、Cassandra、MongoDB • 移⾏が簡単 • 少ない労⼒で、業界最⾼レベルの SLA が提供されるフルマネージドのサー ビスが利⽤可能 • ニーズに応じて、スケーリングが容易に可能に • アプリケーションの移植性を保持したまま、クラウドベンダーに⾮依存な状態を 維持可能 15
  • 17. Azure Synapse Link • HTAP (Hybrid Transaction Analytical Processing) • クラウドネイティブのハイブリットトランザクションおよび分析処理 • グローバルに分散された⼤規模運⽤データを ETL 対応なしで、ほぼリアルタ イムに分析することが可能 • Azure Synapse Analytics (SQL DW の進化版) と接続し、Spark や SQL を使⽤ • Cosmos DB のトランザクションワークロードのパフォーマンスに影響を与えず、 BI や分析、機械学習パイプラインを実⾏可能 17
  • 18. Azure Synapse Link 18 トランザクションストア 分析ストア トランザクションの読み 取りおよび書き込み用に 最適化された行ストア 分析クエリ用に最適化された 列ストア 運用データ 機械学習 ビックデータ分析 BI ダッシュボード 自動で同期自動で同期
  • 19. SDK について Azure Cosmos DB Java SDK 概要
  • 20. SQL API を利⽤する場合 • Core (SQL) API ⽤ Azure Cosmos DB Java SDK v4 を 利⽤ • maven • https://mvnrepository.com/artifact/com.azure/azure- cosmos • GitHub • https://github.com/Azure/azure-sdk-for- java/tree/master/sdk/cosmos/azure-cosmos • API Docs • https://docs.microsoft.com/ja- jp/java/api/overview/azure/cosmos-readme?view=azure- java-stable
  • 21. SQL API 以外を利⽤する場合 • Java MongoDB Driver • https://docs.mongodb.com/drivers/java • Ver. 3.2 endpoint: *.documents.azure.com • Ver. 3.6 endpoint: *.mongo.cosmos.azure.com • DataStax Java Driver for Apache Cassandra • https://docs.datastax.com/en/developer/java-driver/4.9/ • 3.5 以上 • gremlin-java Driver • http://tinkerpop.apache.org/javadocs/current/full/ • 3.2.0 以上 21
  • 22. Core (SQL) API ⽤ Azure Cosmos DB Java SDK v4 • GA (General Availability) – Jun 15th, 2020 • JDK 8 以上 • 負荷時のリクエストのスループットと安定性を⼤幅に最適化 • 古い Java SDK (v2 および v3) よりも 20% パフォーマンスが向上 • 機能追加 • プログラムによる Autoscale のスループットのプロビジョニングを完全サポート • DISTINCT クエリに対応 • Analytical Time-to-Live (TTL) に対応 22
  • 23. 環境作成 Azure Cosmos DB を使⽤した Java アプリ開発
  • 24. 開発環境準備 • JDK 8+ • IDE (今回は Eclipse を使⽤) • 有効な Azure Cosmos DB アカウント 24
  • 25. Azure Cosmos DB アカウント作成 • Azure ポータルや Azure CLI などから作成 • アカウント作成時、どの API を使⽤するか選択が必須 • Core (SQL)、MongoDB、Cassandra、Table、Gremlin • アカウント作成にはお⾦はかからない • データベースやコンテナーを作成すると課⾦が発⽣し始める • 以降のスライドでは、SQL API を選択した過程で進めます 25
  • 26. Azure Cosmos DB への接続 Azure Cosmos DB を使⽤した Java アプリ開発 26
  • 28. 接続クライアントを⽣成 • CosmosClient (同期) / CosmosAsyncClient (⾮同期) • CosmosClientBuilder を使⽤したクライアント⽣成 • .endpoint :ホスト名指定 • .key :キーを指定 • .preferredRegions :接続先リージョンを指定(任意) • .consistencyLevel :整合性を指定(任意) • .buildClient :CosmosClient を⽣成 • .buildAsyncClient :CosmosAsyncClient を⽣成
  • 29. 例: CosmosClient を⽣成 29 private CosmosClient client; private final String HOST = “<Cosmos DB のホスト>”; private final String MASTER_KEY = “プライマリまたはセカンダリのパスワード”; client = new CosmosClientBuilder() .endpoint(HOST) .key(MASTER_KEY) .preferredRegions(Collection.singletonList(“Japan East”)) .consistencyLevel(ConsistencyLevel.SESSION) .buildClient();
  • 30. データベースを作成・取得 • CosmosDatabase • CosmosClient を使⽤してデータベースを作成 • createDatabase :DB を新規作成 • createDatabaseIfNotExists :指定した DB がなければ新規作成 • getDatabase : 指定した id に紐づくデータベースクライアントを取得
  • 31. 例: CosmosDatabase を⽣成 31 private CosmosClient client; private CosmosDatabase database; private final String DATABASE_ID = “<任意のデータベース(id)名>”; // CosmosClient ⽣成後 CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists(DATABASE_ID); database = client.getDatabase(databaseResponse.getProperties().getId());
  • 32. コンテナーを作成・取得 • CosmosContainer • CosmosDatabase を使⽤してコンテナーを作成 • createContainer :コンテナーを新規作成 • createContainerIfNotExists :指定したコンテナーがなければ新規作成 • getContainer :指定した id に紐づくコンテナークライアントを取得 32
  • 33. 例: CosmosClient を⽣成 33 private CosmosClient client; private CosmosDatabase database; private CosmosContainer container; private final String CONTAINER_ID = “<任意のデータベース(id)名>”; private final String PARTITION_KEY = “<任意のパーティションキー>”; // CosmosClient、CosmosDatabase ⽣成後 CosmosContainerProperties properties = new CosmosContainerProperties( CONTAINER_ID, PARTITION_KEY ); CosmosContainerResponse containerResponse = database.createContainerIfNotExists(properties); container = database.getContainer(containerResponse.getProperties().getId());
  • 35. クエリ実⾏ Azure Cosmos DB を使⽤した Java アプリ開発 35
  • 36. CRUD 実⾏ • ActiveRecord のようにすることも、クエリを作成して実⾏することも 可能 • CosmosContainer を使⽤して操作 36
  • 38. 変更フィードの取得 Azure Cosmos DB を使⽤した Java アプリ開発 38
  • 39. 変更フィードとは • コンテナーに対して⾏われたアイテムの更新内容を取得 • アイテムの挿⼊や更新の最終更新内容を取得 • 今後、更新に加えて削除も対応される予定 • 今後、プルモデルも登場する予定 • 下記の API で作成した Cosmos DB アカウントで有効 • Core (SQL)、MongoDB、Cassandra、Gremlin
  • 40. Demo • セッション時間の都合上、詳しくは Web で • GitHub • Azure-Samples / azure-cosmos-java-sql-app-example 40
  • 42. Java + Cosmos DB (NoSQL) • Cosmos DB は Azure のフルマネージドな NoSQL のサービス • データベース • コンテナー • アイテム • Free Tier (無償枠) もある • 業界最⾼レベルの SLA を利⽤可能 • 99.9 % 以上 • 99 パーセンタイルで 10 ミリ秒未満の待機時間を保証 • 好きな API を選択し、対応する Java SDK を利⽤して開発
  • 43. Thank you !! Any Questions? @mappie_kochi 43