BigQuery - Автоматизация переводов из Google Cloud Storage - Таблица перезаписи - PullRequest
0 голосов
/ 02 января 2019

Вот случай:

  • Наш клиент ежедневно загружает CSV (перезаписанные) в корзину в Google Cloud Storage (каждая таблица в отдельном файле).
  • Мы используем BigQuery в качестве источника данных в DataStudio
  • Мы хотим автоматически перенести файлы CSV в BigQuery.

Дело в том, хотя мы:

  1. Объявлены таблицы в BigQuery с параметром предпочтения записи «Перезаписать таблицу»
  2. Настроил ежедневный пользовательский интерфейс «Передачи» (BigQuery> «Передачи») для автоматической загрузки CSV-файлов из Google Cloud через час после загрузки файлов в Google Cloud , как указано в ограничениях .

Автоматическая передача / загрузка по умолчанию включена в "WRITE_APPEND", поэтому таблицы добавляются, а не перезаписываются в BigQuery.

Отсюда возникает вопрос: как / где мы можем изменить

configuration.load.writeDisposition = WRITE_TRUNCATE

как указано здесь , чтобы перезаписать таблицы при автоматической загрузке CSV?

Я думаю, что нам этого не хватает.

Приветствие.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Ничто из вышеперечисленного не работает для нас, поэтому я публикую это на тот случай, если у кого-то возникнет такая же проблема.

Мы запланировали запрос на удаление содержимого таблицы непосредственно перед началом процесса автоматического импорта:

DELETE FROM project.tableName WHERE true

И затем новые данные будут импортированы в таблицу void, поэтому значение по умолчанию «WRITE_APPEND» не влияет на нас.

0 голосов
/ 02 января 2019

1) Один из способов сделать это - использовать DDL для CREATE и REPLACE вашей таблицы перед выполнением запроса, который импортирует данные.

Это пример того, как создатьтаблица

#standardSQL
 CREATE TABLE mydataset.top_words
 OPTIONS(
   description="Top ten words per Shakespeare corpus"
 ) AS
 SELECT
   corpus,
   ARRAY_AGG(STRUCT(word, word_count) ORDER BY word_count DESC LIMIT 10) AS top_words
 FROM bigquery-public-data.samples.shakespeare
 GROUP BY corpus;

Теперь, когда она создана, вы можете импортировать свои данные.

2) Другой способ - использовать расписание BigQuery. Запросы enter image description here

3) Если вы пишете Python, вы можете найти еще лучшее решение здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...