В настоящее время конвейер использует тестовый текстовый файл, содержащий 341 строку, которую необходимо обработать и вставить в БД. . Исходных дубликатов нет, поэтому при одном прогоне должна быть правильно вставлена 341 строка.
Здесь вы можете получить доступ к образцу БЛОКА ЭКСПОРТЕРА ДАННЫХ< /strong> (блоков всего два, и загрузчик работает нормально, возвращая DF 341 с действительными данными):
https://docs.google.com/document/ d/17sqtAUs1a9sF7j3ew4IhNFWKQc9ma2PvRV4UnfvoV7Q/edit?usp=sharing
Неделя 1: Конвейер настроен. Логика кажется достаточно хорошей. Однако я запускаю его и понимаю, что система предотвращения дублирования строк еще не настроена. При каждом запуске, как и ожидалось, у меня появляется на 341 больше строк.
Неделя 2: Я исправляю проблему с дублированием. Теперь после запуска, если не удалить строки БД, ничего не вставляется. Однако при первом запуске вставляется более 1 тыс. строк, и когда я подсчитываю(*) каждого пользователя, получается множество дубликатов.
Неделя 3: Я продолжаю отлаживать каждую переменную, хотя результат выглядит надежным. Второй запуск ничего не вставляет, но первый теперь вставляет более 10 тысяч строк.
Неделя 4: Я проверяю, какой запрос отправляется в сервер. Запросы корректны и ни в коем случае не должны вставлять более 341 строки; однако база данных пополняется 25 тысячами строк.
Если кто-нибудь может помочь мне, подсказав, что может происходить, я буду более чем благодарен.
Дополнительная информация:
- В настоящее время конвейер обновляет последнюю дату вставки строки, чтобы предотвратить старые данные.
- Он также имеет проверку повторяющихся строк, поэтому, если какая-либо строка в таблице равна текущей строке, обработано, оно должно возвращать True и не добавлять в запрос текущие обработанные данные, переходя к следующей строке. Это было реализовано на третьей неделе, но затем возникла проблема, когда оно всегда возвращало True, независимо от того, что предыдущие проверки указывали False (никаких дубликатов... фактически никаких строк в БД). Итак, что происходит, так это то, что вывод терминала всегда равен True и говорит: «Откат из-за проблемы, запрос недействителен», поскольку он пуст. Однако в любом случае вставляется более 20 тыс. строк.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -no-reason