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