Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スケールアウトできるManaged RDBMS - Azure Cosmos DB for P...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kuniteru Asami
December 01, 2022
Technology
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
2022/11/17 - 第41回 JAZUG Night
先日リリースされたAzure Cosmos DB for PostgreSQLの紹介です
Kuniteru Asami
December 01, 2022
More Decks by Kuniteru Asami
See All by Kuniteru Asami
Azure Load Testing と Azure用 Jmeter Plugins
kuniteru
0
16
どう買う?Azure
kuniteru
1
720
現場からみた Azure リファレンスアーキテクチャ答え合わせ | Microsoft Build 2022
kuniteru
1
61
Azure Load Testingを利用したパフォーマンステスト
kuniteru
1
75
Understanding Azure Application Gateway
kuniteru
0
48
堅牢&運用楽々な WordPress を Azure App Service で
kuniteru
0
140
Azure PaaS とのよりセキュアな接続 - 初級編
kuniteru
0
50
あらためて Azure Virtual Network
kuniteru
0
35
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
kuniteru
1
48
Other Decks in Technology
See All in Technology
AIはどのように 組織のアジリティを変えるのか?
junki
4
930
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
4
1.1k
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
3
2.2k
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
110
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
650
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.4k
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
130
不要なレビューをAIにまかせて AIコーディングの環境改善を加速した
shoota
1
150
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
360
スキルと MCP ツール、責務をどう分けるか? AI が迷わないインターフェース設計の戦略
cdataj
1
1.1k
【2026年版】 ベクトル検索䛸 Embedding最前線
mocobeta
2
220
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.1k
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
11
38k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
840
Deep Space Network (abreviated)
tonyrice
0
170
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Transcript
スケールアウトできる Managed RDBMS Azure Cosmos DB for PostgreSQL 2022/11/17 –
第41回 JAZUG Night 株式会社 pnop / Cloudlive 株式会社 浅見 城輝
♥BEER About me kuniteru.asami Find me Database Microsoft Azure 2012~
Microsoft Azure
株式会社pnop 株式会社 pnop は Microsoft Azure に関する課題解決のプロフェッショナル集団です。 皆様のプロジェクトに、 Azure経験豊富なエンジニアがノウハウを提供いたします。 Azure
アーキテクチャ 設計相談 Azure 運用設計 相談 Azure開発 Azure 環境構築 Azure トラブル シューティング Azure トレーニング 新規システムを Azureで稼働させしたい 既存システムを Azureに移行したい パッケージ・ソリューションをAzure に対応したい Azureを利用することで システムコストを下げたい Azureで安全・安心な システムを提供したい Azureを利用することで 運用担当者の負担を軽減したい Azureを利用しているうえで 困っていることを解決したい Azureのスキルを向上したい Azureに関するご相談・お問い合わせ:
[email protected]
https://www.pnop.co.jp
注意事項 このスライドは 2022 年 11 月 17 日 時点の情報を 基にしています
Agenda Azure Cosmos DB for PostgreSQL とは Citus のテーブル型
Azure Cosmos DB for PostgreSQL とは
分散クエリ実行や 高性能なスケールアウトを備えた フルマネージドな PostgreSQL
特徴 スケールアウトできる RDBMS 並列化による 20 倍 から 300 倍以上の 高パフォーマンス
グローバル レプリケーション 列指向ストレージ対応 Citus エクステンション フルマネージド ネイティブ PostgreSQL
ベンチマーク https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/how-to-benchmark-performance-of-citus-and-postgres-with-hammerdb/ba-p/3254918
アーキテクチャ 一つの Coordinator ノードと、複数の Worker ノードで構成される Coordinator ノード クライアントアプリケーションからの接続を受け付ける 分散テーブルや参照テーブルのメタデータと通常のテーブルやその他の
PostgreSQL オブジェクトを保持 分散テーブル、参照テーブルの要求を受けた場合は、対象の Worker ノードに SQL クエリを送信 Worker ノード 通常の PostgreSQL テーブルとして分散テーブル、参照テーブルのデータを保持 https://github.com/citusdata/citus
Citus のテーブル型 分散テーブル 参照テーブル ローカル テーブル
分散テーブル 分散テーブルは、テーブル毎にシャードキー列を指定してユーザーが作成する デフォルトでは 32 のシャードに分割され、Worker ノードに格納される シャード数が Worker ノード数の倍数ではない場合、ノードによってシャード数は異なる SELECT
create_distributed_table('table_name', 'distribution_column'); https://www.citusdata.com/product#citus-diagram
分散テーブルの併置(コロケーション) 異なる Worker ノードをまたいだ Join 操作はできない それを避けるため、異なるテーブル間で、シャードキー値が 同じ場合、同一の Worker ノードに配置させることにより、
Worker ノード内で Join を済ませることができる https://learn.microsoft.com/ja-jp/azure/cosmos-db/postgresql/quickstart-build-scalable-apps-concepts#colocation
参照テーブル すべての Worker ノードに全データが複製されるテーブル ディメンションテーブル(マスタテーブル)に向いている Worker ノードに参照テーブルを作成する SELECT create_reference_table('table_name'); ローカル
テーブル 分散テーブルにも参照テーブルにもしていないテーブルは、 Coordinator ノードで通常の PostgreSQL テーブルとなる ローカルテーブルと分散テーブルとの Join 操作は可能
スケールアウト スケールアウトして Worker ノードを増やしても、 自動では分散テーブルの再配置はされないため、 ユーザー(DB管理者)自身で再配置を実施する オンラインで再配置を実行でき、他のトランザクションが ブロックされるのはメタデータを更新する一瞬だけ SELECT rebalance_table_shards('table_name');
まとめ Azure Cosmos DB for PostgreSQL は、分散クエリ実行や 高性能なスケールアウトを備えたフルマネージドな PostgreSQL 分散クエリやスケールアウトの恩恵を受けるには、テーブル毎
に設定が必要 パフォーマンスを上げるために、分散テーブルのシャードキー を何にするかが重要 異なる Worker ノードをまたいだ Join 操作はできないため、 コロケーション(併置)をする スケールアウトしたら、分散テーブルの再配置を実施する
参考資料 Azure Cosmos DB for PostgreSQL documentation https://learn.microsoft.com/ja-jp/azure/cosmos-db/postgresql/ citusdata https://www.citusdata.com/
GitHub - citusdata / citus https://github.com/citusdata/citus Azure Cosmos DB: Liftoff https://learn.microsoft.com/en-us/events/azure-cosmos-db-liftoff/ Citus Con: An Event for Postgres 2022 https://www.citusdata.com/cituscon/2022/schedule
http://www.pnop.co.jp/