时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft Azure网络
小提示:您能找到这篇{Azure Database for PostgreSQL 中的节点和表–超大规模}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Azure Database for PostgreSQL 中的节点和表–超大规模内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
Nodes 超大规模(Citus)承载类型允许Azure Database for PostgreSQL服务器(称为节点,)在"无共享"体系结构中彼此协调。服务器组中的节点共同保存更多的数据,并使用比单个服务器上的更多的CPU内核。该体系结构还允许通过向服务器组中添加更多节点来缩放数据库。 协调器和辅助角色 每个服务器组都有一个协调器节点和多个辅助角色。应用程序将其查询发送到协调器节点,该节点将其中继到相关的工作线程并累计其结果。应用程序无法直接连接到辅助角色。 超大规模(Citus)使数据库管理员能够在不同的工作节点上分发表,并存储不同的行。分布式表是超大规模(Citus)性能的关键。如果无法分发表,则会将它们完全留在协调器节点上,并且无法利用跨计算机并行。 对于分布式表的每个查询,协调器会将其路由到单个辅助角色节点,或将其并行在多个节点上,具体取决于所需的数据是位于单个节点上还是在多个节点上。协调器通过咨询元数据表确定要执行的操作。这些表跟踪辅助角色节点的DNS名称和运行状况,以及跨节点分布的数据。 表类型 超大规模(Citus)服务器组中有三种类型的表,每个表在节点上以不同方式存储,并用于不同目的。 类型1:分布式表 第一种类型,最常见的是分布式表。它们看起来像是SQL语句的普通表,但它们在工作节点之间水平分区。这意味着表中的行存储在名为分片的碎片表中的不同节点上。 超大规模(Citus)只在整个群集中运行SQL但DDL语句。更改分布式表的架构会进行级联以更新所有表在工作线程中的分片。 分布列 超大规模(Citus)使用算法分片将行分配到分片。根据名为分布列的表列的值,赋值是明确的。群集管理员必须在分发表时指定此列。做出正确的选择对性能和功能非常重要。 类型2:引用表 引用表是一种分布式表,其整个内容将集中到单个分片中。分片在每个辅助角色上复制。对任何工作人员的查询都可以在本地访问引用信息,而无需从另一个节点请求行的网络开销。引用表没有分布列,因为无需区分单独的分片每行。 引用表通常很小,用于存储与在任何辅助节点上运行的查询相关的数据。例如订单状态或产品类别等枚举值。 类型3:本地表 使用超大规模(Citus)时,连接到的协调器节点是一个常规的PostgreSQL数据库。可以在协调器上创建普通表,并选择不分片。 对于本地表,最好是不参与联接查询的小型管理表。例如,应用程序登录和身份验证的用户表。 分片 上一部分介绍了如何将分布式表存储为辅助角色节点上的分片。本部分将讨论更多技术详细信息。 pg_dist_shard协调器的元数据表为系统中每个分布式表的每个分片都包含一行。该行将分片ID与(shardminvalue,shardmaxvalue)的哈希空间中的整数范围匹配。 SQL SELECT*from pg_dist_shard; logicalrelid|shardid|shardstorage|shardminvalue|shardmaxvalue ---------------+---------+--------------+---------------+--------------- github_events|102026|t|268435456|402653183 github_events|102027|t|402653184|536870911 github_events|102028|t|536870912|671088639 github_events|102029|t|671088640|805306367 (4 rows) 如果协调器节点要确定哪些分片包含一行github_events,则将对该行中分布列的值进行哈希处理。然后,该节点检查哪些分片的'范围包含哈希值。定义这些范围是为了使哈希函数的图像是其不相交的联合。 分片放置 假设分片102027与相关行相关联。在其中一个辅助角色中调用的表中读取或写入该行github_events_102027。哪个工作线程?这完全由元数据表确定。分片到辅助角色的映射称为分片位置。 协调器节点将查询重写为引用特定表的片段,github_events_102027并在相应的辅助角色上运行这些片段。下面是在幕后运行的查询示例,用于查找包含分片ID 102027的节点。 SQL SELECT shardid, node.nodename, nod微信小程序是一次开发吗e.nodeport FROM pg_dist_placement placement JOIN pg_dist_node node ON placement.groupid=node.groupid AND node.noderole='primary'::noderole WHERE shardid=102027; 输出 ┌─────────┬───────────┬──────────┐ │shardid│nodename│nodeport│ ├─────────┼───────────┼──────────┤ │102027│localhost│5433│ └─────────┴──────罗德 公关公司─────┴──────────┘ |
上一篇:YouTube油管赚钱变现6种方式介绍
下一篇:Lazada、Shopee跨境店铺与本土店铺物流发货的区别
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“Azure Database for PostgreSQL 中的节点和表–超大规模”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Azure Database for PostgreSQL 中的节点和表–超大规模的相关事宜。
关键词:Azure,Database,for,PostgreSQL,