DAT221 | 深入研究亚马逊云科技管理的 PostgreSQL 数据库

DAT221 | 深入研究亚马逊云科技管理的 PostgreSQL 数据库

关键字: [Amazon Web Services re:Invent 2023, pgTLE (PostgreSQL Trusted Language Extensions), Dat221-Dive_Deep_On_Aws_Managed_Postgresql_Databases, Postgres Extensions, Trusted Language Extensions, Hooks, Password Check Hook, Open Source, Community, Flexibility, Performance, Safety]

本文字数: 3300, 阅读完需: 16 分钟

视频

导读

近年来,PoatgreSQL 已经成为新应用程序开发和其他商业数据库迁移的首选数据库。本次分享包括 Amazon RDS for PostgreSLQ 和 Amazon Aurora Postgre SQL 兼容版的最近更新。本次分享中,您将了解 PostgreSQL 实例的常见用户操作和一般的活动准则,如性能和安全性方面。此外,参加本次分享,深入了解该服务的功能,回顾最新功能,为您提供解决不同技术难题的知识。

演讲精华

以下是小编为您整理的本次演讲的精华,共3000字,阅读时间大约是15分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

詹姆斯·姆尔德格恩斯基,作为亚马逊云科技的高级数据库工程师,欢迎各位参会者参加关于亚马逊云科技的托管PostgreSQL数据库的深度探讨会议。他以一句轻松的幽默开场白开始,询问在座有多少人真正期待的是一场关于可信语言扩展而非PostgreSQL深度探讨的会议。当他与大约15到20个举手的人一起笑时,他承认这次演讲的议程已经发生了一些变化。

虽然可信语言扩展带来了令人兴奋的新功能,但詹姆斯强调这仅仅是一个典型的PostgreSQL深度探讨主题的一部分。这些会议通常更关注扩展,例如将读取副本从5个扩大到15个,允许级联读取副本达到100个,以及与Redshift的零ETL集成。然而,他向观众保证,这次演讲中关于可信语言扩展的高潮部分将展示一些非常酷的创新。

詹姆斯建议大家保持耐心,因为随着后面展示的例子,完整的愿景会变得更为清晰。接下来,他介绍他的同事乔纳森·卡茨正式开始演讲。

乔纳森,作为亚马逊云科技的高级数据库专家,欢迎大约200名观众的到来,并立即引入了亚马逊关系数据库服务(RDS)的概念。他描述了RDS提供了从亚马逊自家的云原生Aurora引擎到开源和商业选项(如PostgreSQL、MySQL和Oracle)的关系数据库服务的选择。

RDS的核心优势在于处理耗时的管理任务,使开发人员能够专注于构建应用程序。乔纳森进一步详细介绍了他从应用程序开发人员成长为DB和系统管理员的过程。随着初创公司从5人发展到50多人,开发人员往往最终负责处理诸如操作系统补丁、安全、升级、高可用性等关键数据库责任。这些职责使他们无法专注于业务和产品创新。

RDS介入以自动化和管理所有那些繁琐的管理负担,乔纳森解释说。使用RDS,后台会自动处理可用性、备份和计算存储的扩展。默认情况下启用加密等安全功能。总之,RDS处理所有的数据库维护,让开发人员可以专注于应用创新。

关于PostgreSQL的历史背景,乔纳森提供了一些相关信息。它起源于1985年,作为加州大学伯克利分校的一个学术项目,目标是实现一个对象关系型数据库管理系统。这种设计允许灵活的扩展性,为今天的强大扩展功能奠定了基础。

1996年,PostgreSQL被开源,而不是由一家公司控制。实际上,乔纳森和吉姆最初是通过为开源项目做出贡献的活跃PostgreSQL社区而认识的。他们的动力在于展示PostgreSQL可以支持企业数据库所期望的所有商业级功能。

为了说明PostgreSQL的商业能力,乔纳森重点介绍了一些关键例子。强大的数据类型支持简化了应用程序开发。例如,内置的日期/时间函数和类型无需在应用程序代码中手动编写日期逻辑。JSON已经成为普遍的标准,而PostgreSQL是在21世纪初第一个支持JSON的原生关系的数据库。

通过GIN索引(适用于JSON)或BRIN索引(适用于时序数据)等强大的索引选项,可以在数百万行上快速查询和分析。为了在大规模情况下提高性能,PostgreSQL支持在多个核心上进行并行查询以及将数据分分为TB级别。扩展封装了新功能,而无需创建数据库的分支。总的来说,PostgreSQL提供了一套非常健壮的功能集。

通过扩展来实现这一扩展性是一种特别有价值的商业功能,乔纳森强调说。开发者可以添加新的数据类型、函数等等,而无需创建分支数据库版本。扩展甚至允许在将其纳入核心之前进行预览,就像TSE2全文搜索算法那样。

目前,亚马逊RDS和Aurora支持85个这些扩展,乔纳森指出,而总体上有超过1000个扩展可用。受支持的扩展提供了各种功能,如监控、UUID生成、分区管理以及将PostgreSQL转换为地理空间数据库。

他分享了一个故事,讲述了他以前在手动对超过100万行的电视节目表进行分区时所面临的困难,他希望当时已经有了pg_partman的自动分区功能。虽然扩展可以强大地扩展PostgreSQL,但乔纳森承认它们也可能带来挑战。

最常见的问题是扩展需要访问文件系统,这在许多生产环境中是受限的。此外,一些有用的扩展并不适用于所有系统。最后,由于内部API的更改,升级PostgreSQL版本可能会破坏扩展兼容性。

因此,乔纳森在昨天的主题演讲中发布了可信语言扩展PostgreSQL的公告。他描述了TLE如何解决之前概述的扩展难题。它允许通过SQL而非需要访问文件系统的途径来创建扩展。一个权限系统可以控制这个新功能。

TLE还在SQL级别以安全的方式暴露了PostgreSQL的内部C API。此外,如PL/pgSQL这样的可信语言通过验证约束确保安全性。总的来说,乔纳森强调,TLE带来了改进的安全性、提高的性能和更多的语言灵活性等好处。

在演示过程中,乔纳森表示构建一个TLE扩展从选择像PL/pgSQL这样的可信语言开始。开发人员在所选语言的脚本中编写扩展逻辑。根据扩展约定将这些脚本打包在一起。

通过SQL API调用来将新扩展安装到PostgreSQL中。然后,可以通过标准CREATE EXTENSION命令将其添加到数据库。之后,可以通过编写更新脚本,通过SQL API加载该脚本,并发出ALTER EXTENSION命令来更新扩展。这反映了典型的软件生命周期。

此时,乔纳森将控制权交给了吉姆,以提供更多关于TLE如何工作的详细信息。

吉姆强调,TLE打开了PostgreSQL的扩展性,同时为这个新功能提供了组织控制。作为第一级控制,TLE功能默认禁用。必须配置一个数据库参数组使用"shared_preload_libraries = 'pgtle'",并且数据库必须重新启动。

此外,必须在每个数据库内安装pgtle扩展以激活TLE。这确保了没有人可以在没有组织采取某些有意行动的情况下无声地启用TLE。在这些准备工作完成后,吉姆展示了TLE如何允许管理自定义扩展。

亚马逊(Amazon)强调的一个关键好处是TLE对扩展版本的支持能力。控制文件详细规定了诸如名称、版本、依赖关系和SQL安装脚本等详细信息。这确保了在数据库中运行的是哪个代码版本。对于将模式更改迁移到扩展的开发人员,TLE通过ALTER EXTENSION版本管理支持推送更新。

除了数据库代码部署之外,JIM指出,扩展广泛利用了POSTGRESQL的钩子基础设施。钩子允许在各种阶段插入自定义逻辑,如查询规划、重写和运行时。截至POSTGRESQL 15,有30个不同的钩子点可用。

TLE提供了一种安全地注册这些钩子的回调函数的方法。作为示例,JIM通过实现一个在用户密码更改时调用的check_password钩子来进行了演示。在服务器配置文件中启用此钩子后,可以在TLE中注册一个函数以接收密码信息。他简化地为演示而使用了PL/PGSQL。

JIM认为,check_password说明了一种需要谨慎实现的敏感钩子。该函数以提升的权限运行并可以查看密码。因此,TLE正确地将注册钩子函数的限制设置为rds_superuser角色。一般来说,JIM建议在处理此类强大功能时遵循最佳实践,如代码审查。

在选择TLE语言方面,JIM建议作为安全默认选项使用PL/PGSQL,因为它非常通用,适合数据库访问,并且许多开发人员都熟悉它。PL/V8为JSON和模块化代码带来了好处。PL/PERL非常适合文本处理和正则表达式。

他指出,现有的大部分扩展都是用SQL、PL/PGSQL或PERL编写的,这些都是TLE支持的语言。为了轻松利用这些社区扩展,JIM展示了用于管理本地扩展的PGtle工具。它可以从一个GITHUB扩展下载代码,并通过一个命令将其加载到RDS/AURORA中。这解锁了大量来自现有POSTGRESQL扩展的创新功能。

最后,JIM重申了TLE的早期开发状态,并邀请了社区合作。这不是一次代码发布,而是一个共同建设有意义事物的机会。他鼓励每个人在GITHUB上提供关于缺失钩子、期望的功能以及任何其他使TLE取得巨大成功所需的反馈。

詹姆斯和乔纳森开始回答各种问题。他们对可信语言扩展(TLE)在亚马逊RDS和Aurora服务上的所有潜在创新表示兴奋,并鼓励与会者参与技术性的PostgreSQL讨论。

总的来说,可信语言扩展为开发者提供了一种更安全地定制PostgreSQL、优化性能以及拓展语言选择的方法。TLE有望成为RDS和Aurora的一个重要变革者,而亚马逊云科技致力于与PostgreSQL社区共同构建这一目标。

下面是一些演讲现场的精彩瞬间:

领导者承认,与预期中对Postgres管理服务的深入研究主题的变化不同,现在的焦点已经转移到了可信语言扩展上。

通过RDS提供的自动化数据库管理工具,开发者可以更专注于构建应用程序。

领导者强调了亚马逊云科技中强大的数据类型支持如何简化应用程序中的复杂日期和时间计算。

演讲者讨论了Amazon Redshift的自动分区管理如何通过根据指定规则自动创建和删除分区来简化处理大型数据集的过程。

领导者解释了PostgreSQL如何处理安装扩展、检查依赖关系以及向pg_extension系统目录添加条目。

领导者解释了PostgreSQL扩展在幕后是如何工作以安装函数并处理依赖关系的,从而允许轻松安装和删除软件包。

领导者鼓励社区构建并部署适合他们特定需求的解决方案。

总结

本次讲座主要探讨了Amazon RDS与Aurora PostgreSQL的一个创新框架——可信语言扩展(Trusted Language Extensions,简称TLE)。这个框架使得开发者能够在SQL中构建和管理自定义PostgreSQL扩展。TLE旨在解决现有扩展所面临的一些挑战,例如缺乏对文件系统的访问能力、可用性和跨版本兼容性。

TLE允许开发者通过SQL加载扩展,并提供权限保护来确保访问安全,同时无需编写C代码就能访问内部API。它利用了像PL/pgSQL这样可靠的语言,以实现安全性、性能和灵活性。开发者可以为其自定义数据类型、函数、模式迁移等创建扩展,并可以集成到诸如密码检查等关键事件中。

TLE扩展遵循带有版本控制的软件包管理格式,以确保可控的测试和部署。讲座将展示如何创建一个包含简单函数的扩展,如何通过更新路径进行升级,以及如何注册密码检查相关的钩子功能。TLE作为开源项目,旨在鼓励大家共同参与改进,以赋予开发者在PostgreSQL上进行快速创新的能力。

演讲原文

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值