Получайте данные о таблицах, заданиях и многом другом
Распространенным способом определения метаданных является «данные о данных». В Big Query метаданные могут быть чрезвычайно полезными и удобными, поскольку они организованы в ряд представлений, называемых INFORMATION_SCHEMA
.
Вот четыре примера того, как вы можете использовать метаданные Big Query.
1. Воссоздайте таблицы
Вы когда-нибудь создавали 10 таблиц подряд, а потом понимали, что неправильно назвали столбец в каждой из них? К счастью, вам могут помочь представления метаданных TABLES
.
SELECT table_name, ddl FROM the_look.INFORMATION_SCHEMA.TABLES
Этот запрос предоставит вам запрос DDL (Data Definition Language), используемый для создания таблицы. Затем вы можете скопировать и вставить оператор DDL и отредактировать его, чтобы воссоздать свою таблицу.
2. История доступа
Вкладка «История» дает вам доступ только к заданиям, которые были выполнены за последнюю неделю. К счастью, вы можете обойти эти ограничения, используя представления JOBS
.
SELECT job_type, query FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE DATE(creation_time) = "2022-04-26"
3. Динамически выбирать столбцы
Допустим, вы хотите выбрать из таблицы только строковые столбцы. К сожалению, стандартный SQL не позволяет динамически выбирать столбцы. Вот где представление COLUMNS
пригодится.
Мы можем получить обзор нужных нам столбцов, запросив представление:
SELECT * FROM the_look.INFORMATION_SCHEMA.COLUMNS WHERE table_name = "orders_analysed_table" AND data_type = "STRING"
Затем мы можем использовать надписи скрипта для сохранения имен столбцов в переменной и отображения результата нашего динамического запроса:
DECLARE select_query STRING; EXECUTE IMMEDIATE """SELECT STRING_AGG(column_name, ",") FROM the_look.INFORMATION_SCHEMA.COLUMNS WHERE table_name = "orders_analysed_table" AND data_type = "STRING" """ INTO select_query; EXECUTE IMMEDIATE FORMAT(""" SELECT %s FROM the_look.orders_analysed_table """, select_query)
Что делает этот запрос:
- Объявить переменную типа string
- Выполните запрос, чтобы получить строковые столбцы таблицы и сохранить их в предыдущей переменной.
- Отформатируйте запрос выбора с помощью переменной и выполните его.
4. Контролируйте свои расходы
Метаданные также могут пригодиться при попытке отслеживать ваши расходы. Вы можете использовать представление JOBS_TIMELINE
, чтобы проверить эволюцию ваших расходов.
SELECT DATE(job_creation_time) AS date, SUM(total_bytes_billed) AS total_bytes_billed FROM `region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_PROJECT WHERE DATE(job_creation_time) >= "2022-04-01" GROUP BY 1 ORDER BY 1
Хотите пойти дальше? Почему бы не использовать одну из моделей временных рядов больших запросов, чтобы спрогнозировать байты, которые будут выставлены в счет в следующем месяце?
Если вы хотите узнать больше о метаданных BQ, вы можете проверить документацию INFORMATION_SCHEMA для получения дополнительной информации.