![Page 1: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/1.jpg)
GOLANG EM UM GRANDE PRODUTO
GOLANG , GO BIG
Diego Bernardes Gaulke
![Page 2: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/2.jpg)
DIEGO GAULKEENGENHEIRO DE SOFTWARE
https://github.com/diegogaulke
https://www.linkedin.com/in/diegobernardesgaulke/
![Page 3: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/3.jpg)
OS DADOS...
![Page 4: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/4.jpg)
BRASILEIROS ENDIVIDADOS
![Page 5: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/5.jpg)
BRASILEIROS ENDIVIDADOS
50%
![Page 6: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/6.jpg)
POPULAÇÃO ECONOMICAMENTE ATIVA (PEA)
120 Milhões de brasileiros
![Page 7: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/7.jpg)
INADIMPLENTES
60 milhões de Brasileiros50% da PEA
![Page 8: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/8.jpg)
QUANTAS DÍVIDAS EXISTEM NO BRASIL?
NA BASE DA MAIOR EMPRESA DE
RECUPERAÇÃO DE CRÉDITO?
![Page 9: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/9.jpg)
QUANTAS DÍVIDAS EXISTEM NO BRASIL?
NA BASE DA MAIOR EMPRESA DE
RECUPERAÇÃO DE CRÉDITO?
350 milhões de dívidas
![Page 10: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/10.jpg)
O PROBLEMA...
Aumento de acessos no siteDisponibilizar informações em tempo realConcorrência computacional com grandes parceirosQuedas constantes (throttling mainframe)
![Page 11: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/11.jpg)
E TEM MAIS...
Custo de mainframeUm novo produto entrando no arCampanhas de mídia online e offline já agendadasPouco tempo para resolução
![Page 12: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/12.jpg)
COMO RESOLVER?
Buscar uma fonte de dados alternativaNão concorrer com outras áreas ou parceirosManter uma base consistente
![Page 13: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/13.jpg)
DESAFIOS
6 tipos de dividasAtualização D-1Regras de negócio na carga dos dados
![Page 14: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/14.jpg)
MAIS DESAFIOS...
Grande quantidade de dados sensíveisFalta de documentação e normalização dos dados disponíveisArmazenamento de dados sensíveis na nuvem (compliance)
![Page 15: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/15.jpg)
PRIMEIRA "SOLUÇÃO" ...
Golang para ETLDynamoDBIndice CPF criptografadoGoroutines controladas (channels)
![Page 16: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/16.jpg)
PROBLEMAS
Goroutines controladas (channels)DynamoDB
![Page 17: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/17.jpg)
DYNAMODB
Não é feito para escalar de maneira rápidaDeixar ele "escalado" tem um custo muito altoPreso a uma única cloudDemora na carga dos dados (mais de 10 horas para 50 milhões de registros)
![Page 18: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/18.jpg)
MESMO ASSIM...
A solução importou 3 tipos de dívidasAparentemente estava rodando sem problemasTrazia rapidamente os registros de dívidas pelo CPF
![Page 19: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/19.jpg)
MAS...
Como conferir a consistência do que foi importado?Como contar a quantidade de dívidas importadas por cada tipo?Como aumentar a performance da carga?Como diminuir a complexidade das rotinas no Go?
![Page 20: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/20.jpg)
OUTROS PROBLEMAS...
Para um CPF com 5 dívidas apareciam apenas 3DynamoDB fazendo throttling e API da aws não dava erro
![Page 21: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/21.jpg)
"VOCÊS DEVEM ESTAR
FAZENDO ERRADO"
![Page 22: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/22.jpg)
"CLANDESTINO"
Diminuir a complexidade do código GoReduzir o custo de cloudAumentar a velocidade da carga dos dadosMonitorar e aferir a consistência da base
![Page 23: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/23.jpg)
SOLUÇÃO "1"
LogstashElastic Search
![Page 24: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/24.jpg)
DESCARTE SOLUÇÃO "1"
Go como "plugin" para o LogstashElastic SearchUma camada a mais de controle
![Page 25: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/25.jpg)
"SOLUÇÃO 2"
(ESCOLHIDA)
Elastic SearchGolangBiblioteca ElasticSearch para Go, Olivere
![Page 26: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/26.jpg)
MODELAGEMINDEXAÇÃO
Índice por tipo de dívida e pela data da cargaPossibilidade em caso de falha de refazer a carga
![Page 27: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/27.jpg)
CONCLUSÃO
Redução de custoBaixa complexidade de códigoPossibilidade de aferição rápida dos dadosConsistência dos dados importados
![Page 28: =1 8 ; = # =1 8 7 W7 J 8 GJ= WS= · Preso a uma única cloud Demora na carga dos dados (mais de 10 horas para 50 milhões de registros) 7 N7=; NN#7 ... Golang Biblioteca ElasticSearch](https://reader033.vdocuments.com.br/reader033/viewer/2022053023/60536da441aaab0f453df69b/html5/thumbnails/28.jpg)
AGRADECIMENTOS