用于可视化bigquery视图之间的依赖关系和管理权限的命令行工具
bigquery-view-analyzer的Python项目详细描述
bigquery视图分析器
说明
bigquery-view-analyzer
是一个命令行工具,用于可视化bigquery视图之间的依赖关系和管理权限。
要授权视图,必须在数据集级别为视图定义中引用的每个视图/表授予权限。这一要求级联到父视图引用的每个视图,它们也必须对它们引用的每个视图/表授予权限,依此类推。如果您在多个数据集和/或项目中有多个嵌套视图,这可能很快变得难以管理。
bigquery-view-analyzer
自动解析这些依赖项,并将相关权限应用于父视图引用的所有视图和数据集。
安装
$ pip install bigquery-view-analyzer
用法
$ bqva --help
示例
考虑到bigquery中的上述数据集和表,要授权bqva-demo:dataset_4.shared_view
,需要对以下每个数据集授权以下视图:
dataset_1
的授权视图bqva-demo:dataset_3.view_a_b_c_d
dataset_2
的授权视图bqva-demo:dataset_3.view_a_b_c_d
bqva-demo:dataset_1.view_c
dataset_3
的授权视图bqva-demo:dataset_2.view_d
bqva-demo:dataset_4.shared_view
您可以使用bqva tree
命令轻松可视化上述视图层次结构。
# View dependency tree and authorization status for 'bqva-demo:dataset_4.shared_view' $ bqva tree --status --no-key --view "bqva-demo:dataset_4.shared_view" bqva-demo:dataset_4.shared_view └── bqva-demo:dataset_3.view_a_b_c_d (⨯) ├── bqva-demo:dataset_1.table_a (⨯) ├── bqva-demo:dataset_1.table_b (⨯) ├── bqva-demo:dataset_1.view_c (⨯) │ └── bqva-demo:dataset_2.table_c (⨯) └── bqva-demo:dataset_2.view_d (⨯) └── bqva-demo:dataset_3.table_d (⨯)
权限可以使用bqva authorize
命令自动应用于父视图引用的所有数据集。
# Apply all permissions required by 'bqva-demo:dataset_4.shared_view' $ bqva authorize --view "bqva-demo:dataset_4.shared_view" bqva-demo:dataset_4.shared_view └── bqva-demo:dataset_3.view_a_b_c_d (✓) ├── bqva-demo:dataset_1.table_a (✓) ├── bqva-demo:dataset_1.table_b (✓) ├── bqva-demo:dataset_1.view_c (✓) │ └── bqva-demo:dataset_2.table_c (✓) └── bqva-demo:dataset_2.view_d (✓) └── bqva-demo:dataset_3.table_d (✓)
如果要撤消视图的权限,也可以这样做!
# Revoke all permissions granted to 'bqva-demo:dataset_4.shared_view' $ bqva revoke --view "bqva-demo:dataset_4.shared_view" bqva-demo:dataset_4.shared_view └── bqva-demo:dataset_3.view_a_b_c_d (⨯) ├── bqva-demo:dataset_1.table_a (⨯) ├── bqva-demo:dataset_1.table_b (⨯) ├── bqva-demo:dataset_1.view_c (⨯) │ └── bqva-demo:dataset_2.table_c (⨯) └── bqva-demo:dataset_2.view_d (⨯) └── bqva-demo:dataset_3.table_d (⨯)