Olá pessoal, tudo bem!?
Post com dica rápida para vocês!!
Quero mostrar neste post, como evitar o uso da task de Sort (ordenamento) no nosso processo de ETL.
E porque isso é importante?! Bem, assim como o Order By em uma query, o Sort também atua de maneira similar, ainda que seja processado na memória, ele age como um cursor operando linha após linha, tornando o processamento mais lento.
Então, para agilizar nosso processo de ETL, podemos determinar nas configurações das tabelas a propriedade de ordenamento, ordenar as colunas e utilizar assim para o por exemplo, tasks de Joins.
O primeiro passo é selecionar as fontes as quais vamos trabalhar. Neste processo peguei as tabelas ProductSubCategory & ProductCategory.
Agora, vamos ver como atribuímos a propriedade e ordenamos as colunas.
Quando clicar em “Show Advanced Editor”, esta janela irá se abrir.
Vá na última aba, mude a propriedade circulada em vermelho “IsSorted” para True. Ao fazer isso, teremos de editar a ordem das colunas agora.
Aqui, é muito importante entender o seguinte:
O SSIS pede uma coluna com valor 0, então, aconselho a colocar a coluna que não irá utilizar na comparação dos Joins. Aqui por exemplo, coloquei como valor 0 a coluna ProductSubCategoryID.
Em vermelho, alteramos a posição da coluna, colocando ProductCategoryID em primeiro. Para o valor 0 coloque ProductSubCategoryID e para o valor 2 ProductSubCategoryName.
Ficando assim, sua tabela ordenada para a operação de Join. O mesmo pode ser feito com a tabela ProductCategory caso seja necessário.
Na tarefa de Join, escolha qual tipo de join quer executar e quais colunas a task deverá gerar ao seu final. Garanta que a sua tarefa tenha esta configuração.
Crie uma tarefa simples de “Flat File Destination” para gerar um arquivo TXT para vermos o resultado final e mande executar o processo.
Basta ir no diretório onde o arquivo foi criado para conferir os dados inseridos!
Este foi um post rápido e simples onde quis mostrar uma alternativa a tarefa de sort que em grandes volumes de dados, pode causar uma certa lentidão no seu ETL.
Espero que tenham gostado, saúde!!!