2016-06-17 3 views
8

Я хотел бы знать, есть ли способ передать данные в определенный временной раздел таблицы BigQuery. В документации сказано, что вы должны использовать таблицы декораторы:Поток данных в определенный раздел времени BigQuery

Loading data using partition decorators

Partition decorators enable you to load data into a specific partition. To adjust for timezones, use a partition decorator to load data into a partition based on your preferred timezone. For example, if you are on Pacific Standard Time (PST), load all data generated on May 1, 2016 PST into the partition for that date by using the corresponding partition decorator:

[TABLE_NAME]$20160501

Источник: https://cloud.google.com/bigquery/docs/partitioned-tables#dealing_with_timezone_issues

И:

Restating data in a partition

To update data in a specific partition, append a partition decorator to the name of the partitioned table when loading data into the table. A partition decorator represents a specific date and takes the form:

$YYYYMMDD

Источник: https://cloud.google.com/bigquery/docs/creating-partitioned-tables#creating_a_partitioned_table

Но если я пытаюсь использовать их при потоковой передаче данных Я получил следующую ошибку: Декораторы стола не могут использоваться с потоковой вставкой.

Заранее благодарен!

ответ

5

Извините за неудобства. Мы планируем оказать поддержку этому в ближайшем будущем. Пожалуйста, следите за обновлениями.

Возможные обходные пути, которые могли бы работать во многих случаях:

  1. Если у вас есть большая часть имеющихся данных (что иногда случается, когда пересчет данных для старого раздела), вы можете использовать работу нагрузки с раздел как место назначения.

  2. Другой вариант заключается в поток во временную таблицу и после того, как данные были сброшены из буфера потоковой передачи, используйте Бк ф

+0

Привет, Паван, спасибо за ваш ответ. Если я должен использовать второй вариант и иметь данные из многих дней, это лучший подход? 1) Поток данных в другую таблицу за каждый день, а затем копирование в финальную секционированную таблицу с использованием декораторов. 2) Поместите данные в уникальную таблицу, а затем запросите результаты за каждый день на основе поля и скопируйте их в финальную секционированную таблицу с помощью декораторов. 3) Другое Заранее благодарен –

+0

Быстрый вопрос: есть ли причина, по которой вы не можете напрямую передать данные в таблицу (а не конкретный раздел), и пусть bigquery выводит временную метку раздела. Мы понимаем, что есть случаи, когда это может быть неудобно, но нужно убедиться, что это действительно так. –

+0

Например, один из моих пользователей добавляет новый проект и хочет импортировать данные за последние 30 дней из внешнего API. Я хочу передать эти данные в их соответствующие временные разделы, чтобы затем я мог запрашивать данные выбранного периода времени на панели инструментов. Было бы здорово, если бы мы могли выбрать одно из полей таблицы в качестве «ссылки раздела» для определения временной метки раздела. Я думаю, что это невозможно сделать сейчас. Еще раз спасибо Павану. –

Смежные вопросы