Sintomas
A partir do 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 no qual o Files de Erro e as Linhas Rejeitadas serão gravados. Essa opção pode ser usada somente com tabelas externas usando o formato de arquivo DELIMITEDTEXT em fontes de dados externas do tipo Hadoop.
CREATE EXTERNAL TABLE [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 Seleção (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 com o nome de "_rejectedrows". O caractere Sublinhado (_) garante que o diretório seja escapado para outros processamentos de dados, a menos que seja explicitamente nomeado no parâmetro local. Dentro desse diretório, uma pasta é criada com base no tempo de envio do carregamento no formato YearMonthDay-HourMinuteSecond (por exemplo, 20180330-173205). Nessa pasta, dois tipos de arquivos são gravados: o arquivo _reason e o arquivo de dados.
O arquivo de motivo e o arquivo de dados têm o queryID associado à 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 o SQL Server:
Sobre atualizações cumulativas para o SQL Server:
Cada nova atualização cumulativa do 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 o SQL Server:
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.