Есть ли способ создать временную таблицу в Google BigQuery с помощью:
SELECT * INTO <temp table>
FROM <table name>
то же, что мы можем создать в SQL?
Для сложных запросов мне нужно создать временные таблицы для хранения моих данных.
Есть ли способ создать временную таблицу в Google BigQuery с помощью:
SELECT * INTO <temp table>
FROM <table name>
то же, что мы можем создать в SQL?
Для сложных запросов мне нужно создать временные таблицы для хранения моих данных.
Обновление 2018 года - окончательный ответ с DDL
С поддержкой BigQuery DDL вы можете создать таблицу из результатов запроса - и указать ее срок действия во время создания. Например, на 3 дня:
#standardSQL
CREATE TABLE 'fh-bigquery.public_dump.vtemp'
OPTIONS(
expiration_timestamp=TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 3 DAY)
) AS
SELECT corpus, COUNT(*) c
FROM 'bigquery-public-data.samples.shakespeare'
GROUP BY corpus
Обновление 2019 года - С помощью сценариев Biga Query scripting (бета-версия) официально поддерживается CREATE TEMP TABLE. Смотри общедоступную документацию здесь.
Обновление 2018 года: fooobar.com/questions/411294/...
Каждый запрос в bigquery создает временную таблицу с результатами. Временно, если вы не дадите имя таблице назначения, тогда вы контролируете ее жизненный цикл.
Используйте API, чтобы увидеть временное имя таблицы, или назовите ваши таблицы при запросах.
Временная таблица может быть создана с помощью WITH
в "Новый стандартный SQL". См. раздел WITH.
Пример, приведенный Google:
WITH subQ1 AS (SELECT SchoolID FROM Roster),
subQ2 AS (SELECT OpponentID FROM PlayerStats)
SELECT * FROM subQ1
UNION ALL
SELECT * FROM subQ2;
Возьмите пример SQL
SELECT name,count FROM mydataset.babynames
WHERE gender = 'M' ORDER BY count DESC LIMIT 6 INTO mydataset.happyhalloween;
Самый простой эквивалент командной строки -
bq query --destination_table=mydataset.happyhalloween \
"SELECT name,count FROM mydataset.babynames WHERE gender = 'M' \
ORDER BY count DESC LIMIT 6"
Смотрите документацию здесь:https://cloud.google.com/bigquery/bq-command-line-tool#createtablequery
Обновление 2019 года - С помощью сценариев Biga Query scripting (бета-версия) официально поддерживается CREATE TEMP TABLE. Смотри общедоступную документацию здесь.
CREATE TEMP TABLE Example
(
x INT64,
y STRING
);
INSERT INTO Example
VALUES (5, 'foo');
INSERT INTO Example
VALUES (6, 'bar');
SELECT *
FROM Example;
Чтобы создать временную таблицу, используйте ключевое слово TEMP или TEMPORARY, когда вы используете оператор CREATE TABLE, а для использования CREATE TEMPORARY TABLE требуется сценарий, поэтому лучше начинать с оператора begin.
Begin
CREATE TEMP TABLE <table_name> as select * from <table_name> where <condition>;
End ;