{"id":5076,"date":"2022-10-12T09:01:38","date_gmt":"2022-10-12T16:01:38","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cosmosdb\/?p=5076"},"modified":"2022-12-02T17:12:45","modified_gmt":"2022-12-03T01:12:45","slug":"distributed-postgresql-comes-to-azure-cosmos-db","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/distributed-postgresql-comes-to-azure-cosmos-db\/","title":{"rendered":"Distributed PostgreSQL comes to Azure Cosmos DB"},"content":{"rendered":"<p>Today, we\u2019re excited to announce Azure Cosmos DB for PostgreSQL, a new Generally Available service to build cloud-native relational applications. This service brings developers the latest PostgreSQL features, allows you to start with a free trial, and scale out your database as your workload grows.<\/p>\n<p>With this announcement, Azure also becomes the first cloud provider to offer its own single database service that supports both relational and NoSQL workloads. You can now build cloud-native applications for relational and non-relational data using the familiar <a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/cosmos-db\/#overview\">Azure Cosmos DB<\/a> database.<\/p>\n<p>This blog post provides a high-level overview of our service, powered by open source Citus and PostgreSQL; and shares some of its key features.<\/p>\n<h2><span style=\"font-size: 18pt;\">Azure Cosmos DB for PostgreSQL<\/span><\/h2>\n<p>Azure Cosmos DB for PostgreSQL is the first managed database that brings together a combination of three key properties:<\/p>\n<ol>\n<li><strong>True PostgreSQL, with latest versions<\/strong>: We work with and contribute to open-source PostgreSQL. This way, you don\u2019t get a partial API. You get the full familiarity and benefits of PostgreSQL, within two weeks of each release.<\/li>\n<li><strong>Cloud database<\/strong>: Benefit from a broad range of managed database features \u2013 so that you don\u2019t have to worry about your database again. For example, you can create high availability configurations across availability zones, fork or restore your cluster to a particular point in time, or one-click upgrade your PostgreSQL &amp; database extensions.<\/li>\n<li><strong>Start small, scale globally\u2014powered by Citus<\/strong>: Start testing your apps with a Free Trial. As your workload grows, scale it out by enabling distributed tables, powered by the <a href=\"https:\/\/github.com\/citusdata\/citus\">Citus open source<\/a> extension to PostgreSQL. This way, we\u2019ll take care of relational features at scale \u2013 distributed transactions, deadlocks, foreign keys, and more \u2013 for you. If you need to go global, enable cross-region replication for lower latency &amp; global availability.<\/li>\n<\/ol>\n<p>If you\u2019re just starting with Azure Cosmos DB, let\u2019s see how you can benefit from these three properties with a few examples.<\/p>\n<h2><span style=\"font-size: 18pt;\">Free trial<\/span><\/h2>\n<p><a href=\"https:\/\/cosmos.azure.com\/try\/\" target=\"_blank\" rel=\"noopener\">The Azure Cosmos DB free trial<\/a> is the easiest way to get started in building your cloud-native app. With this feature, you get all the native capabilities that comes with <a href=\"https:\/\/www.postgresql.org\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL<\/a>, including rich <a href=\"https:\/\/www.citusdata.com\/blog\/2016\/07\/14\/choosing-nosql-hstore-json-jsonb\/\" target=\"_blank\" rel=\"noopener\">JSON support<\/a>, <a href=\"https:\/\/www.citusdata.com\/blog\/2017\/10\/17\/tour-of-postgres-index-types\/\" target=\"_blank\" rel=\"noopener\">powerful indexing<\/a>, extensive datatypes, full text search, and much more. Furthermore, as PostgreSQL releases new versions, we make those versions available to you within two weeks. This way, you can benefit from the latest features in PostgreSQL without delays.<\/p>\n<p><figure id=\"attachment_5147\" aria-labelledby=\"figcaption_attachment_5147\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart.png\"><img decoding=\"async\" class=\"wp-image-5147 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart-1024x698.png\" alt=\"Image Free Trial quickstart\" width=\"640\" height=\"436\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart-1024x698.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart-300x204.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart-768x524.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Free-Trial-quickstart.png 1357w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_5147\" class=\"wp-caption-text\">Use Quick start in Azure portal to set up Azure Cosmos DB for PostgreSQL<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>Of course, Free Trial is enough to get started but you\u2019ll need more as your application gets more serious. When this happens, you can click the Upgrade button to enable a broad range of new features.<\/p>\n<h2><span style=\"font-size: 18pt;\">Your cloud-native database<\/span><\/h2>\n<p>Upgrading from the free trial, or creating a <a href=\"https:\/\/portal.azure.com\/#view\/Microsoft_Azure_DocumentDB\/CreatePostgreSQL.ReactView\" target=\"_blank\" rel=\"noopener\">new database for PostgreSQL<\/a>, gives you many new capabilities. Example features include:<\/p>\n<ul>\n<li>High Availability across Availability Zones (AZ)<\/li>\n<li>Automatic backup\/restore &amp; ability to rewind to a particular point-in-time<\/li>\n<li>One-click upgrade to latest PostgreSQL &amp; extension versions<\/li>\n<li>Scale up\/down your CPU and storage resources<\/li>\n<li>Encryption at rest and private endpoints<\/li>\n<li>Compliance with global and local certifications across 30 Azure regions<\/li>\n<li>Global distribution across Azure regions to tolerate regional failures<\/li>\n<li>And more<\/li>\n<\/ul>\n<p><figure id=\"attachment_5148\" aria-labelledby=\"figcaption_attachment_5148\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal.png\"><img decoding=\"async\" class=\"wp-image-5148 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal-1024x817.png\" alt=\"Image Overview screen Portal\" width=\"640\" height=\"511\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal-1024x817.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal-300x239.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal-768x613.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Overview-screen-Portal.png 1356w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_5148\" class=\"wp-caption-text\">Configure your account and explore features in the Azure portal<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p>With these features, you get managed database capabilities native to the cloud. We also provide cloud integrations so that you have an easier time building on Azure.<\/p>\n<h2><span style=\"font-size: 18pt;\">Azure cloud integrations<\/span><\/h2>\n<p>Another key feature of a cloud-native database is how well it integrates with the rest of the cloud. Prior to today, if you had data in <a href=\"https:\/\/azure.microsoft.com\/products\/storage\/blobs\/\" target=\"_blank\" rel=\"noopener\">Azure Blob Storage<\/a>, you\u2019d need to download that data to another VM and then upload it to your database. This introduced unnecessary friction when you were building your application.<\/p>\n<p>Starting now, you can directly interface with Azure Blob Storage through a brand-new PostgreSQL extension, <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/cosmos-db\/postgresql\/howto-ingest-azure-blob-storage\">pg_azure_storage<\/a>. After connecting to your PostgreSQL database, you just need to run the following commands:<\/p>\n<pre class=\"prettyprint\">SELECT create_extension('azure_storage');\r\nSELECT azure_storage.account_add('mystorageaccount', 'SECRET_ACCESS_KEY');\r\n\r\nCREATE TABLE github_events\r\n(\r\n    event_id bigint,\r\n    event_type text,\r\n    event_public boolean,\r\n    repo_id bigint,\r\n    payload jsonb,\r\n    repo jsonb,\r\n    user_id bigint,\r\n    org jsonb,\r\n    created_at timestamp\r\n);\r\n\r\nCOPY github_events FROM 'https:\/\/mystorageaccount.blob.core.windows.net\/data\/github_events.csv' WITH (format 'csv');<\/pre>\n<p>With pg_azure_storage, you can also make modifications as you\u2019re ingesting data from Azure Blob Storage using user-defined functions. For a detailed list of all features, you can refer to <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/cosmos-db\/postgresql\/introduction\" target=\"_blank\" rel=\"noopener\">our documentation here<\/a>.<\/p>\n<p>With these cloud-native capabilities, you can build your application with ease. <span class=\"TrackChangeTextInsertion TrackedChange SCXW215609200 BCX8\"><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW215609200 BCX8\">And better yet, you can build your applications ready for running at any scale.<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW215609200 BCX8\"><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW215609200 BCX8\">\u00a0<\/span><\/span><\/span><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW215609200 BCX8\">For this, <\/span><span class=\"NormalTextRun SCXW215609200 BCX8\">our service<\/span><span class=\"NormalTextRun SCXW215609200 BCX8\"> for PostgreSQL <\/span><span class=\"NormalTextRun SCXW215609200 BCX8\">has <\/span><span class=\"NormalTextRun CommentStart CommentHighlightPipeRest CommentHighlightRest SCXW215609200 BCX8\">the<\/span> <\/span><a class=\"Hyperlink SCXW215609200 BCX8\" href=\"https:\/\/github.com\/citusdata\/citus\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun Underlined SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun CommentHighlightRest SCXW215609200 BCX8\" data-ccp-charstyle=\"Hyperlink\">Citus extension<\/span><\/span><\/a><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"> <span class=\"NormalTextRun CommentHighlightRest SCXW215609200 BCX8\">built-in <\/span><span class=\"NormalTextRun CommentHighlightRest SCXW215609200 BCX8\">and <\/span><span class=\"NormalTextRun CommentHighlightPipeRest SCXW215609200 BCX8\">allows you to <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW215609200 BCX8\">scale-out<\/span><span class=\"NormalTextRun SCXW215609200 BCX8\"> your database<\/span><span class=\"NormalTextRun SCXW215609200 BCX8\"> without limitations.<\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW215609200 BCX8\"><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW215609200 BCX8\"> Packaged as a fully <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW215609200 BCX8\">open-source<\/span><span class=\"NormalTextRun SCXW215609200 BCX8\"> extension, <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW215609200 BCX8\">Citus<\/span><span class=\"NormalTextRun SCXW215609200 BCX8\"> extends PostgreSQL with the power of distributed tables, enabling distributed query execution and\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW215609200 BCX8\"><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW215609200 BCX8\">performance at scale. <\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW215609200 BCX8\"><span class=\"TextRun SCXW215609200 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><a href=\"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3448016.3457551\"><span class=\"NormalTextRun SpellingErrorV2Themed SCXW215609200 BCX8\">Citus<\/span><\/a><span class=\"NormalTextRun SCXW215609200 BCX8\"> does this while preserving true PostgreSQL at its core, with support for JSONB, geospatial, rich indexing, relational semantics, and more.<\/span><\/span><\/span><\/p>\n<h2><span style=\"font-size: 18pt;\">Postgres with the power of distributed tables<\/span><\/h2>\n<p>With our service for PostgreSQL, you can start building your apps on a single node server group, the same way you would with PostgreSQL. As your app\u2019s scalability and performance requirements grow, you can enable distributed tables and seamlessly scale to multiple nodes.<\/p>\n<p>Azure Cosmos DB makes this transition \u2013 enabling distributed tables \u2013 easy. Previously, if you wanted to use the Citus extension to create a distributed table, you\u2019d first have to pick a sharding key. You\u2019d then have to run a command that would block write operations. With <a href=\"https:\/\/www.citusdata.com\/blog\/2022\/09\/19\/citus-11-1-shards-postgres-tables-without-interruption\/\" target=\"_blank\" rel=\"noopener\">Citus 11.1<\/a>, creating a distributed table and many previously write blocking operations, become fully online.<\/p>\n<p>If you want to see how this online operation works, you\u2019ll love this <strong>1-minute video<\/strong>.<\/p>\n<p style=\"text-align: center;\"><iframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/Pggo9cYHx2g?start=349&amp;end=446\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Once you create a distributed table, Citus takes care of the rest. Example features include:<\/p>\n<ul>\n<li>Distributed transactions &amp; distributed deadlock detection<\/li>\n<li>Automatic colocation groups that allow you to enforce foreign keys, constraints, and easily join your data without costly repartition operations<\/li>\n<li>Distributed query processing, where computations are shipped to the data<\/li>\n<li>Distributed utility commands, such as index creation, Vacuum \/ Analyze<\/li>\n<li>Ability to read from and write to any one of the nodes in the cluster<\/li>\n<li>Online shard rebalancing &amp; isolating noisy tenants \/ shards<\/li>\n<li>And more<\/li>\n<\/ul>\n<p>Using these features, you can scale out many types of applications. Real-world customer applications built this way include multi-tenant SaaS, real-time operational analytics, and high throughput transactional apps. These apps span across various verticals such as sales &amp; marketing automation, healthcare, IOT\/telemetry, asset tracking &amp; logistics, finance, and search.<\/p>\n<h2><span style=\"font-size: 18pt;\">Performance at scale<\/span><\/h2>\n<p>The primary benefit of scaling is performance. Since users run PostgreSQL across many workloads, we use various benchmarks in testing our service\u2019s performance. For these workloads and their respective benchmarks, we shared a <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/azure-database-for-postgresql\/how-to-benchmark-performance-of-citus-and-postgres-with-hammerdb\/ba-p\/3254918\" target=\"_blank\" rel=\"noopener\">detailed description here<\/a>.<\/p>\n<p>Among these benchmarks, <a href=\"https:\/\/github.com\/TPC-Council\/HammerDB\" target=\"_blank\" rel=\"noopener\">HammerDB<\/a> is an open-source one that implements the TPC-C specification. HammerDB also provides benchmark implementations for a lot of different databases, including Citus database. This makes it easy to compare results across different database engines.<\/p>\n<p>For our tests, we first thought about running HammerDB against a custom hardware config with the goal of showing high performance results. However, we then decided to test our service\u2019s performance in an easily repeatable way, using the exact same setup and features you\u2019d get in production.<\/p>\n<p>So, we open sourced <a href=\"https:\/\/github.com\/citusdata\/citus-benchmark\/tree\/master\/azure\" target=\"_blank\" rel=\"noopener\">a benchmarking tool<\/a> that provisions a production cluster in Azure using our service for PostgreSQL. Once you have the benchmark and an Azure subscription, all you need to do is run this simple command:<\/p>\n<pre class=\"prettyprint\"># IMPORTANT NOTE: Running this command will provision 4 new Citus clusters\r\n# and 4 times a 64-vCore driver VM in your Azure subscription. So, running\r\n# the following command will cost you (or your employer) money!\r\nazure\/bulk-run.sh azure\/how-to-benchmark-blog.runs | tee -a results.csv<\/pre>\n<p>When we ran HammerDB\u2019s TPC-C implementation on a Citus cluster of 20 nodes, we saw results exceeding <strong>2.0 million NOPM<\/strong>. Even more exciting, this result didn\u2019t come with a custom setup, but rather with our regular managed service and all its available features.<\/p>\n<p>You can read more about our <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/azure-database-for-postgresql\/how-to-benchmark-performance-of-citus-and-postgres-with-hammerdb\/ba-p\/3254918#section09\" target=\"_blank\" rel=\"noopener\">2M NOPM HammerDB results here<\/a>.<\/p>\n<h2><span style=\"font-size: 18pt;\">Globally distributed database<\/span><\/h2>\n<p>Another key benefit to Azure Cosmos DB is global availability. With Azure Cosmos DB, you can create clusters spanning across regions and have your application query the database across those regions. We aspire to bring you the same benefits with our service for PostgreSQL.<\/p>\n<p>Starting today, you can create <a href=\"https:\/\/review.learn.microsoft.com\/azure\/cosmos-db\/postgresql\/concepts-read-replicas\" target=\"_blank\" rel=\"noopener\">read replicas for PostgreSQL<\/a> in any supported region. You can also promote a replica to an independent server group that is readable and writable. Cross-region read replicas along with cluster promotion then brings you the following benefits:<\/p>\n<ol>\n<li>Low latency reads: For geo-distributed applications, you can serve reads from the same or nearest region<\/li>\n<li>Disaster recovery: If you\u2019re observing a regional outage that covers multiple Availability Zones, you can failover to another region by promoting the replica in that region<\/li>\n<li>Migrating to another region: If you want to move to another region, you can create a replica in the new region, wait for the data to catch up, and then promote the replica<\/li>\n<\/ol>\n<p><figure id=\"attachment_5123\" aria-labelledby=\"figcaption_attachment_5123\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen.png\"><img decoding=\"async\" class=\"wp-image-5123 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen-1024x575.png\" alt=\"screenshot of selecting Azure regions in which to replicate data using the Azure portal\" width=\"640\" height=\"359\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen-1024x575.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen-300x169.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen-768x431.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/screenshot-updated-replication-screen.png 1280w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_5123\" class=\"wp-caption-text\">Use the Azure portal to select Azure regions in which to replicate data<\/figcaption><\/figure><\/p>\n<h2><span style=\"font-size: 18pt;\">Start your journey towards a globally distributed PostgreSQL database\u00a0<\/span><\/h2>\n<p>Today, we\u2019re excited to announce General Availability for Azure Cosmos DB for PostgreSQL. With this service, you can now start your journey in building cloud-native applications using our Free Trial. You can then continue onto using a feature-rich managed database, natively integrate with other Azure cloud services, scale out your database as your workload grows, and globally distribute your database across regions.<\/p>\n<p>Thanks to these features, you can focus on your application and stop worrying about your database.<\/p>\n<p>If this sounds interesting, you can spin up a new instance using our <a href=\"https:\/\/cosmos.azure.com\/try\/\" target=\"_blank\" rel=\"noopener\">Try Azure Cosmos DB Free trial today<\/a>. If you\u2019re further along in your journey and need access to all features, you can create a small instance <a href=\"https:\/\/portal.azure.com\/#view\/Microsoft_Azure_DocumentDB\/CreatePostgreSQL.ReactView\" target=\"_blank\" rel=\"noopener\">through the Azure Portal<\/a> instead.<\/p>\n<p>Of course, if you have questions or comments in your journey, we\u2019d be happy to hear from you. Please feel free to <a href=\"mailto:AskAzureDBforPostgreSQL@service.microsoft.com?subject=Azure%20Cosmos%20DB%20for%20PostgreSQL%20Blog%20Post\">reach us anytime<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p><figure id=\"attachment_5143\" aria-labelledby=\"figcaption_attachment_5143\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res.png\"><img decoding=\"async\" class=\"wp-image-5143 size-large\" src=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res-1024x538.png\" alt=\"Microsoft CEO Satya Nadella announces Azure Cosmos DB for PostgreSQL\" width=\"640\" height=\"336\" srcset=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res-1024x538.png 1024w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res-300x158.png 300w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res-768x403.png 768w, https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-content\/uploads\/sites\/52\/2022\/10\/Satya-Ignite_blog-image_high-res.png 1200w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"figcaption_attachment_5143\" class=\"wp-caption-text\">Microsoft CEO Satya Nadella announces Azure Cosmos DB for PostgreSQL at Ignite 2022<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/p>\n<p><em>Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, we\u2019re excited to announce Azure Cosmos DB for PostgreSQL, a new Generally Available service to build cloud-native relational applications. This service brings developers the latest PostgreSQL features, allows you to start with a free trial, and scale out your database as your workload grows. With this announcement, Azure also becomes the first cloud provider [&hellip;]<\/p>\n","protected":false},"author":102952,"featured_media":5143,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[12,1838],"tags":[1837,1774,1836],"class_list":["post-5076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-postgresql","tag-citus","tag-msignite","tag-postgresql"],"acf":[],"blog_post_summary":"<p>Today, we\u2019re excited to announce Azure Cosmos DB for PostgreSQL, a new Generally Available service to build cloud-native relational applications. This service brings developers the latest PostgreSQL features, allows you to start with a free trial, and scale out your database as your workload grows. With this announcement, Azure also becomes the first cloud provider [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/5076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/102952"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=5076"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/5076\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/5143"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=5076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=5076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=5076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}