ETL que encontra os trending topics do Twitter em cinco países (Inglaterra, Brasil, Alemanha, Canadá, EUA e Suécia), coleta tweets (dez por padrão) relacionados a cada tópico, realiza transformações para capturar os principais dados de cada tweet, salva os dados em formato json e os converte para parquet. Após isso, os arquivos (json e parquet) são enviados para um bucket no Amazon S3.
Confira os gráficos do Airflow (Grapth View e Tree View) que representam o pipeline:
Com os dados salvos, você pode conferir os arquivos json e parquet em seu bucket.
Os arquivos parquet são salvos na estrutura TweetsData-COUNTRY-yyyy-mm-dd/file.parquet
- Uma conta configurada no twitter para desenvolvedores
- Adicione suas credenciais do Tweepy no arquivo de configuração (DAG/ETL_scripts/config.py). As credenciais são fornecidas após a criação da conta (passo acima): consumer_key, consumer_secret, access_token e access_token_secret
- Instale o Docker e docker-compose
- Crie uma conta na AWS se ainda não possui (pode ser free tier)
- Instale o aws cli
- Crie e configure o seu Bucket S3
- Modifique o bucket_name no arquivo de configuração (DAG/ETL_scripts/config.py) para o seu (criado no passo acima)
Após isso, execute o seguinte comando para criar o arquivo de configuração das suas credenciais da AWS, que serão salvas no caminho ~/.aws e posteriormente usadas no container (ver volumes em docker-compose.yml):
$ aws configure
Finalmente, use os seguintes comandos:
$ git clone https://github.com/gustschaefer/Twitter-Batch-ETL
$ cd Twitter-Batch-ETL/
$ docker-compose up -d
Após o proceso terminar, acesse http://localhost:8080/ para entrar na interface gráfica do Airflow.
O comando docker-compose up -d cria os containers necessários para o projeto, com seus volumes e variávies. Se desejar instalar mais algum pacote, adicione-o no arquivo requirements.txt e utilize o seguinte comando para reconstruir seus containers:
$ docker-compose up --build