#google-bigquery
#google-bigquery
Вопрос:
После создания нескольких представлений SQL в виде отчетов в BigQuery мне необходимо определить зависимости представлений и таблиц.
Как я могу запросить: «Перечислить все представления, которые зависят от представления / таблицы T?»
Ответ №1:
Вы можете запустить следующий запрос, в котором будут перечислены все представления, это можно сделать для отдельного набора данных. Конечно, если у вас есть набор наборов данных, вы можете создать один запрос UNION ALL для каждого набора данных, чтобы объединить результаты.
SELECT *
FROM dataset_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')
Замена dataset_name
и table_name
в приведенном выше запросе.
view_definition
в таблице схемы содержится фактический код SQL для создания представления. Итак, мы, по сути, просто ищем в этом поле имя таблицы, то же самое будет работать, если вы ищете представление, используемое в представлении.
Ответ №2:
Нашел ответ Query Stash полезным, однако небольшое дополнение, которое мне помогло: если вы не хотите выполнять поиск в каждом наборе данных отдельно, вы можете выполнить поиск по всему проекту, заменив dataset_name на region .
SELECT *
FROM region-region_name.INFORMATION_SCHEMA.VIEWS
WHERE REGEXP_CONTAINS(view_definition, 'dataset_name.table_name')