Sintomas
A partir SQL Server 2019 CU6, a definição Criar Tabela Externa foi estendida para incluir um parâmetro Rejected_Row_Location. Esse valor representa o local na Fonte de Dados Externa na qual os Arquivos de Erro e Linhas Rejeitadas serão gravados. Essa opção só pode ser usada com tabelas externas usando o formato de arquivo DELIMITEDTEXT em fontes de dados externas do tipo Hadoop.
CRIAR TABELA EXTERNA [dbo]. [Reject_Example]
(
[Col_one] TINYINT NULL,
[Col_two] VARCHAR(100) NULL,
[Col_three] NUMERIC(2,2) NULL
)
WITH
(
DATA_SOURCE = EDS_Reject_Row
,LOCATION = '/Read_Directory'
,FILE_FORMAT = CSV
,REJECT_TYPE = VALOR
,REJECT_VALUE = 100
,REJECTED_ROW_LOCATION='/Reject_Directory'
)
O que acontece quando os dados são carregados?
Quando um usuário executa um Criar Tabela como Selecionar (CTAS) na tabela anterior, o PolyBase cria um diretório na Fonte de Dados Externa no Rejected_Row_Location, se não existir. Um diretório filho é criado chamado "_rejectedrows". O caractere Sublinhado (_) garante que o diretório escape para outro processamento de dados, a menos que seja explicitamente nomeado no parâmetro location. Nesse diretório, uma pasta é criada com base no tempo de envio de carga no formato YearMonthDay-HourMinuteSecond (por exemplo, 20180330-173205). Nesta pasta, dois tipos de arquivos são escritos: o arquivo _reason e o arquivo de dados.
O arquivo de motivos e o arquivo de dados têm a consultaID associada à instrução CTAS. Como os dados e o motivo estão em arquivos separados, os arquivos correspondentes têm um sufixo correspondente.
Status
A Microsoft adicionou novos recursos listados na seção "Aplica-se a".
Resolução
Esse problema é corrigido na seguinte atualização cumulativa para SQL Server:
Sobre atualizações cumulativas para SQL Server:
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para SQL Server:
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.