Home / BIG DATA / Avro

Avro

Avro

O Avro é um sistema de serialização de dados de software livre que ajuda na troca de dados entre sistemas, linguagens de programação e estruturas de processamento. O Avro ajuda a definir um formato binário para seus dados, bem como mapeá-lo para a linguagem de programação de sua escolha.

Um dos principais benefícios de se utilizar o Avro é a validação dos dados antes de serem inseridos no destino e a “auto documentação” utilizando schemas. O schema possui informações de quais dados e que tipo de dados se espera, além de um espaço para documentar oque aquilo significa, utilizando a tag “doc”.

Neste post, utilizaremos tudo o que foi aprendido no post Drops: nested json e pandas para aplicarmos no Avro.

O código abaixo executará o seguinte:

  1. Instala os pacotes necessários para a aplicação (estou usando Jupyter Notebook)
  2. – Busca as informações de um arquivo json de uma URL com a lista de todos as temporadas, episódios e título do episódios da série Game Of Thrones
  3. Cria uma string com o Schema (geralmente o schema é feito em um arquivo separado com extensão *.avsc, mas para ficar mais fácil a visualização eu passei em uma string
  4.  Import dos pacotes são feitos; a variável schema é passada para o Avro; é criado o arquivo got_malum.avro passando como parametro a variável schemaParse aonde ela valida se os dados estão de acordo com o schema; percorremos a variável data e escrevemos em got_malum.avro

Com isto teremos um arquivo serializado, desta maneira:

O Avro serializa os dados de forma compacta reduzindo tamanho dos dados

5 – Nós lemos o arquivo

Faça o downloads dos arquivos:

https://github.com/marcelpinheiro/malum/blob/master/avro.py
https://github.com/marcelpinheiro/malum/blob/master/avro.ipynb

Check Also

Criando o requirements.txt de forma automática

Uma boa prática em todo projeto é criar o arquivo “requirements.txt”. Nele consta todas as …

Leave a Reply

Your email address will not be published. Required fields are marked *

PortugueseEnglishFrenchSpanishGerman
Open chat
Precisa de ajuda?