BigQueryにおいて日付などでシャーディングされたテーブル群に対して、具体的にどの日付のテーブルがその中にあるのか知りたいときがあります。
この時は以下のクエリを実行することでシャーディングの中にあるテーブルを一覧として得ることができます。
SELECT *
FROM project_name.dataset_name.__TABLES__
WHERE starts_with(table_id, '<table_prefix>')
ORDER BY table_id
このクエリはもちろんシャーディングのみならず一般のテーブルのprefixに応用できます。
得られるクエリ結果のスキーマは以下のようになります:
field name | type |
---|---|
project_id | STRING |
dataset_id | STRING |
table_id | STRING |
creation_time | INTEGER |
last_modified_time | INTEGER |
row_count | INTEGER |
size_bytes | INTEGER |
type | INTEGER |