Как запросить зависимости представления BigQuery и таблицы?

#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')