4
respostas

[Dúvida] Como abrir arquivo ZIP no PowerBI

Falaa pessoal, boa noite! tudo bem? To precisando de uma ajuda nessa demanda: Estou tentando abrir alguns documentos via Power BI, porém eles estão em formato ZIP, pq no caso eles são grandes e ele são alimentados e carregados desta forma no site do Banco Central. Procurei vários tutoriais na internet e achei um, mas quando fui aplicar a alteração do arquivo, não funcionou. Será que alguém consegue me ajudar a entender como converter e abrir esses arquivos ZIP diretamente do PowerBI sem ter que fazer download dos mesmos? Os links de referência são estes:

(tutorial) https://www.linkedin.com/pulse/conectando-power-bi-em-arquivos-zip-rafael-barbosa/?originalSubdomain=pt

(base de uso) https://www.bcb.gov.br/pda/desig/planilha_2022.zip

Desde já agradeço demais pela ajuda. Grande abraço!

4 respostas

Olá, Mazoir. Tudo bem?

Tranquilo, vamos lá!

Para fazer isso, vamos seguir alguns passos:

  1. Primeiramente, devemos abrir o Editor do Power Query. Para abri-lo, na barra de opções no topo, na aba de Página Inicial, clique na opção Transformar dados, que está na seção de Consultas mais ao centro:

    Captura de tela da barra de opções do Power BI, com fundo cinza. Acima, temos as abas de cada tipo de opção, e estamos na barra de Página Inicial. Nesta barra, temos algumas opções com seus respectivos ícones, dentre elas, na seção de Consultas, temos a de Transformar dados que possui o ícone de uma tabela de uma caneta no seu canto inferior direito. Além disso, a título da aba da Página Inicial e a opção de Transformar dados estão destacadas com um retângulo vermelho, cada.

  2. Em seguida, você deve acessar a opção Nova Fonte e selecionar a fonte Consulta Nula:

    Captura de tela da barra de opções do Power BI, com fundo cinza. Estamos na seção da Página Inicial, com a opção Nova Fonte aberta, com desta para a fonte de dados Consulta Nula, ambas destacadas com um retângulo vermelho.

  3. Agora, você terá que copiar o seguinte código para que o arquivo ZIP seja descompactado pelo Power BI:

     = let
         Fonte = Web.Contents("https://www.bcb.gov.br/pda/desig/planilha_2022.zip"), //Caminho do seu arquivo ZIP
         UnzipContents = (ZIPFile) => let
             Header = BinaryFormat.Record([
                 MiscHeader = BinaryFormat.Binary(14),
                 BinarySize = BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger32, ByteOrder.LittleEndian),
                 FileSize   = BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger32, ByteOrder.LittleEndian),
                 FileNameLen= BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger16, ByteOrder.LittleEndian),
                 ExtrasLen  = BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger16, ByteOrder.LittleEndian)    
             ]),
    
             HeaderChoice = BinaryFormat.Choice(
                 BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger32, ByteOrder.LittleEndian),
                 each if _ <> 67324752             // not the IsValid number? then return a dummy formatter
                     then BinaryFormat.Record([IsValid = false, Filename=null, Content=null])
                     else BinaryFormat.Choice(
                             BinaryFormat.Binary(26),      // Header payload - 14+4+4+2+2
                             each BinaryFormat.Record([
                                 IsValid  = true,
                                 Filename = BinaryFormat.Text(Header(_)[FileNameLen]),
                                 Extras   = BinaryFormat.Text(Header(_)[ExtrasLen]),
                                 Content  = BinaryFormat.Transform(
                                     BinaryFormat.Binary(Header(_)[BinarySize]),
                                     (x) => try Binary.Buffer(Binary.Decompress(x, Compression.Deflate)) otherwise null
                                 )
                                 ]),
                                 type binary                   // enable streaming
                         )
             ),
    
             ZipFormat = BinaryFormat.List(HeaderChoice, each _[IsValid] = true),
    
             Entries = List.Transform(
                 List.RemoveLastN( ZipFormat(ZIPFile), 1),
                 (e) => [FileName = e[Filename], Content = e[Content] ]
             )
         in
             Table.FromRecords(Entries),
             Open_ZIP = UnzipContents(Fonte)
         in 
             Open_ZIP
  4. Após copiar esse código, cole ele na caixa da Consulta Nula. Logo que você colar, o Power BI irá executar o código e você verá o resultado abaixo:

    Captura de tela da caixa de função do Power Query, em que temos, no topo, uma função sendo executada e uma tabela de duas colunas como retorno logo abaixo.

  5. Funcionou! Mas ainda não está pronto. Seus arquivos ainda estão compactados. Para tratá-los, precisamos ir na coluna Content e clicar no pequeno botão à direita do nome da coluna. Esse botão irá abrir a janela para Combinar Arquivos:

    Captura de tela da coluna Content, com destaque com um retângulo vermelho para o botão à direita do nome da coluna

  6. Após clicar nesse botão, a janela para combinação de arquivos irá abrir, mostrando uma prévia das planilhas combinadas. Você pode clicar em OK.

    Captura de tela da janela de Combinar Arquivos, em que temos a tabela prévia das planilhas combinadas. Abaixo, temos o botão de OK, destacado com um retângulo vermelho

Continua...

Continuação da resposta:

Pronto, você verá o resultado final, com a tabela das planilhas descompactadas: Captura de tela da tabela final, com várias colunas das planilhas combinadas

 

Espero ter ajudado, Mazoir. Se tiver mais alguma dúvida, estou à disposição. Bons estudos =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi Marcelo, tudo bem?

Primeiramente, gostaria muito de agradecer pela atenção dada ao caso.

Verifiquei o passo a passo que você me passou e tem dois pontos importantes: o primeiro é que no passo de copiar para consulta nula não funcionou, eu tive que abrir a opção editor avançado e colar o script.

Outro ponto que me chamou atenção é que o arquivo demorou muito a carregar e quando finalizou o processo de carregamento surgiu essa tela de erro anexa. Sabe como eu poderia resolver esta questão?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá, Mazoir. Tudo bem?

Essa problema também aconteceu quanto eu estava realizando a importação, ficou travando muito aqui. Imagino que seja por conta da grande quantidade de dados desse link.

Uma solução seria reduzir a quantidade de dados importados. Nesse caso, não sei como eu poderia te ajudar, tendo em vista que é uma base de dados pronta, acessada por um link.