posterior descending artery_poster session

posterior descending artery_poster session本文作者:Craig Kerstiens ,目前在负责 @citusdata 的云团队。Citus 将 Postgres 扩展为可水平扩展的分布式数据库。本文是他之前一个好友采访他的记录(英文原文请…

本文作者:Craig Kerstiens ,目前在负责 @citusdata 的云团队。Citus 将 Postgres 扩展为可水平扩展的分布式数据库。本文是他之前一个好友采访他的记录(英文原文请看这里)。

posterior descending artery_poster session

以下是采访内容:

我之前时常跟各种开发者共进晚餐,基本上都认为开发者(包括他们自己)可能会有些自以为是。例如,有人说:“我爱Postgres,但我不知道为什么。” 我想他们应该是坐错了餐桌,以 Postgres 为例。。。经常有人问 我为什么选择 Postgres

实际上,一年多以前,好朋友 Dimitri Fontaine 在写一本 Postgres 的书,他询问是否可以采访我。我一直说他们缺少关于 Postgres 的好书,不过这个好友做了一件非常好的事,这本书提供针对开发人员(也包括 DBA)提供了很好的指南。但他希望能做得更好。

接下来是本书访谈的摘录。

介绍

自从被 Microsoft 收购以来, Craig 领导了@citusdata 云团队 ,该团队现在正在运行 Azure Postgres 的产品。Citus 将 Postgres 扩展为可水平扩展的分布式数据库。如果您有一个数据库,尤其是Postgres,则需要扩展到更多的节点(通常在100GB以上),Craig 总是很乐意聊天,看看 Citus 是否可以提供帮助。

Craig 之前在 @heroku PaaS 平台上工作了很多年,这个平台消耗了大量的 IT 资源,使得开发人员专注于构建功能和增加价值。Craig 在 Heroku 的大部分时间都花在了 Heroku Data 的产品和营销上。

您认为 PostgreSQL 开源项目和生态系统的扩展有多重要?

对我而言,扩展API和不断扩展的扩展生态系统可能是过去10年 Postgres 的最大进步。扩展功能使 Postgres 可以从传统的关系数据库扩展到更多的数据平台。无论是 hstore 中的初始 NoSQL 数据类型(不包括XML),还是GIS地理空间中丰富的功能集,或者近似算法(例如HyperLogLog或TopN),您都可以通过扩展本身将Postgres带入新的领域。

扩展功能使得数据库核心本身可以以较慢的速度发展。核心中的每个新功能都意味着它必须经过全面测试和安全。这并不是说扩展没有,而是可以存在于核心之外,这样才使得这些扩展的功能可以快速增长。

您最喜欢的 PostgreSQL 扩展是什么,为什么?

我最喜欢的三个扩展是:

  1. pg_stat_statements
  2. Citus
  3. HyperLogLog

pg_stat_statements对于应用程序开发人员而言,它无疑是最强大的扩展,无需深入了解数据库内部知识即可获得洞察力以优化其数据库。对于许多应用程序开发人员来说,数据库是一个黑匣子,而pg_stat_statements使用 AI 的强大基础,可以让您的数据库能够得到及时改进。

Citus:我当然会因为在那儿工作而有偏见,但是在加入之前,我关注了Citus和pg_shard长达三年。Citus将Postgres变成了一个水平可扩展的数据库。在后台进行分片,但应用程序开发人员不必考虑或了解这种复杂性。有了Citus,Postgres可以处理比以往更大的负荷量,因为以前的Postgres都被限制在一个盒子或过于复杂的架构中。

HyperLogLog:我要坦白。在某种程度上,我只是喜欢这么说:当您了解算法本身后,你会觉得自己很傻逼。“ K最小值,可观察的位模式,随机平均,谐波平均。”我的意思是当我们在用这些特性时候,干嘛一定非得很熟悉这些算法本身呢?简而言之,HyperLogLog 足够独特,而且占用的存储空间很小。如果您要构建类似Web分析的工具,那么HyperLogLog无疑是一个不错的选择。

您通常如何找到可能需要的扩展?或者说,您怎么知道您可能首先需要PostgreSQL扩展?

pgxn.org和github是我的两个建议。尽管Google往往也表现良好。当然,我还通过PostgresWeekly.com来了解最新消息。

实际上我常常不总是意识到自己需要一个。我搜索我要解决的问题并发现它。我可能永远不会搜索HyperLogLog,但是搜索Postgres近似计数或近似非重复的时候就能很快找到它。

您的应用程序代码库现在依赖某些PostgreSQL扩展才能运行时,您是否会想到任何弊端?例如,我可能需要扩展在云和SaaS产品中的可用性。

这个要看具体是什么扩展,有些扩展问题比较多,而有些扩展则更加成熟。许多主要的云提供商都支持一系列扩展,但它们不支持更多新的扩展。如果支持它,那么使用上就不会有太大的弊端。如果没有,您需要权衡自己运行和管理Postgres的成本,以及该扩展所提供的价值。就像管理所有事物与不管理所有事物一样,这里需要权衡取舍,您需要确定哪一个适合您。

如果您正在寻找有关Postgres的更深入的资源,我建议您读《PostgreSQL的艺术》一书。它是由一个私人朋友设计的,旨在从开发人员的角度为Postgres创建权威指南。如果使用代码CRAIG15,您还将获得15%的折扣。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10844.html

(0)
上一篇 2022-12-20 21:00
下一篇 2022-12-20

相关推荐

  • python如何捕获中断(python异常捕获和处理)

    python如何捕获中断(python异常捕获和处理)用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:

    2023-11-03
    127
  • MySQL 如何查看及修改数据库引擎

    MySQL 如何查看及修改数据库引擎1、查看mysql支持的引擎有哪些 show engines; 2、查看当前默认的引擎 show variables like '%storage_engine%'; 如图所示,…

    2023-03-17
    137
  • 让字符串替换变得更容易——Python replace方法

    让字符串替换变得更容易——Python replace方法在Python中,字符串在日常的开发中经常会被使用到。对于字符串的操作,特别是对字符串的替换操作,通常需要我们使用Python内置的replace方法。本文将详细阐述Python中replace方法的使用方法、注意事项以及使用场景,帮助读者更好地掌握replace方法的用法。

    2024-01-31
    83
  • MySQL实战优化之InnoDB整体架构

    MySQL实战优化之InnoDB整体架构一、InnoDB 更新数据得整体架构 每个组件的作用说明: 用一条更新数据来说明每个主键得作用: update student set name = 'zhangsan' where

    2023-04-20
    132
  • Python嵌套列表简介

    Python嵌套列表简介嵌套列表是Python的一个强大而灵活的数据结构,可以用来存储任意深度的数据,在列表和元组之间提供了一种简明而强大的解决方案。本文将介绍Python中的嵌套列表,包括什么是嵌套列表、如何创建它们、如何访问它们、如何修改它们以及如何使用它们来进行更复杂的计算和操作。

    2024-04-20
    55
  • Redis学习笔记(十五)Sentinel(哨兵)(中)[亲测有效]

    Redis学习笔记(十五)Sentinel(哨兵)(中)[亲测有效]上一篇 我们模拟了单机器下哨兵模式的搭建,那么接下来我们看下哨兵模式的实现与工作。 为什么又分成两篇呢?因为篇幅太长(偷懒),再一个这篇主要说的是Sentinel的初始化以及信息交换,下一篇

    2023-03-04
    129
  • mysql用户的管理

    mysql用户的管理– 创建用户 create user '用户名'@'ip地址' identified by 'password'; ip adress 可填%,即指可

    2023-03-08
    132
  • Redis入门(5) – 消息通知

    Redis入门(5) – 消息通知使用列表实现任务队列 优先级队列 按照规则订阅 Redis也可以作为任务队列。任务队列顾名思义,就是“传递任务的队列”。任务队列与消息队列什么区别呢?任务队列是逻辑模型,而消息队列是通信模型,两者是不

    2023-03-06
    132

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注