Как запросить буфер потоковой передачи в BigQuery, если поле _PARTITIONTIME недоступно в стандартном SQL

У нас есть многораздельная таблица BigQuery, которая разбита на разделы по настраиваемому полю (event_timestamp). Это было связано с необходимостью импортировать исторические данные, сохраняя при этом разбиение на разделы и контроль затрат на запросы.

Это означает, что в таблице нет поля _PARTITIONTIME, и мы не можем выполнять запросы WHERE _PARTITIONTIME IS NULL для просмотра недавно отправленных записей, находящихся в буфере потоковой передачи.

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

Редактировать Мы используем стандартный SQL, а не устаревший SQL, извините за то, что не указали это явно ранее.

Можете ли вы подробнее рассказать о своей цели, когда запрашиваете только данные, существующие в буфере?

Felipe Hoffa 30.10.2018 04:41

@FelipeHoffa В первую очередь это проверка / проверка того, что функции работают должным образом, и запись / сбор ожидаемых данных. Задержки с промывкой делают это отсутствие видимости обычным камнем преткновения. Обычно, когда вы не получаете ожидаемых результатов, вы предполагаете, что это ваш код - в этом случае он действительно работает, но все скрыто в буфере.

EyePulp 30.10.2018 15:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
742
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Несмотря на то, что запросы к таблицам с полем разделения времени поддерживаются только через стандартный 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)

EyePulp 30.10.2018 22:30

Отметив это как ответ, поскольку я не думаю, что есть решение в рамках Standard SQL

EyePulp 05.11.2018 16:47

Мы сейчас почти два года спустя; Не могу поверить, что в стандартном SQL до сих пор нет решения для этого! Однако на данный момент это единственный способ, который я нашел, который позволяет мне запрашивать потоковый буфер таблицы, разделенной на поле. Спасибо!

Semafoor 17.08.2020 15:52

Другие вопросы по теме