Добавление сегодняшней даты в имя таблицы при использовании функции Create Table в стандартном sql GBQ - PullRequest
0 голосов
/ 09 мая 2020

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

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

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

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

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

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

1 Ответ

0 голосов
/ 13 мая 2020

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...