使用测量
本文档介绍了如何在图表上定义和查询测量。 您可以使用测量来确保在联接中正确执行聚合。
概览
“测量”是在节点或边缘表的 PROPERTIES 子句中定义的聚合属性。 测量是使用 MEASURE 关键字和以下受支持的聚合函数之一定义的:
SUMAVGCOUNTCOUNT(DISTINCT)MINMAX
测量会根据其定义的节点或边缘表的 KEY 定义其聚合。这意味着,当您查询测量时,即使基础表以导致行重复的方式联接,也会正确执行聚合。
您无法在 GQL 查询中引用由测量定义的属性。相反,
您可以通过调用
GRAPH_EXPAND TVF
来访问测量,以创建图表的扁平化表表示形式。此函数不接受所有类型的图表。如需详细了解
哪些图表构成有效输入,请参阅输入限制。
如需运行 GQL 查询,您必须拥有使用
Enterprise 或企业 Plus 版的
预留。如果您使用按需价格,则可以调用 GRAPH_EXPAND 函数在图表上运行 SQL 查询。
您可以对 GRAPH_EXPAND TVF 的输出调用
AGG 函数
,以根据您在
测量中定义的聚合函数聚合
属性。
定义测量
您可以在节点或边缘表定义的
PROPERTIES子句
中使用 MEASURE() 关键字(围绕受支持的聚合函数)来定义测量。
以下示例创建了一个名为 university 的数据集,以及学院、系和课程的表:
CREATE SCHEMA IF NOT EXISTS university;
CREATE OR REPLACE TABLE university.College (
college_id INT64 PRIMARY KEY NOT ENFORCED,
college_name STRING
);
CREATE OR REPLACE TABLE university.Department (
dept_id INT64 PRIMARY KEY NOT ENFORCED,
dept_name STRING,
college_id INT64,
budget FLOAT64,
FOREIGN KEY (college_id) REFERENCES university.College(college_id) NOT ENFORCED
);
CREATE OR REPLACE TABLE university.Course (
course_id INT64 PRIMARY KEY NOT ENFORCED,
course_name STRING,
dept_id INT64,
credits INT64,
FOREIGN