Lineage do ETL — QlikSense PMPA
Gerado a partir de wiki/lineage.json (produzido por raw/build_lineage.py, parsing determinístico dos 67 scripts reais em raw/scripts/). Este arquivo é derivado — para regenerar os fatos, rode o script; para atualizar a narrativa abaixo depois de um novo pull, peça ao Claude para reconciliar com o JSON.
Achados relevantes
-
Não há duplicação dev/prod ativa. O T2_Consolidador.qvs referencia lib://QlikSenseDev/... várias vezes, mas todas as ocorrências estão comentadas (código morto de quando a app estava em desenvolvimento) — só o path de produção (lib://QlikSense/) está de fato ativo. Suspeita inicial descartada após parsing com remoção de comentários.
-
Camada não é confiável só pelo prefixo do nome. E_Simples_Nacional.qvs (prefixo E_, normalmente extract) na verdade grava em 4.DadosTransformados via Store_T/Store_T_Retry — a camada de cada app abaixo foi inferida pelo que ela lê/escreve, não pelo prefixo.
-
22 escritas de confiança baixa: chamadas Call Store_E/Store_T(...) onde o nome do QVD é montado por variável dentro de um loop (ex.: E_RFB.qvs, E_NFSE.qvs, E_RM.qvs), resolvida em tempo de execução — não perseguidas automaticamente (o Dicionario_PMPA.xlsx só cobre uma fração desses casos). Aparecem na tabela como QVD literal com $(...) — revisar à mão se precisar da cadeia exata dessas.
Streams isoladas / clusters fora do pipeline fiscal
-
Seleção_EPFI/ (12 apps): stream paralela que lê boletins/planilhas externas (.xlsx de SFMC, censo escolar, malhas geográficas) e QVDs próprios — conectada ao pipeline ETL/ apenas pontualmente (ex.: Malha_Geral_v1_0.qvs também lê T2_Empresas_NFSE.qvd), não é uma camada extract/transform/final da cadeia fiscal principal.
-
Extrator_Lineage.qvs / Lineage.qvs / Tranformador_Lineage.qvs: meta-tooling que faz lineage dentro do próprio Qlik (parseia logs de reload) — não fazem parte do pipeline fiscal, tratar como ferramentas de operação.
Cadeia por assunto
NFSE
| App |
Stream |
Camada |
Lê |
Gera |
| E_NFSE |
ETL |
indefinida |
— |
$(vQVD); $(vQVDGrava) |
| E_NFSE_Nacional |
ETL |
extract |
NfseNacional_{periodo}.qvd |
NfseNacional_{periodo}.qvd |
| E_NFSE_Nacional_DEV |
ETL |
extract |
NfseNacional_{periodo}.qvd |
NfseNacional_{periodo}.qvd |
| T1_Detalhado_NFSE |
ETL |
transform |
T1_Nfse_{periodo}.qvd; Item_Lista.qvd; NfseNacional_{periodo}{periodo}.qvd; T2_Empresas_NFSE.qvd |
NFSE_Detalhado_{periodo}.qvd |
| T2_Cadastro_Empresas_NFSE |
ETL |
transform |
SIG_Intimacao.qvd; SIG_Atendimento.qvd; T1_Empresas_Siat.qvd; T1_Empresas_Novo_??_Dados_Abertos_RFB.qvd ... |
T2_Empresas_Creative.qvd; T2_LinhaTempo.qvd; T2_SN_Vigente.qvd; T2_LinhaTempoSN_Ult5.qvd ... |
| T_NFSE |
ETL |
indefinida |
CNAE.qvd; CNAE_Divisao.qvd |
$(vQVDGrava) |
| Alerta_NFSE |
Everyone |
final |
NFSE_Detalhado_{periodo}{periodo}.qvd |
— |
| NFSE |
Everyone |
final |
T1_Nfse_Tomador_Aggr_{periodo}{periodo}.qvd; T2_Simples_Nacional.qvd; Tributacao_ISS.qvd; T2_SN_Vigente.qvd ... |
— |
| NFSE__nota_a_nota__-_Versão_Beta |
Everyone |
final |
T1_Nfse_{periodo}{periodo}.qvd |
— |
| PGDAS_x_NFSE |
Everyone |
final |
{periodo}Fat_Cruzamentos_PGDAS_NFSE_EMPRESA.qvd; {periodo}Fat_Cruzamentos_PGDAS_NFSE_FILIAL.qvd |
— |
| Análise_NFSe_X_PGDAS__desatualizado_ |
Seleção_EPFI |
final |
— |
— |
| PGDAS_x_NFSE__cópia_temporária_ |
Seleção_EPFI |
final |
{periodo}Fat_Cruzamentos_PGDAS_NFSE_EMPRESA.qvd; {periodo}Fat_Cruzamentos_PGDAS_NFSE_FILIAL.qvd |
— |
| Relatório_NFSe_Média |
Seleção_EPFI |
final |
T1_Nfse_{periodo}{periodo}.qvd |
— |
PGDAS
| App |
Stream |
Camada |
Lê |
Gera |
| Consiste_QVD_x_TXT_PGDAS |
ETL |
extract |
Inconsistencias_qvd_txt.qvd |
Inconsistencias_qvd_txt.qvd |
| E_PGDAS |
ETL |
indefinida |
Inconsistencias_qvd_txt.qvd |
$(vQvd) |
| Gera_Metadados_TXT_PGDAS |
ETL |
extract |
Inconsistencias_qvd_txt.qvd |
Metadados_Arquivos_{periodo}.qvd |
| T1_Detalhado_PGDAS |
ETL |
transform |
Dados_Apuracao_{periodo}??.qvd; DAS_{periodo}??.qvd; Perfil_DAS_{periodo}??.qvd; Estabelecimento_Filial_{periodo}??.qvd ... |
PGDAS_Detalhado_PA_{periodo}.qvd; PGDAS_UltimosValores_PA_{periodo}.qvd |
| T1_PGDAS |
ETL |
transform |
Dados_Apuracao_{periodo}.qvd; Estabelecimento_Filial_{periodo}.qvd; Salarios_{periodo}.qvd; Atividade_{periodo}.qvd ... |
T1_Estabelecimentos_PGDAS.qvd |
| T_Cruzamentos_PGDAS |
ETL |
indefinida |
T2_Empresas_NFSE.qvd; CodigoCidade.qvd; T2_LinhaTempo.qvd; T2_SN_Vigente.qvd ... |
'{periodo}{periodo}.qvd'; '{periodo}DAS_POA_PGDAS_{periodo}.qvd'; '{periodo}Dados_Apuracao_POA_PGDAS_{periodo}.qvd'; '{periodo}' ... |
| T_PGDAS |
ETL |
transform |
T2_Empresas_NFSE.qvd; Dados_Apuracao_PGDAS{periodo}??.qvd; Processo_Nao_Optante_PGDAS{periodo}??.qvd; Salarios_PGDAS{periodo}??.qvd ... |
Dados_Apuracao_{periodo}.qvd; Nao_Optante_{periodo}.qvd; Salarios_{periodo}.qvd; DAS_{periodo}.qvd ... |
| Alerta_PGDAS |
Everyone |
final |
PGDAS_Detalhado_PA_{periodo}.qvd; PGDAS_UltimosValores_PA_{periodo}{periodo}.qvd |
— |
| Explora_PGDAS |
Everyone |
final |
Dados_Apuracao_{periodo}.qvd; DAS_{periodo}.qvd; Nao_Optante_{periodo}.qvd; Perfil_DAS_{periodo}.qvd ... |
— |
| PGDAS_EPFI__BETA_ |
Seleção_EPFI |
final |
Fat_Cruzamentos_PGDAS_NFSE_FILIAL.qvd; Dim_Empresas.qvd; Dim_Atividade_SN.qvd |
— |
RFB
| App |
Stream |
Camada |
Lê |
Gera |
| E_RFB |
ETL |
extract |
RFB_Atu_Novo.qvd; RFB_Atu.qvd |
RFB_Atu_Novo.qvd; $(vQvd); RFB_Atu.qvd |
| T_RFB_DADOS_ABERTOS |
ETL |
transform |
CNAE.qvd; CNAE_Divisao.qvd; Correspondencia_CNAE_Servico.qvd; RFB_SIMPLES_001.qvd |
$(vQvd); RFB_SIMPLES.qvd |
Cartões
| App |
Stream |
Camada |
Lê |
Gera |
| E_Cartões |
ETL |
indefinida |
— |
Cartoes_LayoutD_$(Ano)$(Mes_Format).qvd; Cartoes_Layout0_$(Ano)$(Mes_Format).qvd |
| T1_Cartões |
ETL |
transform |
Cartoes_LayoutD_{periodo}{periodo}.qvd; Cartoes_Layout0_{periodo}{periodo}.qvd |
T1_Cartoes_{periodo}{periodo}.qvd |
| T2_Cartões |
ETL |
transform |
T1_Cartoes_{periodo}{periodo}.qvd; T2_Cartoes_{periodo}{periodo}.qvd; T2_Cartoes_Full.qvd |
T2_Cartoes_{periodo}{periodo}.qvd; T2_Cartoes_Full.qvd; T2_Cartoes_Controle_Envios.qvd; T2_Cartoes_Controle_Envios_Emp.qvd |
| Cartões |
Everyone |
final |
T2_Empresas_Novo.qvd; T2_Cartoes_Full.qvd; T2_Cartoes_Controle_Envios.qvd; T2_Cartoes_Controle_Envios_Emp.qvd ... |
— |
RM
| App |
Stream |
Camada |
Lê |
Gera |
| E_RM |
ETL |
indefinida |
— |
$(vQVD); $(vQVDGrava) |
| T_RM |
ETL |
indefinida |
— |
$(vQVD); $(vQVDGrava) |
Simples Nacional
| App |
Stream |
Camada |
Lê |
Gera |
| E_Simples_Nacional |
ETL |
transform |
SimplesMEI_Atu.qvd; PeriodoSN_Novo.qvd |
SimplesMEI_Atu.qvd; PeriodoSN_Novo.qvd; T_PeriodoSN_Novo.qvd |
| E_Simples_Nacional_TXT |
ETL |
final |
SimplesMEI_Atu.qvd; PeriodoSN_Novo.qvd |
— |
| T1_Simples_Nacional |
ETL |
transform |
T2_Empresas_NFSE.qvd; T_PeriodoSN_Novo.qvd; T1_Simples_Nacional.qvd |
T1_Simples_Nacional.qvd; T2_Simples_Nacional.qvd |
Arrecadação
| App |
Stream |
Camada |
Lê |
Gera |
| T1_Arrecadacao |
ETL |
transform |
T1_Inscricao_CNPJ.qvd |
T1_Pag_Arrecadacao_Alt_{periodo}{periodo}.qvd; T1_Pag_Arrecadacao_{periodo}{periodo}.qvd |
| Arrecadação |
Everyone |
final |
T1_Inscricao_CNPJ.qvd; T2_Empresas_Novo.qvd; T1_Pag_Arrecadacao_{periodo}{periodo}.qvd; T2_SN_Vigente.qvd ... |
— |
Empresas / Cadastro
| App |
Stream |
Camada |
Lê |
Gera |
| T2_Cadastro_Empresas |
ETL |
transform |
SIG_Intimacao.qvd; SIG_Atendimento.qvd; T1_Empresas_Siat.qvd; T1_Empresas_Novo_??_Dados_Abertos_RFB.qvd ... |
T2_Empresas_Creative.qvd; T2_Empresas_Novo.qvd; T2_LinhaTempo.qvd; T2_SN_Vigente.qvd ... |
| T2_Comportamento_Empresas |
ETL |
transform |
T1_Pag_Apropriado_{periodo}{periodo}.qvd; T1_Pag_Arrecadacao_??????.qvd |
T2_Comportamento_Empresa.qvd |
Geolocalização / Bairro
| App |
Stream |
Camada |
Lê |
Gera |
| T2_Geolocalização |
ETL |
transform |
T2_Geolocalizacao.qvd; T2_Empresas_Novo.qvd |
T2_Geolocalizacao.qvd; T2_Bairros_POA.qvd; T2_Pontos.qvd |
| T3_Bairro_Geo |
ETL |
transform |
T2_Pontos.qvd; T2_Empresas_Novo.qvd; T2_Bairros_POA.qvd |
T3_Bairros_Geo.qvd |
Consolidador / Cruzamentos
| App |
Stream |
Camada |
Lê |
Gera |
| T2_Consolidador |
ETL |
transform |
Fat_Cruzamentos_PGDAS_NFSE_FILIAL.qvd; Fat_Cruzamentos_PGDAS_NFSE_EMPRESA.qvd |
Consolidador_{periodo}.qvd |
| Consolidador_de_Divergências |
Everyone |
final |
Consolidador_{periodo}.qvd; T2_Empresas_NFSE.qvd; T2_LinhaTempo.qvd |
— |
| Cruzamentos |
Everyone |
final |
T1_Pag_Apropriado_{periodo}{periodo}.qvd; T1_Pag_Arrecadacao_??????.qvd; T2_Empresas_Novo.qvd; T1_Pag_Compensado.qvd ... |
— |
| App |
Stream |
Camada |
Lê |
Gera |
| Extrator_Lineage |
ETL |
indefinida |
— |
AppName_PRD5.QVD; {periodo}_LOGS_SCRIPT_SENSE.QVD; CONEXOES_Sense.qvd |
| Lineage |
ETL |
final |
{periodo}_LOGS_SCRIPT_SENSE.QVD; Dim_AppName.QVD; Dim_Conexao_Final.QVD |
— |
| Tranformador_Lineage |
ETL |
indefinida |
{periodo}_LOGS_SCRIPT_SENSE.QVD; CONEXOES_Sense.qvd; AppName_PRD{periodo}.QVD |
{periodo}_LOGS_SCRIPT_SENSE.QVD; Dim_Conexao_Final.QVD; Dim_AppName.QVD |
Outros
| App |
Stream |
Camada |
Lê |
Gera |
| T1_Apropriacao |
ETL |
transform |
T1_Inscricao_CNPJ.qvd |
T1_Pag_Apropriado_Alt_{periodo}{periodo}.qvd; T1_Pag_Apropriado_{periodo}{periodo}.qvd |
| T1_Cadastro_RM |
ETL |
extract |
Correspondencia_CNAE_Servico.qvd; CNAE.qvd; CNAE_Divisao.qvd; RFB_EMPRESAS_{periodo}.qvd ... |
T1_Empresas_Novo_{periodo}_Dados_Abertos_RFB.qvd; T1_Empresas_Novo_POA_Dados_Abertos_RFB.qvd; RFB_Atu_Novo.qvd; T1_Emails.qvd ... |
| T1_Inscricao_CNPJ |
ETL |
transform |
T1_Empresas_Siat.qvd |
T1_Inscricao_CNPJ.qvd |
| T1_Nfe |
ETL |
transform |
T1_Inscricao_CNPJ.qvd; T2_Empresas_Novo.qvd; Item_Lista.qvd; CodigoCidade.qvd ... |
T1_Nfse_{periodo}{periodo}.qvd; T1_Nfse_Tomador_Aggr_{periodo}{periodo}.qvd |
| T1_SobraCompensado |
ETL |
transform |
Pag_Sobra.qvd |
T1_Pag_Compensado.qvd; T1_Pag_Sobra.qvd |
| T2_Faixa_Pagamento |
ETL |
transform |
T1_Pag_Apropriado_{periodo}{periodo}.qvd; T1_Pag_Arrecadacao_??????.qvd; T2_Empresas_Novo.qvd |
T2_Faixa_Pagto_Contribuinte.qvd |
| Autorregularização |
Everyone |
final |
T1_Inscricao_CNPJ.qvd; T2_SN_Vigente.qvd; T2_LinhaTempoSN_Ult5.qvd; T2_Empresas_Novo.qvd ... |
— |
| Bom_Pagador_-_Análise |
Everyone |
final |
T1_Inscricao_CNPJ.qvd; T2_Empresas_Novo.qvd; T1_Nfse_Aggr_20{periodo}.qvd; T1_Pag_Arrecadacao_{periodo}{periodo}.qvd ... |
— |
| Cadastro_Consolidado |
Everyone |
final |
RFB_Atu_Novo.qvd; SimplesMEI_Atu.qvd; T2_SN_Vigente.qvd; T2_LinhaTempoSN_Ult5.qvd ... |
— |
| Dados_CEEE-_Beta_v2 |
Everyone |
final |
ceee_dados_normatizados_vw.qvd; DIM_CALENDARIO.qvd |
— |
| Instrumentos_Fiscais |
Everyone |
final |
T1_Inscricao_CNPJ.qvd; T2_SN_Vigente.qvd; T2_LinhaTempoSN_Ult5.qvd; Instrumento_Fiscal.qvd ... |
— |
| Pagamentos |
Everyone |
final |
T1_Pag_Apropriado_{periodo}{periodo}.qvd; T1_Pag_Arrecadacao_??????.qvd; T2_Empresas_Novo.qvd; T1_Pag_Compensado.qvd ... |
— |
| SIG |
Everyone |
indefinida |
T2_SN_Vigente.qvd; T2_LinhaTempoSN_Ult5.qvd; SIG_Selecao.qvd; SIG_Intimacao.qvd ... |
$(vQVD) |
| Cartórios |
Seleção_EPFI |
final |
T1_Inscricao_CNPJ.qvd; SIG_Intimacao.qvd; SIG_Atendimento.qvd; SIG_Conclusao.qvd ... |
— |
| Censo_Escolar_INEP |
Seleção_EPFI |
final |
— |
— |
| Excedentes_de_MF |
Seleção_EPFI |
final |
— |
— |
| Funerárias_-_CAF |
Seleção_EPFI |
final |
— |
— |
| Malha_Geral_v1_0 |
Seleção_EPFI |
final |
T2_Empresas_Novo.qvd; T2_Empresas_NFSE.qvd |
— |
| Malha_ISS_Versão_25_9_4 |
Seleção_EPFI |
final |
— |
— |
| Participações_Societárias |
Seleção_EPFI |
final |
T2_Empresas_Novo.qvd |
— |
| Residenciais_Geriátricos_-_Ocupação |
Seleção_EPFI |
final |
— |
— |
Variáveis/definições compartilhadas
Todas as apps do stream ETL incluem raw/arquivos_apoio/ConfigPMPA.txt ($(Include=[lib://QlikSense/1.Configuracoes\ConfigPMPA.txt])), que define:
- Path-vars:
vPath='lib://QlikSense/', vPathDadosE='3.DadosExtraidos\' (saída dos extracts), vPathDadosT='4.DadosTransformados\' (saída dos transforms), vPathDev='lib://QlikSenseDev/' (ambiente de desenvolvimento — usar só durante testes, nunca em script publicado).
- SUBs de gravação:
Store_E(nome, qvd, assunto), Store_T(nome, qvd), Store_T_Retry(nome, qvd, maxTent, sleepMs) (com validação de consistência via QvdNoOfRecords/FileTime/FileSize).
- SUBs de espera:
WaitQvdStable, WaitQvdReadyOrFail (evitam ler QVD no meio de outra escrita).
- SUBs de configuração de indicadores:
Dimensoes(vAssunto), Variaveis(vAssunto) (lêem Config_PMPA.xlsx, aba Indicadores).