Вывести список всех разделов из многораздельной таблицы BigQuery с помощью require_partition_filter - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь найти способ составления списка разделов таблицы, созданной с помощью require_partition_filter = true, но пока не могу найти способ.

Это скрипт создания таблицы

CREATE TABLE mydataset.partitionedtable_partitiontime
(
x INT64 \
)
PARTITION BY DATE(_PARTITIONTIME)
OPTIONS(
require_partition_filter = true
);

Некоторые тестовые строки

INSERT INTO mydataset.partitionedtable_partitiontime (_PARTITIONTIME, x) SELECT TIMESTAMP("2017-05-01"), 10;
INSERT INTO mydataset.partitionedtable_partitiontime (_PARTITIONTIME, x) SELECT TIMESTAMP("2017-04-01"), 20;
INSERT INTO mydataset.partitionedtable_partitiontime (_PARTITIONTIME, x) SELECT TIMESTAMP("2017-03-01"), 30;

Как и ожидалось, если попытаться выполнить следующий запрос для получения разделов, я получаю сообщение об ошибке, потому что мне нужно использовать фильтр поверх столбца разделов

SELECT _PARTITIONTIME as pt, FORMAT_TIMESTAMP("%Y%m%d", _PARTITIONTIME) as partition_id
FROM `mydataset.partitionedtable_partitiontime`
GROUP BY _PARTITIONTIME
ORDER BY _PARTITIONTIME

Error

Cannot query over table 'mydataset.partitionedtable_partitiontime' without a filter over column(s) '_PARTITION_LOAD_TIME', '_PARTITIONDATE', '_PARTITIONTIME' that can be used for partition elimination

есть идеи как составить список разделов?

РЕДАКТИРОВАТЬ: я знаю, что можно добавить фильтр, но я ищу решение, как "ПОКАЗАТЬ РАЗДЕЛ TABLENAME" Hive, чтобы перечислить все разделы (которые по сути являются метаданными)

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 апреля 2019

Вот как это сделать

SELECT * FROM `mydataset.partitionedtable_partitiontime$__PARTITIONS_SUMMARY__`

Для этого требуется разрешение bigquery.jobs.create

0 голосов
/ 16 апреля 2019

Как упоминается хлагос , вы можете получить эти данные, запросив псевдостолбец _PARTITIONTIME, если вы используете Стандартный SQL или мета-таблицу __PARTITIONS_SUMMARY__ для Устаревший SQL .

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

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