Программа Clue Crawler не может исключить файлы.csv.metadata

У меня есть место S3 s3://bucket-name/folder-name/ которая состоит из подпапки, имя которой генерируется динамически, которая содержит фразу _Top10InvoiceIds, Эта подпапка состоит из .csv а также .csv.metadata файлы. Я использую сканер клея, чтобы сканировать только файлы CSV и просматривать их в Афине. Но я не могу исключить .csv.metadata файлы. Я перепробовал все возможные шаблоны регулярных выражений в качестве значения glob.

Некоторые из моих попыток были:

  1. *_Top10InvoiceIds/ *.metadata
  2. *_Top10InvoiceIds/ * .* metadata
  3. *_Top10InvoiceIds/ *. *.metadata
  4. *_Top10InvoiceIds/ * .csv.metadata
  5. ** .metadata
  6. * .metadata
  7. * .csv.metadata
  8. * /*.metadata

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

1 ответ

Похоже, вы пытались предотвратить отображение файлов.metadata как данных в вашей таблице Athena, используя исключения в Glue Crawlers.

Glue Crawlers предназначены для создания определений таблиц и связанных метаданных для указанных таблиц. С точки зрения заполнения данных в таблицах это Афина:

Гусеничный трактор

Программа, которая подключается к хранилищу данных (исходному или целевому), просматривает список классификаторов с приоритетами для определения схемы ваших данных, а затем создает таблицы метаданных в каталоге данных AWS Glue.

https://docs.aws.amazon.com/glue/latest/dg/components-key-concepts.html

Таблицы, созданные в Athena, собирают все данные по пути корзины, который вы указываете в шаблоне включения:

Важный

Афина считывает все данные, хранящиеся под "s3://bucketname/prefix/". Если у вас есть данные, которые Афина не должна читать, не храните эти данные с тем же префиксом Amazon S3, что и данные, которые Афина должна читать. Если вы используете разделение на разделы, чтобы обеспечить сканирование Athena данных внутри раздела, ваш фильтр WHERE должен включать раздел. Для получения дополнительной информации см. Расположение таблицы и разделы.

https://docs.aws.amazon.com/athena/latest/ug/tables-location-format.html

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

Вот вам простой ответ:

Афина не будет уважать шаблоны исключения клея. Эти шаблоны предназначены только для исключения ненужных файлов, которые вы не хотите сканировать при сканировании и использовать в Glue ETL. Поэтому, если вы хотите исключить эти файлы.metadata, вам необходимо написать автоматический сценарий для их удаления.

Попробуйте использовать **/*.csv.metadata или же **/*.metadata шаблон исключения

Другие вопросы по тегам