01. Conceito

Somos grandes fãs do ELT ao invés do ETL. Mas, com a entrada em vigor da LGPD no Brasil, percebemos a necessidade de ajudar os nossos clientes a aumentar a proteção da privacidade dos dados que a Kondado insere em seus Data Warehouses e Data Lakes.

Então, criamos as funções.

O que são funções?

As funções são processos que são aplicados aos dados antes mesmo que eles sejam escritos no seu destino.

Por exemplo, você pode escolher por aplicar uma função que transforme um texto em letras maiúsculas. Desta forma, caso você tenha no seu conector um texto como “meu texto” ele será escrito no seu destino como “MEU TEXTO”.

Encadeamento de funções

As funções da Kondado são granulares. Isso que dizer que elas fazem apenas uma coisa por vez. Por isso, você pode encadeá-las, fazendo com que elas sejam aplicadas sequencialmente.

Voltando ao nosso exemplo do campo “meu texto”, você pode utilizar a função de transformar em letras maiúsculas, depois aplicar uma função de remover espaços. Nesse caso, esse seria o fluxo deste campo:

  1. No conector: “meu texto”
  2. Primeira função (maiúscula): “MEU TEXTO”
  3. Segunda função (remove espaços): “MEUTEXTO”
  4. Escrito no destino: “MEUTEXTO”

Categorias de funções

Na Kondado, as funções são classificadas em 3 categorias:

  1. Transformação: Aplicam um processo ao campo que ainda permite que ele seja identificado facilmente. Por exemplo, funções de remover espaços e transformar em letras maiúsculas
  2. Anonimização: Aplicam um processo ao campo que não guarda qualquer relação com o seu valor original. Por exemplo, uma função que substitui um valor por um UUID aleatório
  3. Pseudonimização: Aplicam um processo ao campo que guarda certa relação com o valor original. Mas a reversão do campo ao valor original será computacionalmente muito custosa (por exemplo, um hash) ou só poderá ser feita com associação com outros valores (por exemplo, você precisará saber o id do registro que foi pseudonimizado para buscar em outro lugar o seu valor original ou mesmo deduzir com várias associações qual é o valor original)

Tipagem

Algumas funções irão alterar o tipo do dado original. Por exemplo, uma função que substitui um campo por um UUID aleatório, irá alterar qualquer tipo de dado para texto.

Além disso, algumas funções são limitadas para alguns tipos de dado. Por exemplo, uma função que escreve o ano de uma data só pode ser aplicada em campos do tipo timestamps e datas.

Com o encadeamento de funções, o tipo de dado que as próximas funções irão utilizar são sempre relativas ao tipo gerado pela última função aplicada (ou ao tipo do campo original, caso seja a primeira função da cadeia). Por exemplo, um campo do tipo data está no conector como “2020-09-10”. Você pode aplicar uma função de transformação que torne esse campo como texto e depois aplicar uma função que remova caracteres especiais (que só pode ser aplicada em campos do tipo texto). Este processo ocorrerá da seguinte forma:

  1. No conector: date(2020,9,10)
  2. Primeira função (transforma em texto): “2020-09-10”
  3. Segunda função (remove caracteres): “20200910”
  4. Escrita no destino: “20200910”