概要
BigQueryでプロジェクト内のテーブルやudfなどをリストとしてまとめたかったのだが、意外と方法についてまとまっている情報がなかったのでtsvで出力するスクリプトを作成した。
やり方
INFORMATION_SCHEMAを使うことで、プロジェクトに対するデータセット、データセットに対するテーブルやルーティンが取得できるが、残念ながらプロジェクトから各テーブルを参照することができないので、pythonでスクリプトを作成した。
一覧取得
from google.cloud import bigquery
client = bigquery.Client()
for project in client.list_projects():
for dataset in client.list_datasets(project.project_id):
for routine in client.list_routines(dataset):
print("\t".join([project.project_id, dataset.dataset_id, routine.routine_id, routine.type_]))
for table in client.list_tables(dataset):
print("\t".join([project.project_id, dataset.dataset_id, table.table_id, table.table_type]))
client作成時に指定する認証情報に基づいて、アクセスできるプロジェクトに対して全てのテーブルやルーティンを出すことができる。