-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: finalizando documentação sobre recursos provisionados e inician…
…do doc sobre etapas do processo
- Loading branch information
1 parent
01283c4
commit d8ef717
Showing
8 changed files
with
367 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Arquitetura de Solução | ||
|
||
Agora que temos uma noção sobre o que é o módulo `pynvest-tools` e os principais benefícios atrelados ao seu uso, vamos iniciar um aprofundamento técnico sobre o que está por trás da solução. | ||
|
||
Iniciando pela arquitetura, a imagem abaixo traz uma visão detalhada da solução contendo toda a dinâmica de serviços e integrações disponibilizadas para o usuário. | ||
|
||
<small> | ||
:octicons-light-bulb-16: | ||
**Dica:** clique na imagem para uma melhor visualização dos elementos. | ||
</small> | ||
|
||
![Arquitetura de Solução](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/drawio/pynvest-tool-diagram-print.png?raw=true) | ||
|
||
Em essência, o diagrama acima contempla todos os serviços AWS entregues pelo módulo Terraform e, além disso, traz a visão de todas as integrações entre os recursos. | ||
|
||
Toda a dinâmica de implantação do módulo é baseada em **6 macro etapas** que, em linhas gerais, contemplam toda a lógica de extração, preparação e atualização agendada dos dados financeiros disponibilizados ao usuário em seu próprio ambiente AWS. | ||
|
||
Ao longo desta seção de detalhamento, será possível observar todas as nuances e particularidades dos [recursos provisionados](./recursos.md) e das [etapas de processamento da solução](./processo.md). | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Etapas do Processamento | ||
|
||
A solução `pynvest-tools` abrange a implantação de uma série de recursos AWS que, juntos, comportam uma série de atividades previamente definidas e designadas para um propósito único: disponibilizar dados confiáveis e recorrentemente atualizados contendo indicadores financeiros de ações e fundos imobiliários. | ||
|
||
Para que isso seja possível, um total de **6 macro etapas** foram desenhadas de modo pontual. Nesta seção, o usuário poderá encontrar detalhes sobre cada uma das etapas de processamento dos recursos do módulo. | ||
|
||
??? tip "Lembrete: arquitetura da solução" | ||
Expanda esse bloco sempre que precisar relembrar o desenho de arquitetura de solução. | ||
|
||
<small> | ||
:octicons-light-bulb-16: | ||
**Dica:** clique na imagem para uma melhor visualização dos elementos. | ||
</small> | ||
|
||
![Arquitetura de Solução](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/drawio/pynvest-tool-diagram-print.png?raw=true) | ||
|
||
<small> | ||
:octicons-light-bulb-16: | ||
**Dica:** visando facilitar o detalhamento das etapas, cada ação a ser exemplificada está identificada, nas imagens de arquitetura disponibilizadas, com índices que se referem à macro etapa. Por exemplo, a etapa 1 definida como "eliminação de partições do dia" contemplam os passos 1.1, 1.2 e 1.3. Cada um desses passos será detalhado para o usuário. | ||
</small> | ||
|
||
## Etapa 1: Eliminação das Partições do Dia | ||
|
||
![Desenho de arquitetura contendo apenas a primeira etapa do processamento](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/imgs/arquitetura-etapas/etapa-01.png?raw=true) | ||
|
||
O primeiro passo | ||
|
||
## Etapa 2: Envio de Códigos de Ativos para Fila SQS | ||
|
||
![Desenho de arquitetura contendo apenas a segunda etapa do processamento](https://github.com/ThiagoPanini/pynvest-tools/blob/v0.2.x/docs/imgs/arquitetura-etapas/etapa-02.png?raw=true) | ||
|
||
|
||
## Etapa 3: Processamento de Tabelas SoR | ||
|
||
|
||
## Etapa 4: Processamento de Tabelas SoT | ||
|
||
|
||
## Etapa 5: Processamento de Tabela Spec | ||
|
||
|
||
## Etapa 6: Deduplicação de Registros |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Primeiros Passos | ||
|
||
Agora que sabemos exatamente o que é o módulo pynvest-tools, vamos detalhar como utilizar e extrair o melhor de suas funcionalidades. | ||
|
||
## Pré Requisitos | ||
|
||
- ☁️ [Conta AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account/) disponível para uso | ||
- 🔑 [Acesso programático](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) à conta com chaves de acesso | ||
- ⛏ [Terraform](https://www.terraform.io/) instalado | ||
- 🪣 [Buckets S3](https://aws.amazon.com/s3/) existentes na conta AWS para armazenamento de dados brutos (SoR), preparados (SoT) e especializados (Spec) | ||
|
||
## Chamando o Módulo Terraform | ||
|
||
Uma vez cumprido os pré requisitos, o usuário poderá obter todos os insumos já detalhados através de uma [chamada de módulo Terraform](https://developer.hashicorp.com/terraform/language/modules/syntax) no seguinte formato: | ||
|
||
```python | ||
# Chamada de módulo pynvest-tools em arquivo main.tf | ||
module "pynvest-tools" { | ||
source = "git::https://github.com/ThiagoPanini/pynvest-tools?ref=main" | ||
|
||
bucket_names_map = { | ||
"sor" = "some-bucket-name-to-store-sor-data", | ||
"sot" = "some-bucket-name-to-store-sot-data", | ||
"spec" = "some-bucket-name-to-store-spec-data" | ||
} | ||
} | ||
``` | ||
|
||
???+ question "Quais variáveis o usuário necessita passar para o módulo?" | ||
Como esperado, um módulo Terraform pode ser configurado através de variáveis que guiam regras específicas dentro da lógica embutida no módulo. | ||
|
||
No `pynvest-tools`, muitas das variáveis já tão fornecidas com um valor padrão, não exigindo qualquer tipo de ação por parte do usuário, exceto se o mesmo deseja configurar comportamentos específicos dos recursos provisionados. | ||
|
||
A exceção fica por conta da variável `bucket_names_map` que, essencialmente, tem a função de configurar toda a lógica de armazenamento dos dados obtidos nas aplicações criadas pelo módulo. Esta é a **única variável obrigatória** exigida pelo módulo e seu preenchimento deve ser feito através de um dicionário (map type, no Terraform) contendo as chaves "sor", "sot" e "spec", cujos valores devem representar nomes válidos para buckets S3 responsáveis por armazenar dados nessas três camadas. | ||
|
||
Após configurar a chamada ao módulo, basta executar os seguintes comandos Terraform para implantar a infraestrutura relacionada: | ||
|
||
- `terraform init` para inicialização do módulo | ||
- `terraform plan` para validar o plano de implantação | ||
- `terraform apply` para aplicar a implantação na conta AWS alvo | ||
|
||
Pronto! Você agora terá em sua conta AWS todo um conjunto de serviços para extrair, preparar e armazenar diariamente indicadores de Ações e Fundos Imobiliários da B3! Para saber mais sobre os recursos disponibilizados, não deixe de chegar a página contendo os [detalhes da solução]() |
Oops, something went wrong.