正式发布丨Azure Cosmos DB for PostgreSQL

ChongTuWang
• 阅读 934

本文节选翻译自 Ozgun Erdogan 和 Umur Cubukcu 的博客

今天,我们很高兴地宣布 Azure Cosmos DB for PostgreSQL 正式发布,用于构建云原生关系应用程序。该服务为开发者带来最新的 PostgreSQL 功能,允许您从免费试用开始,并随着工作负载的增长扩展您的数据库。

随着这一宣布,Azure 也成为第一个提供自己的单一数据库服务的云提供商,该服务支持关系和 NoSQL 工作负载。您现在可以使用熟悉的 Azure Cosmos DB 数据库为关系和非关系数据构建云原生应用程序。

正式发布丨Azure Cosmos DB for PostgreSQL

三个关键属性

Azure Cosmos DB for PostgreSQL 是第一个结合了三个关键属性的托管数据库:

  • 真正的 PostgreSQL,最新版本:我们使用开源 PostgreSQL 并为之做出贡献。这样,您就不会只获得部分 API。在每个版本发布后的两周内您就可以完全熟悉 PostgreSQL 并获益。
  • 云数据库:从广泛的托管数据库功能中获益,不必再担心您的数据库。例如,可以跨可用区创建高可用性配置,将集群分叉或恢复到特定时间点,或者一键升级 PostgreSQL 和数据库扩展。
  • 从小处着手,在全球范围内扩展(由 Citus 提供支持):通过免费试用开始测试您的应用程序。随着工作负载的增长,通过启用分布式表来扩展它,由 PostgreSQL 的 Citus 开源扩展提供支持。这样,我们将为您处理大规模的关系特性——分布式事务、死锁、外键等等。如果您需要走向全球,请启用跨区域复制以降低延迟和获得全球可用性。

您的云原生数据库

从 Azure Cosmos DB 免费试用版升级,或为 PostgreSQL 创建新数据库,可为您提供许多新功能。示例功能包括:

  • 跨可用区 (AZ) 的高可用性
  • 自动备份/恢复和回退到特定时间点的能力
  • 一键升级到最新的 PostgreSQL 和扩展版本
  • 向上/向下扩展您的 CPU 和存储资源
  • 静态加密和私有端点
  • 符合 30 个 Azure 区域的全球和本地认证
  • 跨 Azure 区域的全球分布以容忍区域故障
    …… 

正式发布丨Azure Cosmos DB for PostgreSQL

借助这些功能,您可以获得云原生的托管数据库功能。我们还提供云集成,以便您更轻松地在 Azure 上进行构建。

Azure 云集成

云原生数据库的另一个关键特性是它与云的其余部分的集成程度。在此之前,如果 Azure Blob 存储中有数据,则需要将该数据下载到另一个 VM,然后将其上传到您的数据库。而现在开始,您可以通过全新的 PostgreSQL 扩展 pg_azure_storage 直接与 Azure Blob 存储交互。连接到您的 PostgreSQL 数据库后,您只需要运行以下命令:

SELECT create_extension('azure_storage');
SELECT azure_storage.account_add('mystorageaccount', 'SECRET_ACCESS_KEY');

CREATE TABLE github_events
(
    event_id bigint,
    event_type text,
    event_public boolean,
    repo_id bigint,
    payload jsonb,
    repo jsonb,
    user_id bigint,
    org jsonb,
    created_at timestamp
);

COPY github_events FROM 'https://mystorageaccount.blob.core.windows.net/data/github_events.csv' WITH (format 'csv');

借助这些云原生功能,您可以轻松构建应用程序,并且准备好以任何规模运行。为此,我们的 PostgreSQL 服务内置了 Citus 扩展,允许您无限制地横向扩展您的数据库。Citus 打包为一个完全开源的扩展,利用分布式表的强大功能扩展了 PostgreSQL,从而实现了大规模的分布式查询执行和性能。Citus 这样做的同时保留了真正的 PostgreSQL 核心,支持 JSONB、地理空间、丰富的索引、关系语义等。

具有分布式表功能的 Postgres

使用我们的 PostgreSQL 服务,您可以开始在单节点服务器组上构建您的应用程序,就像使用 PostgreSQL 一样。随着应用程序的可扩展性和性能要求的增长,您可以启用分布式表并无缝扩展到多个节点。

Azure Cosmos DB 使这种转变(启用分布式表)变得容易。以前,如果您想使用 Citus 扩展来创建分布式表,您首先必须选择一个分片键。然后,您必须运行一个阻止写入操作的命令。在 Citus 11.1 中,创建分布式表和许多以前写入的阻塞操作完全变成在线的。

创建分布式表后,Citus 会处理其余的工作。示例功能包括:

  • 分布式事务和分布式死锁检测
  • 自动托管组,允许您强制执行外键、约束并轻松加入您的数据,而无需进行昂贵的重新分区操作
  • 分布式查询处理,其中计算被传送到数据
  • 分布式实用程序命令,例如索引创建、真空/分析
  • 能够读取和写入集群中的任何一个节点
  • 在线分片重新平衡和隔离嘈杂的租户/分片 
    ……

全球分布式数据库

Azure Cosmos DB 的另一个主要优势是全球可用性。使用 Azure Cosmos DB,您可以创建跨区域的集群,并让您的应用程序跨这些区域查询数据库。我们希望通过我们的 PostgreSQL 服务为您带来同样的好处。

从今天开始,您可以在任何受支持的区域中为 PostgreSQL 创建只读副本。您还可以将副本提升为可读写的独立服务器组。跨区域只读副本以及集群升级为您带来以下好处:

  • 低延迟读取:对于地理分布式应用程序,您可以提供来自相同或最近区域的读取
  • 灾难恢复:如果您观察到覆盖多个可用区的区域中断,您可以通过提升该区域中的副本来故障转移到另一个区域
  • 迁移到其他区域:如果要迁移到其他区域,可以在新区域创建副本,等待数据赶上,然后提升副本

正式发布丨Azure Cosmos DB for PostgreSQL

欢迎使用 Azure Cosmos DB 免费试用版启动一个新实例。如果您在旅程中走得更远并且需要访问所有功能,则可以改为通过 Azure 门户创建一个小型实例。您有任何问题或意见,欢迎随时反馈给我们。

点我了解 Azure Cosmos DB,查看最新产品信息~

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
2019 年 CNCF 中国云原生调查报告
!头图.jpg(https://ucc.alicdn.com/pic/developerecology/6db0c465111b4d9a96eb1ffe85c00e7a.jpg)中国72%的受访者生产中使用Kubernetes在CNCF,为更好地了解开源和云原生技术的使用,我们定期调查社区。这是第三次中国云原生调查,以中文进行
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(