暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

在 PostgreSQL 灵活服务器中引入对 Pgrouting 和 PLV8 扩展的支持

原创 CiciLee 2022-07-28
967

Azure Database for PostgreSQL - 灵活的服务器支持超过 50 个 PostgreSQL 扩展。 我们还不断添加新的扩展来扩展 PostgreSQL 引擎提供的功能。 这就是为什么我们宣布在 Flex 服务器中支持两个更流行的 Postgres 扩展 - pgroutng 和 plv8。

图片.png

虽然许多开发人员都知道 PostGIS 作为 Postgres 的地理路由扩展,但很少有人知道 pgrouting,可以将其视为 PostGIS 的扩展。 pgRouting 所做的是扩展 PostGIS 的功能,为您提供基于流行网络算法的多种功能,以解决最短路径和旅行商问题等问题。 要使用 pgRouting,还需要安装 postGIS。

通过服务器参数设置的扩展允许列表,您可以指定可以在 PostgreSQL 数据库实例上安装哪些特定扩展。

要在灵活服务器中使用 pgRouting,您首先需要将其列入白名单:

使用 Azure 门户:

  1. 选择 Azure Database for PostgreSQL - 灵活服务器。
  2. 在边栏上,选择服务器参数。
  3. 搜索 azure.extensions 参数。
  4. 选择 pgrouting 扩展以允许列表。

图片.png

完成后,我们将此扩展添加到 shared_preload_libraries 我们可以安装扩展:

CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;

现在,您可以使用最短路径 Dijkstra 方法等 pgrouting 函数来查找最短路线,或使用 pgr_TSP 来使用旅行商问题 (TSP) 算法。 Pgrouting 文档可在此处获得。

PLV8 是一个共享库,提供由 V8 Javascript 引擎驱动的 PostgreSQL 过程语言。 使用此程序,您可以用 Javascript 编写可从 SQL 调用的函数。 与 pgrouting 一样,您需要在安装前加入允许列表并将此扩展添加到 shared_preload_libraries。

CREATE EXTENSION plv8;

企业、中小型企业以及 ISV 现在可以在 Postgres Flexible 服务上加速其 LOB 应用程序的开发和部署。 这有助于缩短上市时间。

Plv8 是一个值得信赖的扩展。 这是 PostgreSQL 13 中完全引入的概念。为什么有些扩展被标记为受信任而有些不是? 受信任的概念允许超级用户指定用户可以在其数据库中安装的扩展,只要他们具有 CREATE 权限。

使用 PL/v8 创建一个函数看起来像任何其他 PostgreSQL 函数,除了语言说明符更改。 以下面的(基本)示例为例:采用两个数组,我们将组合值作为 JSON 字符串返回:

CREATE OR REPLACE FUNCTION plv8_test(keys text[], vals text[])
RETURNS text AS $$
  var o = {};
  for(var i=0; i<keys.length; i++){
    o[keys[i]] = vals[i];
  }
  return JSON.stringify(o);
$$ LANGUAGE plv8 IMMUTABLE STRICT;

SELECT plv8_test(ARRAY['name', 'age'], ARRAY['Tom', '29']);
         plv8_test
---------------------------
 {"name":"Tom","age":"29"}

有关 PLV8 可以做什么的更多信息,请参见此处的文档。

我们鼓励您尝试并利用 Azure Database for PostgreSQL - 灵活服务器中的 pgrouting 和 plv8 扩展来解锁 PostgreSQL 的新方案和 NoSQL 功能。 在概述和支持的扩展中详细了解 Azure Database for PostgreSQL - 灵活服务器。

可以在以下文档中找到有关上述主题的其他信息:

  1. PostgreSQL 扩展
  2. 灌浆工程

我们一直期待着能够得到您的反馈,因此请通过电子邮件联系 Ask Azure DB for PostgreSQL。

原文标题:Introducing support for Pgrouting and PLV8 extensions in PostgreSQL Flexible Server
原文作者:Gennady Kostinsky
原文地址:https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/introducing-support-for-pgrouting-and-plv8-extensions-in/ba-p/3552072

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论