У нас есть многораздельная таблица BigQuery, которая разбита на разделы по настраиваемому полю (event_timestamp
). Это было связано с необходимостью импортировать исторические данные, сохраняя при этом разбиение на разделы и контроль затрат на запросы.
Это означает, что в таблице нет поля _PARTITIONTIME
, и мы не можем выполнять запросы WHERE _PARTITIONTIME IS NULL
для просмотра недавно отправленных записей, находящихся в буфере потоковой передачи.
Итак, есть ли уловка, позволяющая запросить буфер потоковой передачи, даже если вы используете настраиваемое поле для разделения?
Редактировать Мы используем стандартный SQL, а не устаревший SQL, извините за то, что не указали это явно ранее.
@FelipeHoffa В первую очередь это проверка / проверка того, что функции работают должным образом, и запись / сбор ожидаемых данных. Задержки с промывкой делают это отсутствие видимости обычным камнем преткновения. Обычно, когда вы не получаете ожидаемых результатов, вы предполагаете, что это ваш код - в этом случае он действительно работает, но все скрыто в буфере.
Несмотря на то, что запросы к таблицам с полем разделения времени поддерживаются только через стандартный SQL, я считаю, что Legacy SQL по-прежнему поддерживается для запроса потоковых вставок в таблицу.
#legacySQL
select * from [<project-name>:<data-set>.<table>$__UNPARTITIONED__]
Ссылка:
https://cloud.google.com/bigquery/docs/partitioned-tables
Запрос данных потоковой передачи с использованием --time_partitioning_field
Привет, @Logan, спасибо за ссылку - я обновляю свой вопрос, чтобы указать стандартный SQL, потому что в противном случае ваш ответ был бы точным. Я прошу прощения за то, что не стал более конкретным (и на самом деле, возможно, нет стандартного метода SQL)
Отметив это как ответ, поскольку я не думаю, что есть решение в рамках Standard SQL
Мы сейчас почти два года спустя; Не могу поверить, что в стандартном SQL до сих пор нет решения для этого! Однако на данный момент это единственный способ, который я нашел, который позволяет мне запрашивать потоковый буфер таблицы, разделенной на поле. Спасибо!
Можете ли вы подробнее рассказать о своей цели, когда запрашиваете только данные, существующие в буфере?