Создание секционированной таблицы из запроса секционированной таблицы - PullRequest
1 голос
/ 03 июля 2019

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

Я пробовал: Создание пустой многораздельной таблицы и копирование результатов из запроса, но затем разделение отсутствует.

Следующий оператор Create должен работать, если я также включил разделенную дату в качестве столбца в новую таблицу, которая мне не нужна. Есть ли способ использовать столбец part_date в качестве декоратора раздела при загрузке данных из результата запроса?

    CREATE TABLE
      cat_dataset.cats_names(cat_name string)
    PARTITION BY
      part_date AS
    SELECT
      cat_name,
      _PARTITIONDATE AS part_date
    FROM
      `myproject.cat_dataset.cats`

Я хочу избежать зацикливания всех дат и записи данных с этой даты в новую таблицу. Есть ли способ использовать столбец part_date в качестве декоратора раздела при загрузке данных из результата запроса?

1 Ответ

2 голосов
/ 03 июля 2019

INSERT INTO позволяет указать _PARTITIONTIME в качестве столбца, см. ссылка .Код ниже должен работать:

CREATE TABLE cat_dataset.cats_names(cat_name string)
PARTITION BY DATE(_PARTITIONTIME);

INSERT INTO cat_dataset.cats_names (_PARTITIONTIME, cat_name) 
SELECT _PARTITIONTIME, cat_name
FROM `myproject.cat_dataset.cats`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...