Erreurs et exceptions Kusto.Ingest
Toute erreur pendant la gestion de l’ingestion côté client est indiquée par une exception C#.
Échecs
Exceptions KustoDirectIngestClient
Lors de la tentative d’ingestion à partir de plusieurs sources, des erreurs peuvent se produire pendant le processus d’ingestion.
Si une ingestion échoue pour l’une des sources, elle est journalisée et le client continue d’ingérer les sources restantes.
Après avoir passé au-dessus de toutes les sources pour l’ingestion, un IngestClientAggregateException
est levée, contenant le IList<IngestClientException> IngestionErrors
membre .
IngestClientException
et ses classes dérivées contiennent un champ IngestionSource
et un Error
champ. Les deux champs créent ensemble un mappage, à partir de la source qui a échoué l’ingestion, à l’erreur qui s’est produite lors de la tentative d’ingestion. Les informations peuvent être utilisées dans la IngestionErrors
liste pour examiner quelles sources ont échoué l’ingestion et pourquoi. L’exception IngestClientAggregateException
contient également une propriété GlobalError
booléenne , qui indique si une erreur s’est produite pour toutes les sources.
Échecs d’ingestion à partir de fichiers ou d’objets blob
Si un échec d’ingestion se produit lors d’une tentative d’ingestion à partir d’un objet blob ou d’un fichier, les sources d’ingestion ne sont pas supprimées, même si l’indicateur a la deleteSourceOnSuccess
valeur true
. Les sources sont conservées pour une analyse plus approfondie. Une fois l’origine de l’erreur comprise et si l’erreur ne provient pas de la source d’ingestion elle-même, l’utilisateur du client peut tenter de la réinscrire.
Échecs d’ingestion à partir d’IDataReader
Lors de l’ingestion à partir de DataReader, les données à ingérer sont enregistrées dans un dossier temporaire dont l’emplacement par défaut est <Temp Path>\Ingestions_<current date and time>
. Ce dossier par défaut est toujours supprimé après une ingestion réussie.
Dans les IngestFromDataReader
méthodes et IngestFromDataReaderAsync
, l’indicateur, dont la retainCsvOnFailure
valeur par défaut est false
, détermine si les fichiers doivent être conservés après une ingestion ayant échoué. Si cet indicateur est défini sur false
, les données qui échouent à l’ingestion ne sont pas conservées, ce qui rend difficile la compréhension de ce qui s’est passé.
Exceptions KustoQueuedIngestClient
KustoQueuedIngestClient
ingère des données en chargeant des messages dans une file d’attente Azure. Si une erreur se produit avant ou pendant le processus de mise en file d’attente, une IngestClientAggregateException
est levée à la fin du processus. L’exception levée inclut une collection de IngestClientException
, qui contient la source de chaque échec et qui n’a pas été publiée dans la file d’attente. L’erreur qui s’est produite lors de la tentative de publication du message est également levée.
Échecs de publication dans la file d’attente avec un fichier ou un objet blob en tant que source
Si une erreur se produit lors de l’utilisation KustoQueuedIngestClient
des méthodes de IngestFromFile/IngestFromBlob
, les sources ne sont pas supprimées, même si l’indicateur deleteSourceOnSuccess
est défini sur true
. Au lieu de cela, les sources sont conservées pour une analyse plus approfondie.
Une fois l’origine de l’erreur comprise et si l’erreur ne provient pas de la source d’ingestion elle-même, l’utilisateur du client peut tenter de mettre les données en file d’attente à l’aide des méthodes appropriées IngestFromFile/IngestFromBlob
avec la source ayant échoué.
Échecs de publication dans la file d’attente avec IDataReader comme source
Lors de l’utilisation d’une source DataReader, les données à publier dans la file d’attente sont enregistrées dans un dossier temporaire dont l’emplacement par défaut est <Temp Path>\Ingestions_<current date and time>
. Ce dossier est toujours supprimé une fois que les données ont été correctement publiées dans la file d’attente.
Dans les IngestFromDataReader
méthodes et IngestFromDataReaderAsync
, l’indicateur, dont la retainCsvOnFailure
valeur par défaut est false
, détermine si les fichiers doivent être conservés après une ingestion ayant échoué. Si cet indicateur est défini sur false
, les données qui échouent à l’ingestion ne sont pas conservées, ce qui rend difficile la compréhension de ce qui s’est passé.
Échecs courants
Error | Motif | Limitation des risques |
---|---|---|
Le nom> de <la base de données n’existe pas | La base de données n’existe pas | Vérifiez le nom de la base de données dans kustoIngestionProperties /Créer la base de données |
L’entité « nom de la table qui n’existe pas » de type « Table » est introuvable. | La table n’existe pas et il n’existe aucun mappage CSV. | Ajouter un mappage CSV / créer la table requise |
Chemin d’accès <> d’objet blob exclu pour raison : le modèle JSON doit être ingéré avec le paramètre jsonMapping | Ingestion JSON quand aucun mappage JSON n’est fourni. | Fournir un mappage JSON |
Échec du téléchargement de l’objet blob : « Le serveur distant a retourné une erreur : (404) Introuvable. » | Le blob n’existe pas. | Vérifiez que l’objet blob existe. S’il existe, réessayez et contactez l’équipe Kusto |
Le mappage de colonnes JSON n’est pas valide : deux éléments de mappage ou plus pointent vers la même colonne. | Le mappage JSON comporte 2 colonnes avec des chemins différents | Corriger le mappage JSON |
EngineError - [UtilsException] IngestionDownloader.Download : Un ou plusieurs fichiers n’ont pas pu être téléchargés (recherchez ActivityID :<GUID1>, RootActivityId :<GUID2> dans KustoLogs) |
Un ou plusieurs fichiers n’ont pas pu être téléchargés. | Réessayer |
Échec de l’analyse : le flux avec l’ID «< nom> du flux » a un format CSV incorrect, ce qui échoue par la stratégie ValidationOptions | Fichier CSV mal formé (par exemple, n’ayant pas le même nombre de colonnes sur chaque ligne). Échoue uniquement lorsque la stratégie de validation est définie sur ValidationOptions.ValidateCsvInputConstantColumns . |
Vérifiez vos fichiers CSV. Ce message s’applique uniquement aux fichiers CSV/TSV |
IngestClientAggregateException avec le message d’erreur « Paramètres obligatoires manquants pour la signature d’accès partagé valide » |
La signature d’accès partagé utilisée appartient au service et non au compte de stockage | Utiliser la signature d’accès partagé du compte de stockage |
Codes d’erreur d’ingestion
Pour faciliter la gestion des échecs d’ingestion par programme, les informations d’échec sont enrichies avec un code d’erreur numérique (IngestionErrorCode enumeration
).
Pour obtenir la liste complète des codes d’erreur d’ingestion, consultez Codes d’erreur d’ingestion.
Informations de référence détaillées sur les exceptions
CloudQueuesNotFoundException
Déclenché quand aucune file d’attente n’a été retournée à partir du cluster Gestion des données
Classe de base : Exception
Nom du champ | Type | Signification |
---|---|---|
Erreur | string |
Erreur qui s’est produite lors de la tentative de récupération des files d’attente à partir du DM |
Pertinent uniquement lors de l’utilisation du client d’ingestion en file d’attente Kusto. Pendant le processus d’ingestion, plusieurs tentatives sont effectuées pour récupérer les files d’attente Azure liées au DM. Lorsque ces tentatives échouent, l’exception contenant la raison de l’échec est déclenchée dans le champ « Erreur ». Peut-être qu’une exception interne dans le champ « InnerException » est également levée.
CloudBlobContainersNotFoundException
Déclenché lorsqu’aucun conteneur d’objets blob n’a été retourné à partir du cluster Gestion des données
Classe de base : Exception
Nom du champ | Type | Signification |
---|---|---|
KustoEndpoint | string |
Point de terminaison du DM approprié |
Pertinent uniquement lors de l’utilisation du client d’ingestion en file d’attente Kusto.
Lors de l’ingestion de sources qui ne se trouvent pas déjà dans un conteneur Azure, telles que des fichiers, DataReader ou Stream, les données sont chargées dans un objet blob temporaire pour ingestion.
L’exception est levée lorsqu’aucun conteneur n’est trouvé pour charger les données.
DuplicateIngestionPropertyException
Déclenché lorsqu’une propriété d’ingestion est configurée plusieurs fois
Classe de base : Exception
Nom du champ | Type | Signification |
---|---|---|
PropertyName | string |
Nom de la propriété dupliquée |
PostMessageToQueueFailedException
Déclenché lors de l’échec de la publication d’un message dans la file d’attente
Classe de base : Exception
Nom du champ | Type | Signification |
---|---|---|
QueueUri | string |
URI de la file d’attente |
Erreur | string |
Message d’erreur qui a été généré lors de la tentative de publication dans la file d’attente |
Pertinent uniquement lors de l’utilisation du client d’ingestion en file d’attente Kusto.
Le client d’ingestion en file d’attente ingère les données en chargeant un message dans la file d’attente Azure appropriée. En cas de post-échec, l’exception est levée. Il contient l’URI de file d’attente, la raison de l’échec dans le champ « Error » et éventuellement une exception interne dans le champ « InnerException ».
DataFormatNotSpecifiedException
Déclenché lorsqu’un format de données est requis, mais non spécifié dans IngestionProperties
Classe de base : IngestClientException
Lors de l’ingestion à partir d’un flux, un format de données doit être spécifié dans IngestionProperties pour ingérer correctement les données. Cette exception est levée lorsque le IngestionProperties.Format
n’est pas spécifié.
InvalidUriIngestClientException
Déclenché lorsqu’un URI d’objet blob non valide est envoyé en tant que source d’ingestion
Classe de base : IngestClientException
CompressFileIngestClientException
Déclenché lorsque le client d’ingestion ne parvient pas à compresser le fichier fourni pour l’ingestion
Classe de base : IngestClientException
Les fichiers sont compressés avant leur ingestion. L’exception est levée lorsqu’une tentative de compression du fichier échoue.
UploadFileToTempBlobIngestClientException
Déclenché lorsque le client d’ingestion ne parvient pas à charger la source fournie pour l’ingestion dans un objet blob temporaire
Classe de base : IngestClientException
SizeLimitExceededIngestClientException
Déclenché lorsqu’une source d’ingestion est trop volumineuse
Classe de base : IngestClientException
Nom du champ | Type | Signification |
---|---|---|
Taille | long |
Taille de la source d’ingestion |
MaxSize | long |
Taille maximale autorisée pour l’ingestion |
Si une source d’ingestion dépasse la taille maximale de 4 Go, l’exception est levée. La validation de taille peut être remplacée par l’indicateur IgnoreSizeLimit
dans la classe IngestionProperties. Toutefois, nous vous déconseillons d’ingérer des sources uniques supérieures à 1 Go. Pour plus d’informations, consultez Meilleures pratiques kusto Ingest.
UploadFileToTempBlobIngestClientException
Déclenché lorsque le client d’ingestion ne parvient pas à charger le fichier fourni pour l’ingestion dans un objet blob temporaire
Classe de base : IngestClientException
DirectIngestClientException
Déclenché lorsqu’une erreur générale se produit lors d’une ingestion directe
Classe de base : IngestClientException
QueuedIngestClientException
Déclenché lorsqu’une erreur se produit lors d’une ingestion en file d’attente
Classe de base : IngestClientException
IngestClientAggregateException
Déclenché lorsqu’une ou plusieurs erreurs se produisent pendant une ingestion
Classe de base : AggregateException
Nom du champ | Type | Signification |
---|---|---|
IngestionErrors | IList<IngestClientException> | Erreurs qui se produisent lors de la tentative d’ingestion, et les sources associées |
IsGlobalError | bool |
Indique si l’exception s’est produite pour toutes les sources |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour