Возможная согласованность BigQuery гарантирует использование API потоковой вставки
Я хотел бы использовать API потоковой вставки BigQuery для вставки строк в таблицу BigQuery. В моем случае это единственный класс операции "запись", который когда-либо будет выполнен; Я никогда не буду вставлять строки любым другим способом, и я никогда не буду обновлять или удалять строки.
Прочитав Life of BigQuery потоковую вставку, я понимаю, что даже после insertAll
запрос был подтвержден, возможно, что последующие операции чтения могут не "видеть" все строки, которые были успешно вставлены им, до тех пор, пока они не будут переданы из потокового буфера в управляемое хранилище.
Предполагая, что мое понимание верно (пожалуйста, дайте мне знать, если нет!):
- Есть ли способ узнать, когда все строки вставлены данным
insertAll
запрос был передан в управляемое хранилище? - Даже после того, как строка была зафиксирована в управляемом хранилище, гарантируются ли последующие операции чтения либо их просмотр, либо сбой?
Почему я задаю эти вопросы? Моя схема таблицы будет включать в себя столбец "ключ", который является строго монотонно увеличивающимся идентификатором. Все операции чтения будут ограничены строками, ключи которых не превышают определенного значения. Мне нужна гарантия, что операция чтения этой формы всегда будет возвращать одинаковые результаты, при условии, что указанный ключ соответствует строке, которая уже была вставлена. Ясно, что никакие строки, вставленные впоследствии, не могли быть возвращены таким запросом (потому что их ключи были бы больше, чем указанный ключ). Однако, если есть какие-либо строки, которые уже были вставлены, но все еще находятся в буфере потоковой передачи, запрос может не вернуть их, но точно такой же запрос, выполненный позже (после того, как строки были зафиксированы) , вернет их. В моем случае это будет катастрофа.
1 ответ
Есть два состояния.
В потоковом буфере и фиксируется. Вы можете прочитать строки, находящиеся в потоковом буфере, этот синтаксис варьируется между нераздельными и многораздельными таблицами, вы можете найти примеры, как получить эти строки.
Если insertId использовался более чем одной строкой, сохраняется только одна строка.
Совершенные государственные гарантии вы можете прочитать.