AWS Athena возвращает нулевые записи из таблиц, созданных на основе входного CSV-файла GLUE Crawler из S3

Часть первая:

Я попытался запустить glue crawler на фиктивном csv, загруженном в s3, он создал таблицу, но когда я пытаюсь просмотреть таблицу в athena и запрашивать ее, он показывает возвращенные нулевые записи.

Но демонстрационные данные ELB в Афине работают нормально.

Часть вторая (сценарий :)

Предположим, у меня есть файл Excel и словарь данных о том, как и в каком формате данные хранятся в этом файле, я хочу, чтобы эти данные сбрасывались в AWS Redshift. Как лучше всего этого добиться?


person Kush Vyas    schedule 13.11.2017    source источник
comment
Обновите вопрос, добавив в него образцы данных из CSV-файла, который был прочитан поисковым роботом, а также укажите структуру схемы. Не упоминайте просто о возвращении Zero Records.   -  person Madhukar Mohanraju    schedule 14.11.2017


Ответы (8)


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

person harpoon11    schedule 26.12.2017
comment
Это сработало для меня. У меня возникла такая же проблема. Однако это сработало, когда я поместил все данные в отдельную папку и указал сканеру на родительскую папку. Я заметил, что имя таблицы, созданной таким образом, не содержало имени формата файла, в отличие от моих предыдущих попыток. Его можно использовать в качестве визуального идентификатора, чтобы определить, правильно ли прочитаны таблицы. - person Prem; 21.07.2021

У меня возникла такая же проблема. попробуйте создать отдельную папку для одной таблицы в ведрах s3, чем перезапустить искатель клея. вы получите новую таблицу в каталоге данных клея, имя которой совпадает с именем папки корзины s3.

person Abhishek Pathak    schedule 27.12.2017

Удалите сканер, а затем снова создайте сканера (только один файл csv должен быть недоступен в s3 и запустить сканер) важное примечание один файл CSV запустите его, мы можем просмотреть записи в Афина.

person yugandhar    schedule 13.12.2017

Я действительно указывал путь к папке S3 вместо имени файла и по-прежнему не мог заставить Athena вернуть какие-либо записи («Нулевые записи возвращены», «Отсканированные данные: 0 КБ»).

Оказывается, проблема заключалась в том, что входные файлы (мои повернутые файлы журнала, автоматически загружаемые в S3 из Elastic Beanstalk) начинались с подчеркивания (_), например _var_log_nginx_rotated_access.log1534237261.gz! Очевидно, это запрещено.

person jrc    schedule 15.08.2018
comment
Да, это правильный ответ. Glue Crawler может найти данные, но Athena не работает, если файл начинается с _ - person Jonathan; 19.11.2020

Решение: выберите путь folder, даже если в пределах folder у вас много files. Это создаст одну таблицу, и данные будут отображаться.

person Harry_pb    schedule 30.01.2020

Так что во многих таких случаях мне помогает использование EXCLUDE PATTERN в Glue Crawler.

Это несомненно, что вместо того, чтобы напрямую указывать поисковому роботу на файл, мы должны указать его на каталог, и даже делая это, когда мы не получаем никаких записей, на помощь приходит Exclude Pattern. Вам нужно будет разработать какой-то шаблон, по которому будет сканироваться только тот файл, который вы хотите, а остальные исключаются. (предлагая сделать это вместо создания разных каталогов для каждого файла и в большинстве случаев в производственном сегменте, такие изменения неосуществимы)

У меня были данные в корзине S3! Было несколько каталогов, и внутри каждого каталога был файл snappy parquet и файл json. Файл json вызывал проблему.

Итак, я запустил искатель в главном каталоге, который содержал много каталогов, и в ШАБЛОНЕ ИСКЛЮЧЕНИЯ я дал - * / * .json

И на этот раз он не создал никакой таблицы для файла json, и я смог увидеть записи таблицы с помощью Athena.

для справки - https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html

person kartik    schedule 17.06.2020

Структура корзины / папки s3 очень важна:

s3://<bucketname>/<data-folder>/
    /<type-1-[CSVs|Parquets etc]>/<files.[csv or parquet]>
    /<type-2-[CSVs|Parquets etc]>/<files.[csv or parquet]>
    ...
    /<type-N-[CSVs|Parquets etc]>/<files.[csv or parquet]>

и укажите в пути включения Glue Crawler:

s3://<bucketname e.g my-s3-bucket-ewhbfhvf>/<data-folder e.g data>
person khanna    schedule 07.09.2020

Указание сканеру клея на папку S3, а не на фактический файл, помогло.

person Riaz Liyakath    schedule 08.04.2021