Добавление сегодняшней даты в имя таблицы при использовании функции создания таблицы в стандартном sql GBQ

Я новичок в GBQ, и любая помощь приветствуется.

У меня есть запрос ниже:

#Standard SQL
create or replace table  `xxx.xxx.applications`
as select * from  `yyy.yyy.applications` 

Что мне нужно сделать, так это добавить сегодняшнюю дату в конец имени таблицы, чтобы это было что-то вроде xxx.xxx.applications_<todays date>, в основном создать имя файла с помощью приложения, но добавить дату в конце имени приложения.

Я пишу процедуру для создания таблицы каждый раз, когда она запускается, но мне нужно добавлять дату для целей аудита каждый раз, когда я создаю таблицу (в качестве резервной копии). Я искал везде и не могу получить точный ответ, возможно ли это в редакторе запросов, поскольку мне нужно сохранить это как Proc.

заранее спасибо


person Frank    schedule 09.05.2020    source источник
comment
Для этого требуется динамический SQL, которого нет в BigQuery.   -  person Yun Zhang    schedule 10.05.2020
comment
Я не думаю, что это можно сделать через пользовательский интерфейс bigquery.   -  person irvifa    schedule 10.05.2020
comment
почему вам нужен другой стол на каждый день? таблица с разделением по дате может работать лучше   -  person Felipe Hoffa    schedule 11.05.2020
comment
Какова ваша цель? Если вам нужно создать секционированную таблицу с сегодняшней датой, вы можете использовать таблицу, секционированную по времени приема.   -  person rmesteves    schedule 11.05.2020
comment
Если ответ был полезен, подумайте о том, чтобы принять его и проголосовать за него. Вы можете принять его, нажав на ✓, и проголосовать за него, нажав на ▲   -  person rmesteves    schedule 20.05.2020


Ответы (1)


BigQuery в настоящий момент не поддерживает динамический SQL, а это означает, что такое построение невозможно. В настоящее время BigQuery поддерживает параметризованные запросы, но невозможно использовать параметры для динамического изменения имя исходной таблицы, как вы можете видеть по предоставленной ссылке.

BigQuery поддерживает параметры запроса, чтобы предотвратить внедрение SQL-кода при построении запросов с использованием пользовательского ввода. Эта функция доступна только со стандартным синтаксисом SQL. Параметры запроса можно использовать как замену произвольным выражениям. Параметры нельзя использовать в качестве замены идентификаторов, имен столбцов, имен таблиц или других частей запроса.

Если вам нужно создать запрос на основе значения некоторой переменной, я предлагаю вам использовать какой-нибудь скрипт на SHELL, Python или любом другом языке программирования для создания оператора SQL, а затем выполнить его с помощью bq.

Другой подход может заключаться в использовании BigQuery клиентской библиотеки на некоторых из поддерживаемых языков. команды bq.

person rmesteves    schedule 13.05.2020