要查询指定数据集或所有数据集的组别及其成员,可以使用BigQuery的INFORMATION_SCHEMA
视图和ML
模式。
下面是一种解决方法,包括代码示例:
-- 查询所有数据集的组别及其成员
SELECT
a.dataset_id,
b.member_role,
b.member_type,
b.member_name
FROM
`project_id.dataset_id.INFORMATION_SCHEMA.DATASETS` AS a,
UNNEST(a.access) AS b
WHERE
a.dataset_id NOT LIKE 'ML_%' -- 排除ML模式下的数据集
ORDER BY
a.dataset_id;
-- 查询指定数据集的组别及其成员
SELECT
a.dataset_id,
b.member_role,
b.member_type,
b.member_name
FROM
`project_id.dataset_id.INFORMATION_SCHEMA.DATASETS` AS a,
UNNEST(a.access) AS b
WHERE
a.dataset_id = 'your_dataset_id'
ORDER BY
a.dataset_id;
说明:
project_id
是您的项目ID,dataset_id
是您要查询的数据集ID;INFORMATION_SCHEMA.DATASETS
视图返回数据集的元数据信息,其中包括组别和成员信息;UNNEST(a.access)
用于展开组别和成员信息,以便进行查询;NOT LIKE 'ML_%'
用于排除ML模式下的数据集,如不需要排除可以去掉此条件;ORDER BY
对查询结果进行排序。请根据实际情况替换代码中的project_id
和dataset_id
,以及根据需要调整其他查询条件。