Conectando Athena com Amazon S3
Andre Yai
Posted on March 30, 2024
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)
Atraves dele obtemos o seguinte resultado.
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');
Em seguida pode realizar as operações SQL no Athena para obter informações sobre os dados.
Posted on March 30, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.