用途:为 BigQuery 属性图(property graph)与语义图(semantic graph)查询提供规范与最佳实践,覆盖原生 GQL 模式匹配、多跳与变长路径、过滤、聚合、存在性检查、输出格式以及 GRAPH_EXPAND 表值函数用法。
主要能力:区分属性图与语义图两类查询范式。属性图默认用原生 GQL(GRAPH ... MATCH ... RETURN),需与关系表连接时用 GRAPH_TABLE;语义图用 GRAPH_EXPAND TVF,以 start_node => "X" 指定起始节点并配合 AGG() 度量。支持节点/边模式、属性过滤、逗号分隔模式连接、变长路径量词 {m,n}、ANY / ANY SHORTEST / ANY CHEAPEST 路径前缀,以及 PATH_FIRST、PATH_LAST、PATH_LENGTH、NODES、EDGES 等路径函数。
使用方式:必须使用 BigQuery GoogleSQL GQL 与 SQL 标准,禁止生成或考虑 Cypher。保留字作标识符时加反引号;标签与属性须与给定图模式一致,不得臆造。聚合、分组、Top-N 可直接在独立 GQL 的 RETURN/WITH 中完成,无需 GRAPH_TABLE。存在性检查用 FILTER 而非 WHERE,且子查询内需重新声明图名。可视化意图用 TO_JSON() 包裹拓扑输出并默认 LIMIT 500;表格或图表意图只返回所需属性或聚合。语义图必须通过 GRAPH_EXPAND 查询,不能当作普通表;起始节点须按名称传入,且应选度量所属节点以避免漏计。
适用场景:图网络可视化、路径查找、多跳关系分析、实体计数与排名、语义度量聚合等。
限制:语义图不可直接当表查询,GRAPH_EXPAND 失败时不得回退为普通表查询;无起始节点视图的实体应改用 GQL 并手写 SQL 聚合,因为 is_measure 与 AGG() 仅存在于 GRAPH_EXPAND 视图中。避免无向遍历,应显式指定方向。