BigQueryでテーブルのメタデータの詳細を確認できますが、プロジェクトの見積もりでは、データセット全体のメタデータを確認したいと考えています。
SELECT * From 'dataset'._TABLES_SUMMARY_WHERE size_bytes>0 isn't working for me.
SELECT SUM(size_bytes) AS bytes
FROM [yourdataset.__TABLES__]
前の答えは正しいですが、私は答えを拡張したいと思います。
BigQuery StandardSQLでは、次のようにデータセットごとにサイズをクエリできます。
SELECT
dataset_id,
count(*) AS tables,
SUM(row_count) AS total_rows,
SUM(size_bytes) AS size_bytes
FROM (
SELECT * FROM `dataset1.__TABLES__` UNION ALL
SELECT * FROM `dataset2.__TABLES__` UNION ALL
...
)
GROUP BY 1
ORDER BY size_bytes DESC
残念ながら、プロジェクトのすべてのデータセットのすべてのテーブルを一覧表示する方法が見つかりません。代わりに、bq
コマンドラインを使用してすべてのSELECT ... UNION ALL
ステートメントを生成しました。
bq ls --format=json | jq -r '.[] | select(.location == "EU") | .id' | sed 's/:/./' | sed 's/\(.*\)/SELECT * FROM `\1.__TABLES__` UNION ALL/'