BigQuery проверяет, существует ли таблица или нет
Я использую C# для динамического построения запроса на основе ответа из конечной точки bigquery API tables. Я пытаюсь вычислить активных пользователей, которые работают, но только если я выбираю каждую таблицу с .*. Мой вопрос довольно прост, есть ли способ проверить, существует ли таблица в BigQuery SQL?
2 ответа:
Существуют метатабли, называемые
__TABLES__и__TABLES_SUMMARY__Можно выполнить запрос типа:
SELECT size_bytes FROM <dataset>.__TABLES__ WHERE table_id='mytablename'Часть этого запроса может выглядеть незнакомой.
__TABLES_SUMMARY__- это мета-таблица, содержащая информацию о таблицах в наборе данных. Вы можете использовать эту метатаблицу самостоятельно. Например, запросSELECT * FROM publicdata:samples.__TABLES_SUMMARY__возвращает метаданные о таблицах в наборе данныхpublicdata:samples. Вы также можете сделатьSELECT * FROM publicdata:samples.__TABLES__Доступные Поля:
Поля метатаблицы
__TABLES_SUMMARY__(это все доступный в запросеTABLE_QUERY) включает:
table_id: название таблицы.creation_time: время, в миллисекундах с 1/1/1970 UTC, когда была создана таблица. Это то же самое, что и полеcreation_timeв таблице.type: является ли это представлением (2) или обычной таблицей (1).Следующие поляне доступны в
TABLE_QUERY(), поскольку они являются членами__TABLES__, но не__TABLES_SUMMARY__. Они хранятся здесь для исторического интереса и частично документировать__TABLES__метатаблиц:
last_modified_time: время, в миллисекундах с 1/1/1970 UTC, когда таблица была обновлена (либо метаданные, либо содержимое таблицы). Обратите внимание, что если вы используетеtabledata.insertAll()для потоковой передачи записей в таблицу, это может быть на несколько минут устаревшим.row_count: количество строк в таблице.size_bytes: Общий размер таблицы в байтах.