Я использую Google BigQuery из движка приложения. У меня есть задание cron, которое запускается каждые 15 минут для экспорта в BigQuery. Однако случайным образом импорт выполняется дважды. Однако в логах appengine это не отражено. У меня есть набор больших двоичных объектов, которые я поддерживаю для записи данных в bigquery, и в них не записываются повторяющиеся данные. У кого-нибудь еще были проблемы с bigquery с дублирующимся импортом? Опять же, мои журналы appengine показывают, что импорт происходит только один раз, и я немного не понимаю, как устранять неполадки.
Двойной импорт BigQuery
Ответы (2)
Один из способов устранения неполадок — просмотреть задания импорта. Вы можете сделать это с помощью инструмента bq, запустив bq ls -j
, чтобы просмотреть список запущенных вами заданий, и bq show -j <job_id>
, чтобы отобразить сведения о конкретных заданиях.
Мы не слышали ни о каких других случаях двойных загрузок. Одна из идей, чтобы предотвратить это, состоит в том, чтобы дать вашим заданиям импорта идентификатор... по умолчанию он создается для вас (он будет выглядеть как job_). Идентификаторы заданий принудительно должны быть уникальными в рамках проекта, поэтому, если вы создаете идентификатор для импорта, который собираетесь выполнить, при запуске двойного импорта второй немедленно завершится ошибкой, поскольку идентификатор задания уже существует.
Я столкнулся с той же проблемой, когда задания, кажется, были импортированы дважды, хотя наши журналы показывают, что они были отправлены только один раз.
Также просмотрели задания, и приведенная выше команда показывает, что она была успешно обработана только один раз.
Обратите внимание, что, поскольку задание было отправлено только один раз, не знаю, как в этом случае поможет контроль job_id. Кажется, это что-то внутреннее в BigQuery, что могло привести к дублированию заданий?
Дайте мне знать, если вам нужно что-нибудь с моей стороны для расследования.
Спасибо,