图应用

当您需要处理如社交网络、欺诈检测或知识图谱等包含复杂关联关系的数据时,使用传统SQL进行建模和查询会变得非常繁琐且效率低下。PolarDB PostgreSQL通过集成开源图引擎Apache AGE,让您可以在同一个集群中,可同时使用标准的SQL和业界主流的openCypher图查询语言。这使您能够高效地存储、查询和分析图数据,轻松应对复杂关系场景。

适用范围

支持的PolarDB PostgreSQL的版本如下:

  • PostgreSQL 16(内核小版本2.0.16.8.3.0及以上)

  • PostgreSQL 15(内核小版本2.0.15.12.4.0及以上)

  • PostgreSQL 14(内核小版本2.0.14.12.24.0及以上)

说明

您可在控制台查看内核小版本号,也可以通过SHOW polardb_version;语句查看。如未满足内核小版本要求,请升级内核小版本

可视化工具

您可通过控制台创建一个可视化的图管理工具(基于Apache AGE Viewer),并通过Web界面与图数据进行交互。

步骤一:创建图应用

  1. 您可以通过以下两种方式进行创建:

    • 前往PolarDB控制台,单击左侧导航栏的PolarDB AI,并单击新建AI应用image

    • 前往PolarDB控制台,在左侧导航栏单击集群列表,找到符合适用范围的目标集群并进入集群详情页。单击左侧导航栏中的AI能力 > AI应用,并单击新建AI应用image

  2. 在应用购买页面中,请根据您的需求选择适合的配置:

    配置项

    说明

    付费类型

    • 包年包月:预付费模式。在创建应用时,您需选择固定规格的资源,并预先支付应用的费用。购买周期越长,所享受的折扣也越大。该模式一般适用于业务需求长期稳定的场景。

    • 按量付费:后付费模式。在创建应用时,您需选择固定规格的资源,但无需提前支付应用的费用。该模式根据您实际使用的时长进行计费,一般适用于业务需求灵活的场景。

    引擎

    固定为PolarDB

    地域

    选择应用所在的地理位置

    说明
    • 应用购买完成后,不支持更改地域。

    • 应用需与PolarDB PostgreSQL集群位于同一地域。因此,请选择与PolarDB PostgreSQL集群相同的地域。

    • 建议将应用与需要连接的ECS创建在同一地域,否则它们将无法通过内网(私网)实现互通,只能通过外网(公网)进行通信,这将无法充分发挥最佳性能。

    架构

    选择AI应用

    生态

    自动填写为源PolarDB集群数据库生态,无需手动填写。

    源 PolarDB 集群

    选择需要创建应用的PolarDB集群。

    版本

    自动填写为源PolarDB集群数据库版本,无需手动填写。

    AI应用

    选择为图管理

    组件集

    根据实际业务情况自定义后端组件的数量和规格。

    AI应用名

    您可以填写自定义的应用名称。

    说明

    不能以http://或者https://开头,且长度2~256个字符。

    网络类型

    固定为专有网络

    VPC网络

    自动填写为源PolarDB集群的专有网络,无需手动填写。

    可用区和交换机

    配置VPC网络的交换机,建议选择与PolarDB PostgreSQL集群的主可用区相同的交换机,以发挥最佳网络性能。

    如果已有的交换机无法满足您的要求,您可以自行创建交换机

    安全组

    配置应用的安全组。

    购买数量

    选择需要购买的应用数量。

    说明
    • 每个PolarDB PostgreSQL集群仅支持购买一个相同类型的AI应用。

    • 付费类型包年包月时,支持配置。

    购买时长

    选择应用的购买时长。

    说明

    付费类型包年包月时,支持配置。

    自动续费

    配置是否开启自动续费。为避免因忘记续费而导致业务中断,建议您开启自动续费。

    说明

    付费类型包年包月时,支持配置。

  3. 购买成功后,请返回集群的AI应用页面,即可查看新创建的应用。

    说明

    系统需要3~5分钟创建应用,请耐心等待。

步骤二:连接图应用

  • 配置应用白名单:在AI应用列表页面,单击您的应用ID进入应用详情页,并在白名单页签,新增IP白名单分组选择安全组配置已有白名单分组。

    说明
    • 应用白名单与集群白名单相互独立,需进行单独配置。

    • 如果您的ECS实例需要访问应用,可在ECS实例详情页面查看ECS实例的IP地址,并将其填写至IP白名单中。

      • 如果您的ECS实例与应用位于同一VPC内,您可以填写ECS的私网IP地址或其所在VPC网段。

      • 如果您的ECS实例与应用不在同一VPC内,您可填写ECS的公网IP地址,或添加ECS所在的安全组。

    • 如果您本地的服务器、电脑或其他云服务器需要访问应用,请将其公网IP地址添加到IP白名单中。

    image

  • 获取连接地址:在AI应用列表页面,单击您的应用ID进入应用详情页,并在基本信息页签的拓扑图区域中查看私网地址

    说明
    • 公网地址需单独申请,请单击申请按钮以进行申请。

    • 公网地址仅提供IP地址和端口,不提供域名。如您有相关需求,可自行绑定域名。

    image

步骤三:创建插件与设置数据库

  1. 创建插件:请使用高权限账号执行如下语句。

    说明

    age插件目前暂不支持您手动创建,如需使用该功能,请提交工单与我们联系,以便为您创建插件。

    CREATE EXTENSION age;
  2. 设置数据库:对于每次连接,都需要将ag_catalog添加到search_path以简化查询,并通过get_cypher_keywords函数实现插件的加载:

    说明

    使用数据管理 DMS(Data Management)客户端设置search_path时,可能会存在兼容性问题,您可使用PolarDB-Tools执行相关语句。

    SET search_path = ag_catalog, "$user", public;

    强烈建议使用高权限账号设置数据库参数,以永久加载插件,从而在每次连接时无需重复执行上述操作,以简化使用流程。

    ALTER DATABASE <dbname> SET search_path = "$user", public, ag_catalog;
    ALTER DATABASE <dbname> SET session_preload_libraries TO 'age';
  3. (可选)允许普通用户使用AGE:在ag_catalog模式下为普通用户授予USAGE权限。

    GRANT USAGE ON SCHEMA ag_catalog TO <username>;

    如果普通用户仅为读写权限用户,需要额外授予创建表的CREATE权限。

    GRANT CREATE ON DATABASE <dbname> TO <username>;

步骤四:创建图与插入数据

  1. 创建图:在使用图之前,首先需要进行图的创建。创建图使用位于ag_catalog命名空间中的create_graph函数。

    语法:

    SELECT create_graph('<graph_name>');

    示例:

    SELECT ag_catalog.create_graph('moviedb');
  2. 插入数据:使用以下SQL语句向moviedb图中插入示例数据:

    SELECT * FROM cypher('moviedb', $$
      CREATE (matrix:Movie {title: 'The Matrix', released: 1997})
      CREATE (cloudAtlas:Movie {title: 'Cloud Atlas', released: 2012})
      CREATE (forrestGump:Movie {title: 'Forrest Gump', released: 1994})
      CREATE (keanu:Person {name: 'Keanu Reeves', born: 1964})
      CREATE (robert:Person {name: 'Robert Zemeckis', born: 1951})
      CREATE (tom:Person {name: 'Tom Hanks', born: 1956})
      CREATE (tom)-[:ACTED_IN {roles: ['Forrest']}]->(forrestGump)
      CREATE (tom)-[:ACTED_IN {roles: ['Zachry']}]->(cloudAtlas)
      CREATE (robert)-[:DIRECTED]->(forrestGump)
    $$) AS (result1 agtype);

    其中,包含了6个节点,其中3个的标签为电影(Movie),3个为人员(Person)。3条边,其中2条边的标签为表演(ACTED_IN),1条边为导演(DIRECTED)。关系图如下所示:

    image

步骤五:开发应用

  1. 开发应用:您可以通过公网直接访问应用,在AI应用列表页面中单击开发应用,以跳转至图应用的可视化工具的公网地址。或者直接在浏览器地址栏中输入应用的公网IP地址和端口,以访问可视化工具。

    说明

    请先将您的公网IP地址添加至应用白名单中。

    image

  2. 在可视化工具的登录页面中输入以下信息:

    • host:选择您的PolarDB集群的连接地址。

    • Database Name:填写一个集群内的数据库,若您没有合适的数据库,请返回至集群详情页面中进行创建数据库

    • user name:填写一个集群内的数据库账号,请确保其拥有上述数据库的相应访问权限。

    • password:填写对应数据库账号的密码。

    image

  3. 查询数据:在Cypher中,使用MATCH+RETURN这两个关键字实现数据的查询。其中:

    • MATCH实现模式匹配,用于寻找与指定模式相同的内容。

    • RETURN关键字指定希望从Cypher查询返回的值或结果。

    语法:

    SELECT * FROM cypher('graph_name', $$
      MATCH <patterns>RETURN <variables>
    $$) AS (result1 agtype);

    示例:在可视化工具的顶部中输入以下Cypher查询语句:

    SELECT * FROM cypher('moviedb', $$
      MATCH (m:Person)
      RETURN m
    $$) AS (result1 agtype);

    image

  4. 验证:执行成功后,您应该能在下方的可视化区域看到moviedb的三个人员(Person)节点。image

步骤六:(可选)释放图应用

当不再需要可视化工具时,可以将其释放以节省成本。在AI应用列表中,找到目标图应用,在操作列中单击释放应用即可。

重要

释放图应用仅会删除用于提供Web界面的可视化工具,不会删除您存储在PolarDB集群中的任何图数据。应用释放后,其公网地址等配置将丢失且无法恢复。

工作原理

  • 核心引擎PolarDB图数据库功能基于PostgreSQLage扩展实现,该扩展由Apache AGE项目提供,兼容OpenCypher查询语法。

  • 混合查询age扩展使您可以在同一个数据库中同时管理关系型数据(标准表)和图数据。这两种数据可以共存并被分别查询。

  • 查询执行:Cypher查询并非直接执行,而是作为字符串参数传递给一个名为cypher()PostgreSQL函数。PolarDB解析此字符串,在指定的图中执行Cypher命令,并将结果作为标准的SQL行集返回。

  • 数据类型:查询返回的结果列通常是agtype类型。这是一种类似于JSONB的自定义数据类型,用于封装图元素(如节点、边、路径)的结构化信息。在应用程序中,您通常可以将其作为JSON字符串处理。

计费说明

  • 组件费用图应用收取后端组件费用,费用根据您选择的组件规格(CPU和内存)和购买时长计算。

    单个组件价格信息

    中国内地

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    11

    0.02

    polar.app.g2.small

    12 GB

    18

    0.04

    polar.app.g2.medium

    24 GB

    250

    0.52

    polar.app.g4.medium

    28 GB

    270

    0.56

    polar.app.g8.medium

    216 GB

    330

    0.6875

    polar.app.g2.large

    48 GB

    475

    0.99

    polar.app.g4.large

    416 GB

    630

    1.31

    polar.app.g8.large
    432 GB

    660

    1.375

    polar.app.g2.xlarge

    816 GB

    1,000

    2.08

    polar.app.g4.xlarge

    832 GB

    1,240

    2.58

    polar.app.g8.xlarge
    864 GB

    1,320

    2.75

    polar.app.g2.2xlarge

    1632 GB

    2,000

    4.17

    polar.app.g4.2xlarge

    1664 GB

    2,400

    5.00

    polar.app.g8.2xlarge
    16128 GB

    2,640

    5.5

    中国(香港)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    17.6

    0.032

    polar.app.g2.small

    12 GB

    28.8

    0.064

    polar.app.g2.medium

    24 GB

    400

    0.832

    polar.app.g4.medium

    28 GB

    432

    0.896

    polar.app.g8.medium
    216 GB

    528

    1.100

    polar.app.g2.large

    48 GB

    760

    1.584

    polar.app.g4.large

    416 GB

    1,008

    2.096

    polar.app.g8.large
    432 GB

    1,056

    2.200

    polar.app.g2.xlarge

    816 GB

    1,600

    3.330

    polar.app.g4.xlarge

    832 GB

    1,984

    4.130

    polar.app.g8.xlarge
    864 GB

    2,112

    4.400

    polar.app.g2.2xlarge

    1632 GB

    3,200

    6.670

    polar.app.g4.2xlarge

    1664 GB

    3,840

    8.000

    polar.app.g8.2xlarge
    16128 GB

    4,224

    8.800

    日本(东京)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    17.6

    0.032

    polar.app.g2.small

    12 GB

    28.8

    0.064

    polar.app.g2.medium

    24 GB

    400

    0.832

    polar.app.g4.medium

    28 GB

    432

    0.896

    polar.app.g8.medium
    216 GB

    528

    1.100

    polar.app.g2.large

    48 GB

    760

    1.584

    polar.app.g4.large

    416 GB

    1,008

    2.096

    polar.app.g8.large
    432 GB

    1,056

    2.200

    polar.app.g2.xlarge

    816 GB

    1,600

    3.330

    polar.app.g4.xlarge

    832 GB

    1,984

    4.130

    polar.app.g8.xlarge
    864 GB

    2,112

    4.400

    polar.app.g2.2xlarge

    1632 GB

    3,200

    6.670

    polar.app.g4.2xlarge

    1664 GB

    3,840

    8.000

    polar.app.g8.2xlarge
    16128 GB

    4,224

    8.800

    韩国

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    17.6

    0.032

    polar.app.g2.small

    12 GB

    28.8

    0.064

    polar.app.g2.medium

    24 GB

    400

    0.832

    polar.app.g4.medium

    28 GB

    432

    0.896

    polar.app.g8.medium
    216 GB

    528

    1.100

    polar.app.g2.large

    48 GB

    760

    1.584

    polar.app.g4.large

    416 GB

    1,008

    2.096

    polar.app.g8.large
    432 GB

    1,056

    2.200

    polar.app.g2.xlarge

    816 GB

    1,600

    3.330

    polar.app.g4.xlarge

    832 GB

    1,984

    4.130

    polar.app.g8.xlarge
    864 GB

    2,112

    4.400

    polar.app.g2.2xlarge

    1632 GB

    3,200

    6.670

    polar.app.g4.2xlarge

    1664 GB

    3,840

    8.000

    polar.app.g8.2xlarge
    16128 GB

    4,224

    8.800

    新加坡

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    17.6

    0.032

    polar.app.g2.small

    12 GB

    28.8

    0.064

    polar.app.g2.medium

    24 GB

    400

    0.832

    polar.app.g4.medium

    28 GB

    432

    0.896

    polar.app.g8.medium
    216 GB

    528

    1.100

    polar.app.g2.large

    48 GB

    760

    1.584

    polar.app.g4.large

    416 GB

    1,008

    2.096

    polar.app.g8.large
    432 GB

    1,056

    2.200

    polar.app.g2.xlarge

    816 GB

    1,600

    3.330

    polar.app.g4.xlarge

    832 GB

    1,984

    4.130

    polar.app.g8.xlarge
    864 GB

    2,112

    4.400

    polar.app.g2.2xlarge

    1632 GB

    3,200

    6.670

    polar.app.g4.2xlarge

    1664 GB

    3,840

    8.000

    polar.app.g8.2xlarge
    16128 GB

    4,224

    8.800

    马来西亚(吉隆坡)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    17.6

    0.032

    polar.app.g2.small

    12 GB

    28.8

    0.064

    polar.app.g2.medium

    24 GB

    400

    0.832

    polar.app.g4.medium

    28 GB

    432

    0.896

    polar.app.g8.medium
    216 GB

    528

    1.100

    polar.app.g2.large

    48 GB

    760

    1.584

    polar.app.g4.large

    416 GB

    1,008

    2.096

    polar.app.g8.large
    432 GB

    1,056

    2.200

    polar.app.g2.xlarge

    816 GB

    1,600

    3.330

    polar.app.g4.xlarge

    832 GB

    1,984

    4.130

    polar.app.g8.xlarge
    864 GB

    2,112

    4.400

    polar.app.g2.2xlarge

    1632 GB

    3,200

    6.670

    polar.app.g4.2xlarge

    1664 GB

    3,840

    8.000

    polar.app.g8.2xlarge
    16128 GB

    4,224

    8.800

    印度尼西亚(雅加达)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    15.4

    0.028

    polar.app.g2.small

    12 GB

    25.2

    0.056

    polar.app.g2.medium

    24 GB

    350

    0.728

    polar.app.g4.medium

    28 GB

    378

    0.784

    polar.app.g8.medium
    216 GB

    462

    0.9625

    polar.app.g2.large

    48 GB

    665

    1.386

    polar.app.g4.large

    416 GB

    882

    1.834

    polar.app.g8.large
    432 GB

    924

    1.925

    polar.app.g2.xlarge

    816 GB

    1,400

    2.910

    polar.app.g4.xlarge

    832 GB

    1,736

    3.610

    polar.app.g8.xlarge
    864 GB

    1,848

    3.850

    polar.app.g2.2xlarge

    1632 GB

    2,800

    5.840

    polar.app.g4.2xlarge

    1664 GB

    3,360

    7.000

    polar.app.g8.2xlarge
    16128 GB

    3,696

    7.700

    菲律宾

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    15.4

    0.028

    polar.app.g2.small

    12 GB

    25.2

    0.056

    polar.app.g2.medium

    24 GB

    350

    0.728

    polar.app.g4.medium

    28 GB

    378

    0.784

    polar.app.g8.medium
    216 GB

    462

    0.9625

    polar.app.g2.large

    48 GB

    665

    1.386

    polar.app.g4.large

    416 GB

    882

    1.834

    polar.app.g8.large
    432 GB

    924

    1.925

    polar.app.g2.xlarge

    816 GB

    1,400

    2.910

    polar.app.g4.xlarge

    832 GB

    1,736

    3.610

    polar.app.g8.xlarge
    864 GB

    1,848

    3.850

    polar.app.g2.2xlarge

    1632 GB

    2,800

    5.840

    polar.app.g4.2xlarge

    1664 GB

    3,360

    7.000

    polar.app.g8.2xlarge
    16128 GB

    3,696

    7.700

    泰国(曼谷)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    15.4

    0.028

    polar.app.g2.small

    12 GB

    25.2

    0.056

    polar.app.g2.medium

    24 GB

    350

    0.728

    polar.app.g4.medium

    28 GB

    378

    0.784

    polar.app.g8.medium
    216 GB

    462

    0.9625

    polar.app.g2.large

    48 GB

    665

    1.386

    polar.app.g4.large

    416 GB

    882

    1.834

    polar.app.g8.large
    432 GB

    924

    1.925

    polar.app.g2.xlarge

    816 GB

    1,400

    2.910

    polar.app.g4.xlarge

    832 GB

    1,736

    3.610

    polar.app.g8.xlarge
    864 GB

    1,848

    3.850

    polar.app.g2.2xlarge

    1632 GB

    2,800

    5.840

    polar.app.g4.2xlarge

    1664 GB

    3,360

    7.000

    polar.app.g8.2xlarge
    16128 GB

    3,696

    7.700

    德国(法兰克福)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    15.4

    0.028

    polar.app.g2.small

    12 GB

    25.2

    0.056

    polar.app.g2.medium

    24 GB

    350

    0.728

    polar.app.g4.medium

    28 GB

    378

    0.784

    polar.app.g8.medium
    216 GB

    462

    0.9625

    polar.app.g2.large

    48 GB

    665

    1.386

    polar.app.g4.large

    416 GB

    882

    1.834

    polar.app.g8.large
    432 GB

    924

    1.925

    polar.app.g2.xlarge

    816 GB

    1,400

    2.910

    polar.app.g4.xlarge

    832 GB

    1,736

    3.610

    polar.app.g8.xlarge
    864 GB

    1,848

    3.850

    polar.app.g2.2xlarge

    1632 GB

    2,800

    5.840

    polar.app.g4.2xlarge

    1664 GB

    3,360

    7.000

    polar.app.g8.2xlarge
    16128 GB

    3,696

    7.700

    英国(伦敦)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    15.4

    0.028

    polar.app.g2.small

    12 GB

    25.2

    0.056

    polar.app.g2.medium

    24 GB

    350

    0.728

    polar.app.g4.medium

    28 GB

    378

    0.784

    polar.app.g8.medium
    216 GB

    462

    0.9625

    polar.app.g2.large

    48 GB

    665

    1.386

    polar.app.g4.large

    416 GB

    882

    1.834

    polar.app.g8.large
    432 GB

    924

    1.925

    polar.app.g2.xlarge

    816 GB

    1,400

    2.910

    polar.app.g4.xlarge

    832 GB

    1,736

    3.610

    polar.app.g8.xlarge
    864 GB

    1,848

    3.850

    polar.app.g2.2xlarge

    1632 GB

    2,800

    5.840

    polar.app.g4.2xlarge

    1664 GB

    3,360

    7.000

    polar.app.g8.2xlarge
    16128 GB

    3,696

    7.700

    美国(硅谷)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    13.2

    0.024

    polar.app.g2.small

    12 GB

    21.6

    0.048

    polar.app.g2.medium

    24 GB

    300

    0.624

    polar.app.g4.medium

    28 GB

    324

    0.672

    polar.app.g8.medium
    216 GB

    396

    0.825

    polar.app.g2.large

    48 GB

    570

    1.188

    polar.app.g4.large

    416 GB

    756

    1.572

    polar.app.g8.large
    432 GB

    792

    1.650

    polar.app.g2.xlarge

    816 GB

    1,200

    2.500

    polar.app.g4.xlarge

    832 GB

    1,488

    3.100

    polar.app.g8.xlarge
    864 GB

    1,584

    3.300

    polar.app.g2.2xlarge

    1632 GB

    2,400

    5.000

    polar.app.g4.2xlarge

    1664 GB

    2,880

    6.000

    polar.app.g8.2xlarge
    16128 GB

    3,168

    6.600

    美国(弗吉尼亚)

    节点规格码

    CPU和内存

    包年包月(元/月)

    按量付费(元/小时)

    polar.app.g1.tiny

    11 GB

    13.2

    0.024

    polar.app.g2.small

    12 GB

    21.6

    0.048

    polar.app.g2.medium

    24 GB

    300

    0.624

    polar.app.g4.medium

    28 GB

    324

    0.672

    polar.app.g8.medium
    216 GB

    396

    0.825

    polar.app.g2.large

    48 GB

    570

    1.188

    polar.app.g4.large

    416 GB

    756

    1.572

    polar.app.g8.large
    432 GB

    792

    1.650

    polar.app.g2.xlarge

    816 GB

    1,200

    2.500

    polar.app.g4.xlarge

    832 GB

    1,488

    3.100

    polar.app.g8.xlarge
    864 GB

    1,584

    3.300

    polar.app.g2.2xlarge

    1632 GB

    2,400

    5.000

    polar.app.g4.2xlarge

    1664 GB

    2,880

    6.000

    polar.app.g8.2xlarge
    16128 GB

    3,168

    6.600

  • 存储费用图应用所产生的数据和文件等将存储在PolarDB PostgreSQL集群存储空间,

  • 流量与带宽:不收取费用。

相关文档