Você está na página 1de 2

1 - AWS Glue

- Metadados: É possível definir metadados como dados que explicam outros dados.

-Criando banco de dados(schema) AWS Glue:


- Dentro do AWS Glue temos a opção de criar um novo "BANCO DE DADOS", esse banco de
dados podemos entender que é equivalente a um schema de banco de dado relacional,
para criar esse banco de dados é preciso informar a localização do dados no S3:
Acessar painel AWS Glue > Banco de dados > "nome" do banco é opcional, mas
nesse caso data_lake_raw__app, os dois "__" são uma convenção para dizer que esse
banco de dados do glue tem acesso a pasta 'app' dentro do data lake >
"Localização", devemos definir a localização de onde está os arquivos no s3, por
exemplo: "s3://amigo-data-lake-raw/dms/app/" > Como boa prática adicionar uma
descrição, exemplo: "Dados vindos do app"3

- Criando tabela(Meta dados) no AWS Glue(Catalogo):


- Criar uma tabela no AWS Glue significa a mesma coisa de criamos os metadados de
um determinado arquivo, É possivel cria a tabela(Meta dados) de duas formas:
- Painel AWS Glue > Databases > entre no data base > add table, essa é a
forma manual e mais demorada.
ou
Forma que vou criar no exemplo:
- Crawlers > Create Crawler > Escolher um nome, da mesma forma do banco de
dados no glue, devemos referenciar daonde vem os dados como boa prática, nesse
exemplo "crawler_app", > Next > Escolher se quero Crawlear todas as pastas ou
apenas novas pastas, nesse caso todas as pastas sempre então "Crawl all folders" >
Next > Escolher o banco de dados, nesse caso "S3". > Conexão só se define se meu
dados estão em outro lugar, por exemplo outra conta AWS. > Em "Rastrear dados no",
nesse caso selecionar "Caminho especificado na minha conta". > Em "Incluir
caminho", deve-se se defirnir o caminho no S3 que está a tabela e seus dados nos
arquivos parquet, nesse caso "s3://amigo-data-lake-raw/dms/app/public/customers". >
"Sample size (optional)" é onde definimos a quantidade de arquivos que vamos
Crawlear por pasta, nesse caso 3, não precisa ser muito pois os arquivos seguem
todos o mesmo padrão de schema e não vão mudar. > Next > "Adicione outro
datastore", nesse exemplo temos a tabela "customers" com todos os arquivos parquet
lá dentro que guardam seus dados, agora, imagine que temos outra tabela dentro do
mesmo schema que a "customers", por exemplo uma
"s3://amigo-data-lake-raw/dms/app/public/orders", nesse caso podemos adicionar
"outro datastore" e fazer a mesma configuração anterior com o "Incluir caminho" de
orders, nesse exemplo vamos fazer apenas com customers, então marcar "no" e depois
Next > Cria ou selecionar função IAM > Next > Em "Frequência" definimos como
queremos agendar a execução do crawler, nesse caso "Executar sob demanda" que
ficara execução de forma manual sem agendamento. > Next > Em "Datababe", é onde
vamos selecionar o database(schema) do Glue que queremos salvar os dados. > Pode se
adicionar algum prefixo a tabela, isso será um nome no começo da tabela. > Em
"Agrupar comportamento de dados do S3 (opcional)", vamos selecionar como queremos
agrupar os dados, se marcamos a opção cheeck em "Crie um único esquema para cada
caminho do S3", será criaddo um unico schema/tabela para todos os caminho dentro do
crawler, nesse caso vamos deixar desmarcado essa opção. > "Table level" vamso
especificar o nivel que a tabela está disponivel dentro do caminho, mas para esse
exemplo não vamos utilzar. > agora em "Como o AWS Glue deve lidar com a exclusão de
objetos no datastore?", vamos definir com o crawler vai atualizar a tabela, por
exemplo, se aconteceu uma mudança no schema, o que o crawler vai fazer?, Então
nesse exemplo vamos marcar "Atualizar a definição da tabela no catálogo de dados.",
sem tiver um deleção de coluna ele vai atualizar, se tiver um adição de coluna vai
atualizar. > MUITO IMPORTANTE MARCAR "Atualizar todas as partições novas e
existentes com metadados da tabela.", imagine uma mudança no dia de hoje o schema
mudou, então precisasse atualizar as partições anteriores dos metadados. Essa opção
vai forçar o crawler a atualizar todas as partições com o novo schema. Isso evita
problema na hora de ler os dados com presto, spark ou athena etc. > Caso os dados
forem deletados da camada de armazenamento, oq devemos fazer se define na opção
"Como o AWS Glue deve lidar com a exclusão de objetos no datastore?", nesse caso
"Marcar a tabela como suspensa no catálogo de dados.". > Next > Verifica opções >
Concluir.

-Crawler criado.
No painel da AWS Glue > Crawler, podemos ver que não tem nenhum agendamento de
execução, pois criamos o crawler sob demanda, estão precisamos executar
manualmente, para isso selecionar o crawler > Executar crawler. Esse crawler vai
ler os arquivos do tipo parquet.

Agora no painel AWS Glue > Seleciona database > podemos verificar uma tabela criada
> essa tabela foi criada pelo crawler e possui todos os metadados da tabela do S3.
Pode-se verificar que os metadados foram reconhecidos:
- Nome da tabela
- Location que é a localuzação no S3
- Database da Glue
- Classification que o tipo de arquivo parquet nesse caso
- Input format e Output format, são o formato de entrada e saida de
dados
- Em "Serde serialization lib" foi definido a biblioteca de
serialização que deve ser usada para ler os arquivos parquet, spark, hive, athena
vão usar.

Você também pode gostar