Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[dados] br_ans_beneficiario.informacao_consolidada #1582

Closed
wants to merge 35 commits into from

Conversation

guissalustiano
Copy link
Contributor

@guissalustiano guissalustiano commented Mar 2, 2023

resolves #1078

Eu estou abrindo esse PR sem ter carregado todos os dados no bigquery pois não há grande variações no formato dos dados e por ser uma tabela gigante se mudar alguma coisa de formato vai ser trabalho rodar de novo.

Eu to armazenando e subindo em parquet dado a quantidade de dados (está 384GB em csv, apenas 28GB em parquet),
Eu particionei apenas por ano e mes e está originando parquets de 250M em média, com umas 13 milhões de linha cada, nesse caso seria melhor particionar, correto? Ou a alguma forma de só particionar no BQ?

Além disso por usar parquet não vejo sentido em usar dicionario dado seu formato colunar, faz sentido certo?

Além disso há algum padrão sobre sexo? A tabela trás 'M' e 'F' nos dados que explorei, é melhor deixar assim ou extender para 'Masculino' e 'Feminino', ou ainda 'Male' e 'Female'?

Eu tb não tenho ctz se eu dei todas as permissões necessárias pra vcs acessarem a minha tabela de stag.

É minha primeira contribuição por aqui então estou um pouco perdido, qqr coisa podem me chamar no discord: salustiano#0972

column_name:
measurement_unit:
has_sensitive_data: no
observations: "'Individual ou familiar', 'Coletivo empresarial', 'Coletivo por adesão', 'Individual ou Familiar + Coletivo Empresarial', 'Individual ou Familiar + Coletivo por Adesão', 'Coletivo Empresarial + Coletivo por Adesão' or 'Individual + Coletivo Empresarial + Coletivo por Adesão'"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Precisaremos fazer um dicionário para essas e demais colunas com mais de uma variável, @guissalustiano. Eu tinha começado a fazer o dicionário, eu irei procurar para você, tudo bem? Até amanhã eu lhe retorno com essa resposta.

Copy link
Contributor

@tricktx tricktx Mar 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Da uma olhada nesse dicionário, amigo.

https://docs.google.com/spreadsheets/d/1MhCtA-qX1dwb2DOk048jRfhxE-TeceY49I4CDXS4-kk/edit#gid=0
Deixei como editor, caso você queira mexer diretamente no dicionário.

Se quiser uma ajuda, manda um alô lá no discord: trick#9887

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mas qual a vantagem de ter um dicionario nessas colunas? Já que o dado sempre vai ser lido junto acredito que já faz sentido guardar desnormalizado

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fala, Guilherme. Tudo bem?

Aqui na BD a gente sempre preza pela compatibilização e padronização. A própria ANS fornece um dicionário (https://dadosabertos.ans.gov.br/FTP/PDA/informacoes_consolidadas_de_beneficiarios/dicionario/) para algumas variáveis. Além disso, prezando também por uma otimização de armazenamento, é melhor fornecer um dicionário e um dataset mais enxuto (com menos observações textuais), sem typos, padronizado e compatibilizado entre anos. Eu posso te ajudar, se quiser. Fique a vontade também para aparecer na nossa reunião de dados toda quarta às 17hrs lá no nosso canal do discord.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opa! Obrigado pela resposta!
Mesmo fornecendo o dicionario os dados originais não são "label encoding", eles estão sem typos, padronizados e compatibilizados entre os anos mas nas suas próprias colunas.
Eu estou subindo os dados em parquet, logo não terá nenhuma otimização de armazenamento, pelo contrario, apenas gastaria mais processamento para fazer o join no bigquery.
Se mesmo assim preferirem por criar o dicionario eu consigo gerar aqui!

# - sem acentos
# - sempre no singular
# - não repita nomes de grupos (ex. educacao, saude, meio ambiente, economia, etc.)
tags:
Copy link
Contributor

@tricktx tricktx Mar 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Colocar as tags

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideias de quais tags coloca?

@tricktx
Copy link
Contributor

tricktx commented Mar 6, 2023

Em relação a sua tabela no BQ, eu estou recebendo a seguinte mensagem quando tento acessa-la: "Access Denied: BigQuery BigQuery: Permission denied while globbing file pattern. [email protected] does not have storage.objects.list access to the Google Cloud Storage bucket. Permission 'storage.objects.list' denied on resource (or it may not exist). Please make sure gs://basedosdados_stag_guissalustiano/staging/br_ans_beneficiario/informacao_consolidada/* is accessible via appropriate IAM roles, e.g. Storage Object Viewer or Storage Object Creator." Poderia liberar para que eu possa ter acesso, Guilherme?

Agradeço desde já.

@guissalustiano
Copy link
Contributor Author

@tricktx te dei acesso como database owner e bucket owner, não consegui configurar corretamente para acesso externo
Fique a vontade pra mexer nas permissões

@guissalustiano
Copy link
Contributor Author

Alguma atualização @tricktx? Queria apagar esses CSVs da minha máquina

Copy link
Contributor

@laura-l-amaral laura-l-amaral left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oi Gui! Tá execelente o trabalho

Precisamos ainda ajustar o table_config e o publish.sql pra acompanhar os arquivos que vc subiu o Google Cloud

Abraços

SAFE_CAST(abrangencia_beneficiario AS STRING) abrangencia_beneficiario,
SAFE_CAST(cobertura_assistencia_beneficiario AS STRING) cobertura_assistencia_beneficiario,
SAFE_CAST(tipo_vinculo AS STRING) tipo_vinculo,
SAFE_CAST(qtd_beneficiario_ativo AS INT64) qtd_beneficiario_ativo,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

arrumar aqui no publish as variáveis tbm

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opa, corrigido!

observations: "'Titular', 'Depedente' or 'Nao Informado'"
is_in_staging: true
is_partition: false
- name: qtd_beneficiario_ativo
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

e aqui no table_config

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrigido!

@guissalustiano
Copy link
Contributor Author

Essa base ficou fechada para o BDplus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[dados] br_ans_beneficiario.informacao_consolidada
3 participants