Завантаження даних в таблицю розділених Biqquery через Google Dataflow / Beam з write_truncate

Sirius 02/21/2017. 1 answers, 336 views
python google-bigquery google-bigquery google-cloud-dataflow google-cloud-dataflow apache-beam

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

Він працює чудово, з набором записів встановлено як "WRITE_APPEND" (з того, що я зрозумів, від пучка , він, можливо, намагається видалити таблицю, а потім відтворити її), оскільки я постачаю декоратор таблиці не може створити нову стіл

Фрагмент зразка з використанням коду 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) 

що дає помилку:

Table IDs must be alphanumeric

оскільки він намагався відтворити стіл, і ми постачаємо декоратор розділу в аргументі.

Ось деякі з речей, які я намагався:

  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.

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

Дайте мені знати, якщо потрібні додаткові відомості. Дякую

4 Comments
Pablo 02/21/2017
Неможливо створити таблицю з декоратором розділів може бути помилкою. Дозвольте мені перевірити і повернутися до вас.
Pablo 02/21/2017
Чи можете ви надати слід стека для вашого "Ідентифікатори таблиці повинні бути буквено-цифрових"?
Pablo 02/21/2017
Я перевірив з IO dev. Здається, зараз це не підтримується. : /
Sirius 02/22/2017
Дякуємо за відповідь Пабло :), я тільки сподівався, що він не видаляє таблицю для TRUNCATE, а просто очищує всі рядки для цього розділу, але я думаю, що він не працює на цьому шляху.

1 Answers


community wiki 03/17/2017.

Схоже, на цей раз не підтримується. Кредит надходить до @Pablo, щоб дізнатись з розробника IO.

Відповідно до документації Beam на сторінці Github, їхня сторінка JIRA буде прийнятною для запиту такої функції. Я рекомендую подати запит на функцію та опублікувати посилання в коментарях, щоб інші учасники спільноти могли прослідкувати за ними та показати свою підтримку.

Related questions

Hot questions

Language

Popular Tags