可视化工具

PolarDB PostgreSQL通过集成开源图引擎Apache AGE,让您可以在同一个集群中,可同时使用标准的SQL和业界主流的openCypher图查询语言。这使您能够高效地存储、查询和分析图数据,轻松应对复杂关系场景。

步骤一:创建图应用

  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集群中的任何图数据。应用释放后,其公网地址等配置将丢失且无法恢复。