Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Você provavelmente está acostumado com a função autonumber() em scripts Qlik.
Para recapitular, essa função retorna um sequencial (começando em 1) para cada valor distinto carregado pelo seu script. Essa função ajuda a otimizar as tabelas de símbolo (Leia aqui) pois troca os valores reais do campo por um sequencial.
"Onde uso isso, Cléver?"
É muito usado em chaves. principalmente. Já que não são valores utilizados para nada além de ligar nossas tabelas, quanto mais otimizadas, melhor, não é mesmo?
Exemplo: se o campo CD_VENDEDOR na tabela abaixo for usado apenas como chave para outras tabelas, eu posso otimizar trocando o valor intrínseco dele por um sequencial
usando o Autonumber()
Eu obteria isso como tabela
Isso pode parecer desprezível em um modelo com apenas 4 linhas, mas pode ajudar bastante em modelos maiores (mais que alguns milhões de linhas).
"Tá bom, Cléver, isso eu já sabia, já tinha lido aqui sobre isso, etc"
O que talvez você não sabia é que também existe o comando autonumber (help) onde apenas com uma linha de código eu posso aplicar o autonumber a todas as ocorrências do campo por todo o modelo. E melhor ainda, eu posso aplicar o autonumber a todos os campos que se encaixem em um padrão.
"O que quer dizer isso?"
Suponhamos que você montou todo o seu script segundo as melhores práticas e que todos os seus campos chave começam com CD_. Você pode montar todo o seu script (sem chamar a função autonumber) e lá no finalzinho do seu script faz isso:
Legal não é? Você agora não vai precisar deixar um monte de autonumber(CD_VENDEDOR) as CD_VENDEDOR espalhado pelo seu código correndo o risco de esquecer em algum lugar e as suas chaves não baterem
BONUS TRACK
O que acontece quando você está lendo um QVD e coloca uma função autonumber?
Você perde a leitura otimizada! 😫 Todo aquela velocidade absurda de leitura é perdida, as vezes passando a ler o seu precioso QVD de guias de internação 4 ou 5 vezes mais lento.
"Mas espera ai! Agora eu não preciso mais deixar a função no script, eu posso fazer apenas uma vez com o comando autonumber. Quer dizer que não vou mais perder a minha leitura otimizada?"
Isso mesmo, se você estava perdendo a leitura otimizada apenas por causa do autonumber() agora você tem a chance de recuperá-la!
Um abraço,
Keep Qliking!
Muito bom o conteúdo Clever, mais uma vez obrigado pelo excelente trabalho.
Show de bola @Clever_Anjos .
Muito bom mesmo.
Outro ponto interessante é que com essa função AutoNumber *fieldlist [Using namespace] ], o Qlik se encarrega em iniciar todos os campos em 1.
RegionSales:
LOAD * INLINE
[ Region, Year, Month, Sales
North, 2014, May, 245
North, 2014, May, 347
North, 2014, June, 127
South, 2014, June, 645
South, 2013, May, 367
South, 2013, May, 221
];
AutoNumber Region, Year, Month;
Quando usamos o Autonumber(Campo) no comando LOAD, todos serão sequenciais.
AN_RegionSales:
LOAD
AutoNumber(Region) AS CD_Region,
AutoNumber(Year) AS CD_Year,
AutoNumber(Month) AS CD_Month,
Sales AS SALES
INLINE
[ Region, Year, Month, Sales
North, 2014, May, 245
North, 2014, May, 347
North, 2014, June, 127
South, 2014, June, 645
South, 2013, May, 367
South, 2013, May, 221
];
Abraços.
Tonial.