У меня есть таблица в BigQuery, в которую я постоянно передаю данные.
Поскольку кластеризация Bigquery не обновляется во время вставки, как советовал @Felipe в качестве ответа на этот вопрос Я хочу запустить на столе команду Merge
для принудительной сборки кластера.
Однако, когда я делаю это, я получаю эту ошибку
Оператор UPDATE или DELETE над таблицей projectId.datasetId.Jobs повлияет на строки в потоковом буфере, что не поддерживается
Это пример команды merge
, которую я пытался использовать:
MERGE
`projectId.datasetId.Jobs` as tgt
USING (SELECT *, _PARTITIONTIME FROM `projectId.datasetId.Jobs` WHERE _PARTITIONTIME IS NOT NULL) as src
ON
FALSE
WHEN
NOT MATCHED AND src._PARTITIONTIME = '2019-04-01 00:00:00'
THEN
INSERT (
_PARTITIONTIME,
ts,
)
VALUES (
_PARTITIONTIME,
ts,
)
WHEN
NOT MATCHED BY SOURCE AND tgt._PARTITIONTIME = '2019-04-01 00:00:00' AND tgt._PARTITIONTIME IS NOT NULL
THEN
DELETE
Итак, теперь я хотел получить данные в потоковом буфере для устранения этой проблемы. Согласно документации Bigquery, способ сделать это - использовать _partitionTime IS NULL
, например:
SELECT * FROM
`project.dataset.Jobs` WHERE _partitionTime IS NULL
Этот запрос ВСЕГДА возвращает пустой результат
![enter image description here](https://i.stack.imgur.com/w1Oyf.png)
Есть идеи, как я могу видеть данные в потоковом буфере?