Nem tenho certeza se estou formulando esta pergunta corretamente, mas tentarei - tenho vários arquivos de texto enormes gerados a partir de uma exportação do Oracle em um sistema Linux. Cada arquivo tem cerca de 30 GB de tamanho e eu tenho cerca de 50 deles.
O objetivo é exportar esses dados para o Azure SQL Data Warehouse. O BCP, neste caso, não é a abordagem certa tendo em mente o tamanho dos dados, então tive que usar o Polybase.
Depois de converter da codificação ASCII para UTF8, tive um problema ao consultar as tabelas externas. Polybase não funciona bem com o arquivo de texto de largura fixa com uma quebra de linha em cada linha.
O arquivo de texto se parece com isto:
101.102.103.104.105.106.107 108.108.109.110.111.112.113 114.115.116.117.118.119.120 121.122.123 --nada aqui, apenas uma linha em branco 201.202.203.204.205.206.207 208.209.210.211.212.213.214 215.216.217
O Polybase tenta processar de 101 a 107 e apresenta erros reclamando que não havia colunas suficientes neste arquivo para processar.
Aqui está o que eu acho que está acontecendo: a largura fixa e as quebras de linha estão fazendo com que trate a quebra de linha como um delimitador de linha.
Como faço para converter este arquivo para ficar como abaixo:
101,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123{CR}{LF} 201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.216.217{CR}{LF}
EDIT: Aqui estão os dados de amostra de um arquivo. Abri no git bash em uma VM do Windows.
Esses arquivos devem ter 167 colunas ,
como separador de colunas. O problema é que, como cada linha gera várias linhas, é difícil processá-las nas tabelas externas do Polybase.