Falha na conversão de formato de registro para Apache Parquet - Amazon Kinesis Data Firehose

Falha na conversão de formato de registro para Apache Parquet

Isso acontecerá se você pegar dados do DynamoDB que incluem o tipo Set, fizer streaming deles por meio do Lambda para um fluxo de entrega e usar um AWS Glue Data Catalog para converter o formato dos registros em Apache Parquet.

Quando o crawler do AWS Glue indexa os tipos de dados do conjunto do DynamoDB (StringSet, NumberSet e BinarySet), ele os armazena no catálogo de dados como SET<STRING>, SET<BIGINT> e SET<BINARY>, respectivamente. Porém, para que o Kinesis Data Firehose converta os registros de dados para o formato Apache Parquet, ele requer os tipos de dados do Apache Hive. Como os tipos de conjunto não são tipos de dados válidos do Apache Hive, há falha na conversão. Para que a conversão funcione, atualize o catálogo de dados com os tipos de dados do Apache Hive. É possível fazer isso alterando set para array no catálogo de dados.

Como alterar um ou mais tipos de dados de set para array em um catálogo de dados do AWS Glue
  1. Faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  2. No painel esquerdo, no cabeçalho Data catalog (Catálogo de dados), escolha Tables (Tabelas).

  3. Na lista de tabelas, escolha o nome da tabela na qual você precisa modificar um ou mais tipos de dados. Você será redirecionado para a página de detalhes da tabela

  4. Escolha o botão Editar esquema no canto superior direito da página de detalhes.

  5. Na coluna Data type (Tipo de dados), escolha o primeiro tipo de dados set.

  6. Na lista suspensa Column type (Tipo de coluna), altere o tipo de set para array.

  7. No campo ArraySchema insira array<string>, array<int> ou array<binary>, dependendo do tipo apropriado de dados para seu cenário.

  8. Escolha Atualizar.

  9. Repita as etapas anteriores para converter outros tipos set em tipos array.

  10. Escolha Save (Salvar).