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

Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれDevTakas
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」裕之 木下
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識Minoru Naito
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration ServiceAmazon Web Services Japan
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Azure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりAzure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりToru Makabe
 
Azure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてAzure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてOshitari_kochi
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現Ryoma Nagata
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テストTakahiro Moteki
 
Azure利用開始手順
Azure利用開始手順Azure利用開始手順
Azure利用開始手順Junji Yamamoto
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密ShuheiUda
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service OverviewTakeshi Fukuhara
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説Yusuke Kodama
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 

What's hot (20)

Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれ
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」第15回JSSUG「Azure SQL Database 超入門」
第15回JSSUG「Azure SQL Database 超入門」
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Azure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえりAzure Kubernetes Service 2019 ふりかえり
Azure Kubernetes Service 2019 ふりかえり
 
Azure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについてAzure Cosmos DB のエンティティについて
Azure Cosmos DB のエンティティについて
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト[社内勉強会]ELBとALBと数万スパイク負荷テスト
[社内勉強会]ELBとALBと数万スパイク負荷テスト
 
Azure利用開始手順
Azure利用開始手順Azure利用開始手順
Azure利用開始手順
 
Black Belt Online Seminar Amazon Cognito
Black Belt Online Seminar Amazon CognitoBlack Belt Online Seminar Amazon Cognito
Black Belt Online Seminar Amazon Cognito
 
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
 
Azure Kubernetes Service Overview
Azure Kubernetes Service OverviewAzure Kubernetes Service Overview
Azure Kubernetes Service Overview
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説Hybrid Azure AD Join 動作の仕組みを徹底解説
Hybrid Azure AD Join 動作の仕組みを徹底解説
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 

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

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 を使った クラウドネイティブアプリケーションの 設計パターン
 
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
 
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
 
Migrating from SQL Server Profiler to xEvent Profiler
Migrating from SQL Server Profiler to xEvent ProfilerMigrating from SQL Server Profiler to xEvent Profiler
Migrating from SQL Server Profiler to xEvent ProfilerOshitari_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 の整合性レベルについて
 
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
 
Migrating from SQL Server Profiler to xEvent Profiler
Migrating from SQL Server Profiler to xEvent ProfilerMigrating from SQL Server Profiler to xEvent Profiler
Migrating from SQL Server Profiler to xEvent Profiler
 

Recently uploaded

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

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