web-dev-qa-db-ja.com

テーブルサイズではなく、Google BigQueryデータセットサイズを見つけるにはどうすればよいですか?

BigQueryでテーブルのメタデータの詳細を確認できますが、プロジェクトの見積もりでは、データセット全体のメタデータを確認したいと考えています。

SELECT * From 'dataset'._TABLES_SUMMARY_WHERE size_bytes>0 isn't working for me.
15
sadiemac
SELECT SUM(size_bytes) AS bytes 
FROM [yourdataset.__TABLES__]
15

前の答えは正しいですが、私は答えを拡張したいと思います。

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/'
2
Luís Bianchin