ЗАГРУЗКА ДАННЫХ ИЗ S3 PREFIX с использованием корня корзины загружает только некоторые файлы - PullRequest
1 голос
/ 08 октября 2019

У меня около 2M + записей в ~ 600 CSV-файлах в одном сегменте, все на корневом уровне, а не в каких-либо подпапках. Все файлы начинаются с уникального идентификационного номера из 3-6 цифр. Если я выполняю следующую команду:

LOAD DATA FROM S3 PREFIX 's3://my-bucket/'
        IGNORE INTO TABLE `my_table`
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
        IGNORE 1 LINES;

В таблицу загружается только около 500 тыс. Записей. Но если я выполняю последовательность команд, начинающуюся с 1-9, то в итоге получаю ожидаемое количество строк данных, загруженных в таблицу.

LOAD DATA FROM S3 PREFIX 's3://my-bucket/1'
...
LOAD DATA FROM S3 PREFIX 's3://my-bucket/2'
...
LOAD DATA FROM S3 PREFIX 's3://my-bucket/3'
...
...
LOAD DATA FROM S3 PREFIX 's3://my-bucket/9'

Согласно документам, вы не можете использовать подстановочный знак* в строке префикса. Я в недоумении, почему это не ведет себя, как ожидалось.

1 Ответ

0 голосов
/ 15 октября 2019

Обновление, разобрался с вопросом. Файлы были перезаписаны / заменены как часть процесса обновления. Если файл / объект был записан в середине записи, тогда загрузка из S3 остановится на этом файле. Решение состояло в том, чтобы поставить в обновлениях метку времени вместо того, чтобы снова и снова писать поверх одних и тех же имен файлов.

...