DEV Community

Andre Yai
Andre Yai

Posted on

Conectando Athena com Amazon S3

Atualmente os cientistas de dados lidam com volumes cada vez maiores de dados, a integração entre o Amazon Athena e o Amazon S3 oferece uma solução poderosa e eficiente. Com a capacidade de executar consultas SQL em gigabytes ou até petabytes de dados armazenados no S3, os cientistas de dados podem extrair insights valiosos de maneira rápida e escalável.

O Amazon S3 serve como um repositório seguro e durável para os dados brutos, enquanto o Amazon Athena fornece uma camada de consulta simplificada, permitindo que os cientistas de dados executem consultas ad-hoc e análises complexas sem a necessidade de configurar ou gerenciar infraestrutura. Isso libera tempo e recursos para se concentrar na análise e na descoberta de padrões nos dados.

Com a capacidade de lidar com conjuntos de dados de qualquer tamanho, o Amazon Athena é uma ferramenta essencial no arsenal de qualquer cientista de dados em busca de agilidade e flexibilidade. A simplicidade de escrever consultas SQL padrão no console do Athena facilita a exploração e a análise de dados complexos, permitindo descobertas significativas.

Para cientistas de dados que buscam uma solução escalável, ágil e econômica para suas necessidades de análise de dados, a integração entre o Amazon Athena e o Amazon S3 oferece um caminho claro para desbloquear o potencial dos dados armazenados na nuvem.

Uma vez tendo acesso a conta da AWS e aos serviços mencionados acima. As etapas para este processo geralmente envolve:
1 - Inserir os dados para o bucket do S3.
2 - Verificar os tipos dos dados dos dados no S3.
3 - Criar o comando SQL para criar a tabela no Athena que referenciará os dados do S3.

Abaixo vamos supor que você possui a tarefa de analisar os dados de uma cafeteria para criar um modelo de previsão de demanda de um determinado item.

1 - Para isto pegamos os dados da fonte. Neste caso vou utilizar o dado do kaggle.
Kaggle Coffee Shop Sales Analysis
2 - Irei inserir estes dados no bucket do S3.
3 - Analisamos os tipos dos dados. Uma forma de realizar isto é usando o script abaixo.

import pandas as pd
df = pd.read_csv("./Project.csv")
# obtendo o data shape
print(df.dtypes)
# salvando no S3 e removendo o header e o index do dado
df.to_csv("s3://ay-ds-projects/projects/coffee_shop/Project.csv",headers=None, index=None)
Enter fullscreen mode Exit fullscreen mode

Atraves dele obtemos o seguinte resultado.
Tipo dos dados

4 - Criaremos uma tabela no Athena com referencia ao dado no S3. Para isto podemos utilizarmos os seguintes datatypes https://docs.aws.amazon.com/athena/latest/ug/data-types.html

CREATE EXTERNAL TABLE IF NOT EXISTS `ds_project`.`coffee_shop` (
  `transaction_id` int,
  `transaction_date` char(30),
  `transaction_time` char(30),
  `store_id` int,
  `store_location` char(100),
  `product_id` int,
  `transaction_qty` int,
  `unit_price` float,
  `Total_Bill` float,
  `product_category` char(100),
  `product_type` char(100),
  `product_detail` char(100),
  `Size` char(40),
  `Month_Name` char(30),
  `Day_Name` char(30),
  `Hour` int,
  `Month` int,
  `Day_of_Week` int
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ('field.delim' = ',')
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://ay-ds-projects/projects/coffee_shop/'
TBLPROPERTIES ('classification' = 'csv');
Enter fullscreen mode Exit fullscreen mode

Em seguida pode realizar as operações SQL no Athena para obter informações sobre os dados.

Billboard image

The fastest way to detect downtimes

Join Vercel, CrowdStrike, and thousands of other teams that trust Checkly to streamline monitoring.

Get started now

Top comments (0)

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay