Выгрузка нескольких таблиц из GBQ

0 голосов
АлександрЛД в категории Как сделать...
Добрый день.

Мы подсоединились к массиву из нескольких sql-ных таблиц в Google Big Query.

Нам нужно ежедневно делать выгрузку из части этих таблиц, причём количество таблиц, которые надо выгружать, постоянно растёт, а выгрузку хочется сделать автоматом по всем таблицам, название которых удовлетворяет определённому условию.

Мы знаем, по какому принципу именуются новые таблицы, включаемые в массив каждый день.

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

Можно ли решить эту проблему штатными узлами Лоджинома (например, циклом) или нужно идти через цикличный запрос на языке sql в узле загрузки?

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

Ответ: 1 шт.

0 голосов
Анастасия Жук

Александр, здравствуйте!
Для начала необходимо получить список нужных таблиц. Для этого можно использовать запрос:

SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

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

Далее по данному списку нужно будет запустить цикл, осуществляющий импорт из таблицы (названия таблиц будут использоваться в качестве переменной в запросе). 


Необходимо учитывать, что такой вариант возможен только в том случае, когда таблицы имеют одинаковую структуру.

АлександрЛД
Анастасия, спасибо за ответ))

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

Не подскажете, в чём тут может быть дело.
АлександрЛД
Анастасия, спасибо огромное. Всё получилось. Создать цикл при выгрузке из хранилища в Лоджиноме проще, чем написать цикличный запрос sql))) Спасибо за помощь.
...