O que você vai aprender?
Como bem sabemos, o Alteryx pode tratar vários tipos dados em seus mais diversificados formatos. Uma de suas tratativas avançadas é a combinação difusa, ou, Fuzzy Match.
Nesse tipo de combinação, verificamos através de algoritmos a probabilidade de uma String ser igual a outra. Essa ferramenta realiza essas comparações dentro de uma mesma coluna (podemos inclusive incluir múltiplas colunas), mas, como fazemos para comparar diversas colunas dentro de uma única linha?
Bem, é isso que aprenderemos hoje.
PASSO 1: ENTENDENDO O PROBLEMA
Vamos supor que eu tenho uma base de dados que contêm no formato de coluna as várias versões de uma mesma música do Cantor, e precisamos padronizar todas as versões com um mesmo nome que seja comum a todas.
Se fizéssemos um Fuzzy Match normal, a ferramenta iria comparar cada coluna entre si (VERSAO1 com VERSAO1, VERSAO2 com VERSAO2, VERSAO3 com VERSAO3), dizendo que a música “CRAVO E CANELA” da Anitta é igual a música “CRAVO E CANELA” de Milton Nascimento.
Outra solução seria fazer uma transposição das colunas, mas ainda assim as diversas versões dos diversos artistas seriam comparadas entre si, gerando o mesmo resultado exibido anteriormente.
MAAAASSS, a solução do transpose não é completamente errada, mas precisaríamos comparar os registros as versões de cada cantor. E para isso criaremos uma Macro Iterativa.
PASSO 2: CONSTRUINDO A MACRO
O primeiro passo é converter o nosso fluxo que contêm o transpose em uma Macro, para isso abrimos as configurações do worklow (clicando na parte branca do canvas), e alterando o Type para Macro -> Iterative Macro.
Além disso incluiremos antes do Transpose uma ferramenta de Macro Input, e após o último join uma ferramenta de Macro Output.
PASSO 3: CONFIGURANDO A ITERATIVE MACRO
A Iterative macro é um tipo de macro que executa suas atividades em looping, então sua principal configuração é como esse looping deve funcionar. Até onde ele vai? Quando ele para? Qual a condição do looping?
No nosso caso, precisamos que essa macro seja executada uma vez para cada artista/linha, dessa forma iremos incluir antes do transpose iremos utilizar uma ferramenta select records para pegar a primeira linha, e outra ferramenta select records para buscar as outras linhas, ficando da seguinte forma.
Assim, ao executar o fluxo, ele irá aplicar o fuzzy apenas dentro da linha desejada.
O último passo da configuração da macro é determinar como nosso looping irá se comportar (pois ao executar o fluxo acima, ele irá tratar apenas a Anitta e irá desconsiderar os outros cantores), para isso fazemos mais 2 coisas, incluímos uma nova Macro output após o Select Records da parte de baixo e configuramos nossas entradas e saídas da seguinte forma:
Após isso, iremos ao menu View -> Interface Designer. Na nova janela iremos clicar na engrenagem no lado esquerdo e configurar nossa macro da seguinte forma:
Pronto, nossa macro está feita, agora vamos salvá-la e voltar para um fluxo em branco.
PASSO 4: FUZZY HORIZONTAL
No nosso fluxo em branco iremos carregar nossa base original, e incluir a nova macro ao fluxo. Para incluir a macro basta clicar com o lado direito no canvas e seguir os menus como na imagem abaixo.
Obs.: caso a macro esteja aberta em outra aba do Alteryx, ela irá aparecer imediatamente no grupo de macros. Caso não esteja, será necessário ir pelo browse e encontrá-la em seu computador.
Após a inclusão da macro e execução do fluxo, temos o seguinte resultado:
Pronto, criamos nossa macro de fuzzy horizontal onde será gerado o padrão para todas as colunas.
Vale ressaltar que para a nossa regra de negócio faz sentido utilizar as ferramentas de Sorte e Select records dentro da macro, pois queremos apenas o nome mais provável para a padronização, mas todas as regras podem ser adaptadas de acordo com sua necessidade, podendo trazer todas as comparações, antes e depois, múltiplas possibilidades.