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
Kuniteru Asami
December 01, 2022
Technology
0
100
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
2022/11/17 - 第41回 JAZUG Night
先日リリースされたAzure Cosmos DB for PostgreSQLの紹介です
Kuniteru Asami
December 01, 2022
Tweet
Share
More Decks by Kuniteru Asami
See All by Kuniteru Asami
どう買う?Azure
kuniteru
1
670
現場からみた Azure リファレンスアーキテクチャ答え合わせ | Microsoft Build 2022
kuniteru
1
43
Azure Load Testingを利用したパフォーマンステスト
kuniteru
1
62
Understanding Azure Application Gateway
kuniteru
0
28
堅牢&運用楽々な WordPress を Azure App Service で
kuniteru
0
110
Azure PaaS とのよりセキュアな接続 - 初級編
kuniteru
0
32
あらためて Azure Virtual Network
kuniteru
0
28
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
kuniteru
1
30
Introduction of Azure Database for MySQL / PostgreSQL
kuniteru
0
27
Other Decks in Technology
See All in Technology
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
1.1k
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
460
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
470
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
290
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
OpenShiftでllm-dを動かそう!
jpishikawa
0
140
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
160
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
2
3.1k
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
180
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
200
BBQ
matthewcrist
89
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Design in an AI World
tapps
0
150
Between Models and Reality
mayunak
1
190
Music & Morning Musume
bryan
47
7.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
920
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
130
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/