Symptômes
Depuis SQL Server 2019 CU6, la définition Create External Table a été étendue pour inclure un paramètre Rejected_Row_Location. Cette valeur représente l’emplacement dans la source de données externe dans lequel les Files d’erreur et les lignes rejetées seront enregistrés. Cette option ne peut être utilisée qu’avec des tables externes utilisant le format de fichier DELIMITEDTEXT sur des sources de données externes de type 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 = VALEUR
,REJECT_VALUE = 100
,REJECTED_ROW_LOCATION='/Reject_Directory'
)
Que se passe-t-il lorsque les données sont chargées ?
Lorsqu’un utilisateur exécute un CTAS (Create Table As Select) sur la table précédente, PolyBase crée un répertoire sur la source de données externe au Rejected_Row_Location, s’il n’en existe pas. Un répertoire enfant nommé « _rejectedrows » est créé. Le caractère de soulignement (_) permet de s’assurer que le répertoire est placé dans une séquence d’échappement pour d’autres traitements de données, sauf s’il est explicitement nommé dans le paramètre location. Dans ce répertoire, un dossier est créé en fonction de l’heure d’envoi du chargement au format YearMonthDay-HourMinuteSecond (par exemple, 20180330-173205). Dans ce dossier, deux types de fichiers sont écrits : le fichier _reason et le fichier de données.
Le fichier de motif et le fichier de données ont tous deux l’ID de requête associé à l’instruction CTAS. Étant donné que les données et la raison se trouvent dans des fichiers distincts, les fichiers correspondants ont un suffixe correspondant.
État
Microsoft a ajouté de nouvelles fonctionnalités répertoriées dans la section « S’applique à ».
Résolution
Ce problème est résolu dans la mise à jour cumulative suivante pour SQL Server :
À propos des mises à jour cumulatives pour SQL Server :
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.