В настоящее время я отправляю записи журнала через поток доставки пожарных шлангов, который форматирует записи для паркета, используя таблицу, определенную в моем каталоге клея для схемы файла паркета. Давайте назовем эту таблицу log_table
. Отформатированные записи затем сохраняются в корзине S3.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь сканировать данные, найденные в корзинах s3, вместо обновления log_table
, он создает новыйтаблица с именем log_table_<some random string>
. Как заставить сканер обновить эту конкретную таблицу?
Во многих публикациях здесь рассказывается о настройке определенных свойств для сканера, связанных с объединением связанных схем, использовании пользовательских классификаторов и даже установке свойства таблицы склейки на UPDATED_BY_CRAWLER
но ни один из них, похоже, не работает.
В настоящее время поток доставки, таблица склеивания, сканер клея создаются с помощью Cloudformation.
Преобразование формата потока доставки настраивается следующим образом.
DataFormatConversionConfiguration:
Enabled: True
InputFormatConfiguration:
Deserializer:
OpenXJsonSerDe:
CaseInsensitive: True
OutputFormatConfiguration:
Serializer:
ParquetSerDe:
Compression: SNAPPY
SchemaConfiguration:
CatalogId: !Ref AWS::AccountId
RoleARN: !GetAtt DeliveryStreamRole.Arn
DatabaseName: !Ref GlueDatabase
TableName: !Ref TransactionLogsTable
Region: !Ref AWS::Region
VersionId: LATEST
Искатель создается с настройками по умолчанию (имя, роль, цель s3 и т. Д.). Аналогичнодля таблицы склеивания.
Я хочу, чтобы сканер обновил log_table
, который я использовал, чтобы сообщить моему потоку доставки, какой должна быть схема файла паркета.