Вопросы

Загрузка данных в разделенную таблицу Biqquery через Google Dataflow / Beam с помощью write_truncate

Таким образом, существующая настройка, которую мы использовали для создания новой таблицы на каждый день, отлично работала с » WRITE_TRUNCATE «, однако, когда мы обновили наш код, чтобы использовать секционированную таблицу, несмотря на наше задание потока данных, оно не будет работать с write_truncate.

Он работает отлично, с настройкой записи, установленной как «WRITE_APPEND» (насколько я понял, из beam, возможно, он пытается удалить table, а затем воссоздать его), поскольку я предоставляю декоратор таблицы, он не может создать новую таблицу.

Пример фрагмента с использованием кода Python:

beam.io.Write('Write({})'.format(date), beam.io.BigQuerySink(output_table_name + '$' + date, create_disposition=beam.io.BigQueryDisposition.CREATE_NEVER, write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE)

что дает ошибку:

Идентификаторы таблиц должны быть буквенно-цифровыми.

поскольку он пытался воссоздать таблицу, и мы указываем декоратор раздела в аргументе.

Вот некоторые из вещей, которые я пробовал:

  1. Обновление write_disposition как WRITE_APPEND, хотя оно работает, не выполняет цели, поскольку повторное выполнение для той же даты приведет к дублированию данных.
  2. С использованием

bq --apilog /tmp/log.txt load --replace --source_format=NEWLINE_DELIMITED_JSON 'table.$20160101' sample_json.json

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

  1. Пробовал некоторые другие ссылки, но это как хорошо использует WRITE_APPEND.
Читать:
S3-ковш. Произошла неизвестная ошибка: действие не применяется к каким-либо ресурсам в инструкции. Как создать политику s3-bucket?

Есть ли способ записи в многораздельную таблицу из задания потока данных с использованием метода write_truncate?

Сообщите мне, если требуются какие-либо дополнительные сведения. Спасибо

Ошибка при создании таблицы с помощью декоратора раздела может быть ошибкой. Позвольте мне проверить и вернуться к вам.   —  person Sirius    schedule 22.02.2017

Можете ли вы предоставить трассировку стека для ваших «идентификаторов таблиц должны быть буквенно-цифровыми»?   —  person Sirius    schedule 22.02.2017

Я проконсультировался с разработчиком IO. Похоже, сейчас это не поддерживается. : /   —  person Sirius    schedule 22.02.2017

Спасибо за ответ, Пабло :), я только надеялся, что он не удалит таблицу для TRUNCATE, а просто очистит все строки для этого раздела, но я полагаю, что это не работает таким образом луч.   —  person Sirius    schedule 22.02.2017

Похожие записи

Самостоятельный агент сборки занимает слишком много времени для успешного выполнения задания

admin

Как получить SHA фиксации слияния для объединенного запроса на перенос?

admin

Как запустить экземпляр контейнера с помощью API Azure?

admin

Как объявлять внешние функции в модулях

admin

Как я могу вычислить это, используя только целочисленные типы данных?

admin

BitBucket Pipeline не может найти контейнер после ssh в DigitalOcean Droplet

admin