Как удалить строки в таблице bigquery с помощью golang

# #go #google-bigquery #delete-row

#Вперед #google-bigquery #удалить-строка

Вопрос:

Я пытаюсь удалить данные из таблицы Bigquery с помощью функции Google cloud в golang. Я успешно выполнил вставку, но не смог выполнить удаление. Основываясь на некоторых документах и поиске в Google, я понимаю, что мне нужно использовать DML, но не уверен, как мне на самом деле написать код для выполнения операции удаления. Клиентский документ Golang не очень полезен, как и документы big query, когда дело доходит до удаления выбранных строк.

Фрагмент кода golang был бы очень признателен. Спасибо!

Комментарии:

1. Используете ли вы потоковый API или загружаете файлы в таблицы. В общем, если вам нужно удалить данные из большого запроса, вы используете неправильный инструмент. Если вы используете небольшой объем данных, вам не следует использовать большой запрос, а если вы используете большой объем данных, не используйте delete ни в одном хранилище. Используйте источник событий. Например, используйте идентификатор строки и статус и отфильтруйте все идентификаторы со статусом удалено.

2. @ZAky, да, я использую streaming API для загрузки csv-файла в таблицу GBQ (ссылка: github.com/GoogleCloudPlatform/golang-samples/blob /… ). Мне нужно обновить / удалить строки на основе результата обработки облачной функции. Есть ли лучший способ сделать это с помощью облачной функции?

3. @ZAky, я могу фильтровать строки на основе статуса. Однако мое обновление статуса зависит от вывода облачной функции.

4. Вы не используете потоковую передачу. вы используете loading. Все в порядке. Опять же, если вы используете огромное количество данных, используйте event sourcing. eventuate.io /.

Ответ №1:

Если вы хотите удалить строки, вы выполняете удаление DML. Более подробную информацию об операторе УДАЛЕНИЯ можно найти здесь: https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#delete_statement

Если вам нужен пример выдачи запроса, вы можете просмотреть примеры, встроенные в другое место в документации BigQuery, или просто перейти непосредственно к фрагментам исходного кода, например https://github.com/GoogleCloudPlatform/golang-samples/blob/master/bigquery/snippets/querying/bigquery_query.go

Если этого недостаточно, пожалуйста, уточните свой вопрос, чтобы предоставить более подробную информацию о проблеме, с которой вы столкнулись (например, о схеме вашей таблицы и о том, что вы пытаетесь удалить).

Комментарии:

1. Я уже просматривал этот фрагмент кода. Это ссылка для запуска запроса select, а не DML.

2. Основы те же, отличается только текст запроса. Вместо оператора SELECT вы выполняете оператор DELETE . Вы также можете пропустить чтение строк; операторы DML не возвращают строки.