Ir para conteúdo
  • 0

Erro ao criar função


Rogerio Tonini
Ir para solução Solucionado por champanjonata ,

Pergunta

  • Alunos

Boa noite pessoal!

Tenho uma planilha de dados que contém mais de 50 colunas (colunas de texto e valores misturados). Infelizmente, não tenho acesso ao DB e serei obrigado a criar a base em tabelas. Este arquivo contém mais de 500K de linhas gerado por um sistema legado.

Quero criar uma função onde seja informado o nome da Tabela com todas as colunas já tratadas, para a geração de cada tabela Dimensão.

Motivo: As descrições de cada coluna são todas alfa númericas, são descrições extensas e não possuem nenhum índice.

Com relação a função, o erro apresentado é:

Erro na consulta ‘’. Expression.Error: Não conseguimos aplicar o acesso de campo ao tipo Text. Detalhes: Value=DadosBruto Key=Column3

Os parâmetros passados são: o nome da Tabela e o número da Coluna.

Segue o código da função, já tentei utilizar a função: Text.Combine({"Column" & _NumCol}), entre outras, sem sucesso. O resultado é sempre o mesmo erro. Segue código da função e abaixo o código lendo diretamente a tabela e que funciona:

(

    _Tabela as table,

    _NumCol as text

) =>

let

     // ---------- Define qual coluna deverá ser gerada a tabela ----------

    Columna = "Column" & _NumCol,

    FonteDados = List.Buffer( _Tabela[ Coluna ] )

in

    FonteDados

------------------------------------------------------------------------------------------

let

     FonteDados = List.Buffer( DadosBruto[ Column3 ] )

in

     FonteDados

Editado por Rogerio Tonini
faltou título
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
8 minutos atrás, Rogerio Tonini disse:

Valeu @champanjonata!!!

Terei que mergulhar um "pouco" mais fundo nos estudos. Dentre as ferramentas citadas: Pentaho, Apache HOP e Python/notebooks, qual você acha que a curva de aprendizado é menor e todos são gratuitos?

Pentaho e Apache HOP são praticamente iguais! Pra inicio em novo projeto recomendo o apache hop pois o pentaho foi descontinuado em sua versão gratuita (a versão paga é atualizada normalmente). Python/notebook é free desde que tenha um servidor pra sua infra, mas não recomendo pra quem tá iniciando. Vai de Apache HOP que é sucesso.

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos
9 horas atrás, Rogerio Tonini disse:

Oi Matheus, dessa forma não é que não seja possível, mas a performance vai a ZERO, é melhor trabalhar a tabela em lista. Como disse anteriormente são mais de 500K de linhas por mês e o número de caracteres por coluna vária de 10 a 100 (+ ou -), tenho que:

1-) Apagar as linhas repetidas que são muitas;

2-) Limpas os possíveis espaços em branco à direita e à esquerda e os caracteres não imprimíveis;

3-) Gerar uma coluna de índice para cada tabela. Para se ter ideia uma das tabelas geradas possuem mais de 13K de itens de cadastro;

4-) Ao total são 9 colunas que tenho que fazer isso;

5-) Normatizar a tabela Dimensão principal somente com códigos;

6-) Separar os dados das tabelas fatos (total 2) que estão misturadas nela,

7-) Finalmente gerar todas as métricas.

Esta rotina será mensal, no meu equipamento que é um i7 de 2ª geração com 16GB de RAM, o SWAP em disco (ainda bm que é um SSD) é de 100% e muito demorado. No mínimo 20 minutos para cada coluna, ou seja, 9 * 20 serão 180 minutos (3 horas), sem contar a geração das Fatos.

 

Olá Rogério, tudo bem?

Uma dica que dou é fazer essa etapa FORA do power bi em uma ferramenta de ETL para só então consumir os dados prontos. Existem várias no mercado, inclusive gratuitas. O erro de muitas pessoas é acreditar que o power query pode resolver tudo e atual 100% como uma ferramenta de transformação, porém quando o caldo engrossa, ou seja, uma base muito grande ele simplesmente não aguenta. Uso o excel aqui pra ingerir alguns dados (cerca de 70 mil/dia) e vai que é uma beleza. Utilizo pentaho (PDI), um semelhante e mais recente (e tão fácil quanto o pentaho) é o apache HOP. Pode usar também python/notebooks, enfim, desde que essa etapa seja FORA do power query você estará em outro nível.

Abraços.

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa noite rogeiro.

Tudo beleza

Se for o que entendi atraves de uma unica tabela voce quer gerar suas tabelas dimensao e fato. Voce pode usar a funcao excel.workbook desta forma na pre visualizacao voce ja consegue selecionar as colunas que deseja trazer, ae basta ir duplicando e trocando as colunas.

 

Se nao for isso consegue compartilhar um exemplo para entender melhor.

Att

Editado por Matheus Henrique .
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi Matheus, dessa forma não é que não seja possível, mas a performance vai a ZERO, é melhor trabalhar a tabela em lista. Como disse anteriormente são mais de 500K de linhas por mês e o número de caracteres por coluna vária de 10 a 100 (+ ou -), tenho que:

1-) Apagar as linhas repetidas que são muitas;

2-) Limpas os possíveis espaços em branco à direita e à esquerda e os caracteres não imprimíveis;

3-) Gerar uma coluna de índice para cada tabela. Para se ter ideia uma das tabelas geradas possuem mais de 13K de itens de cadastro;

4-) Ao total são 9 colunas que tenho que fazer isso;

5-) Normatizar a tabela Dimensão principal somente com códigos;

6-) Separar os dados das tabelas fatos (total 2) que estão misturadas nela,

7-) Finalmente gerar todas as métricas.

Esta rotina será mensal, no meu equipamento que é um i7 de 2ª geração com 16GB de RAM, o SWAP em disco (ainda bm que é um SSD) é de 100% e muito demorado. No mínimo 20 minutos para cada coluna, ou seja, 9 * 20 serão 180 minutos (3 horas), sem contar a geração das Fatos.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
15 minutos atrás, champanjonata disse:

Olá Rogério, tudo bem?

Uma dica que dou é fazer essa etapa FORA do power bi em uma ferramenta de ETL para só então consumir os dados prontos. Existem várias no mercado, inclusive gratuitas. O erro de muitas pessoas é acreditar que o power query pode resolver tudo e atual 100% como uma ferramenta de transformação, porém quando o caldo engrossa, ou seja, uma base muito grande ele simplesmente não aguenta. Uso o excel aqui pra ingerir alguns dados (cerca de 70 mil/dia) e vai que é uma beleza. Utilizo pentaho (PDI), um semelhante e mais recente (e tão fácil quanto o pentaho) é o apache HOP. Pode usar também python/notebooks, enfim, desde que essa etapa seja FORA do power query você estará em outro nível.

Abraços.

Valeu @champanjonata!!!

Terei que mergulhar um "pouco" mais fundo nos estudos. Dentre as ferramentas citadas: Pentaho, Apache HOP e Python/notebooks, qual você acha que a curva de aprendizado é menor e todos são gratuitos?

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...