Résoudre les problèmes liés au connecteur Format Parquet dans Azure Data Factory et Azure Synapse

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article fournit des suggestions pour résoudre les problèmes courants liés au connecteur Format Parquet dans Azure Data Factory et Azure Synapse.

Code d’erreur : ParquetJavaInvocationException

  • Message : An error occurred when invoking java, message: %javaException;.

  • Causes et recommandations : Différentes causes peuvent être à l’origine de cette erreur. Consultez la liste ci-dessous pour obtenir une analyse des causes possibles et des recommandations associées.

    Analyse de la cause Recommandation
    Lorsque le message d’erreur contient les chaînes « java.lang.OutOfMemory », « Java heap space » et « doubleCapacity », il s’agit généralement d’un problème de gestion de la mémoire dans une ancienne version du runtime d’intégration. Si vous utilisez des runtimes d’intégration auto-hébergés et que la version est antérieure à 3.20.7159.1, nous vous recommandons une mise à niveau vers la version la plus récente.
    Lorsque le message d’erreur contient la chaîne « java.lang.OutOfMemory », le runtime d’intégration ne dispose pas de suffisamment de ressources pour traiter les fichiers. Limitez les exécutions simultanées sur le runtime d’intégration. Pour les runtimes d’intégration auto-hébergés, effectuez un scale-up vers un ordinateur puissant doté d’une mémoire égale ou supérieure à 8 Go.
    Lorsque le message d’erreur contient la chaîne « NullPointerReference », cela peut être dû à une erreur temporaire. Retentez l’opération. Si le problème persiste, contactez le support technique.

Code d’erreur : ParquetInvalidFile

  • Message : File is not a valid Parquet file.

  • Cause : Il s’agit d’un problème de fichier Parquet.

  • Recommendation : Vérifiez que l’entrée est un fichier Parquet valide.

Code d’erreur : ParquetNotSupportedType

Code d’erreur : ParquetMissedDecimalPrecisionScale

  • Message : Decimal Precision or Scale information is not found in schema for column: %column;.

  • Cause : La précision et l’échelle des nombres ont été analysées, mais aucune information de ce type n’a été fournie.

  • Recommandation : La source ne retourne pas les informations correctes de précision et d’échelle. Vérifiez les informations dans la colonne posant problème.

Code d’erreur : ParquetInvalidDecimalPrecisionScale

  • Message : Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.

  • Cause : Le schéma n’est pas valide.

  • Recommandation : Vérifiez la précision et l’échelle de la colonne posant problème.

Code d’erreur : ParquetColumnNotFound

  • Message : Column %column; does not exist in Parquet file.

  • Cause : Le schéma source est incompatible avec le schéma du récepteur.

  • Recommendation : Vérifiez les mappages dans l’activité. Assurez-vous que la colonne source peut être mappée à la colonne du récepteur appropriée.

Code d’erreur : ParquetInvalidDataFormat

  • Message : Incorrect format of %srcValue; for converting to %dstType;.

  • Cause : Les données ne peuvent pas être converties dans le type spécifié dans mappings.source.

  • Recommendation : Revérifiez les données sources ou spécifiez le type de données approprié pour cette colonne dans le mappage des colonnes de l’activité de copie. Pour plus d’informations, consultez Formats de fichier et de codecs de compression pris en charge par l’activité de copie.

Code d’erreur : ParquetDataCountNotMatchColumnCount

  • Message : The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.

  • Cause : Incompatibilité entre le nombre de colonnes sources et le nombre de colonnes du récepteur.

  • Recommendation : Revérifiez que le nombre de colonnes sources est identique au nombre de colonnes du récepteur dans « mappage ».

Code d’erreur : ParquetDataTypeNotMatchColumnType

  • Message : The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.

  • Cause : Les données de la source ne peuvent pas être converties dans le type défini dans le récepteur.

  • Recommendation : Spécifiez un type correct dans mappage.sink.

Code d’erreur : ParquetBridgeInvalidData

  • Message : %message;

  • Cause : La valeur des données a dépassé la limite.

  • Recommendation : Retentez l’opération. Si le problème persiste, contactez-nous.

Code d’erreur : ParquetUnsupportedInterpretation

  • Message : The given interpretation '%interpretation;' of Parquet format is not supported.

  • Cause : Ce scénario n’est pas pris en charge.

  • Recommendation : « ParquetInterpretFor » ne doit pas être « sparkSql ».

Code d’erreur : ParquetUnsupportFileLevelCompressionOption

  • Message : File level compression is not supported for Parquet.

  • Cause : Ce scénario n’est pas pris en charge.

  • Recommendation : Supprimez « CompressionType » dans la charge utile.

Code d’erreur : UserErrorJniException

  • Message : Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]

  • Cause : Une machine virtuelle Java ne peut pas être créée, car des arguments (généraux) non conformes sont définis.

  • Recommendation : Connectez-vous à la machine qui héberge chaque nœud de votre IR auto-hébergé. Vérifiez que la variable système est définie correctement, comme suit : _JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G. Redémarrez tous les nœuds IR, puis réexécutez le pipeline.

Dépassement arithmétique

  • Symptômes : Un message d’erreur s’est produit pendant la copie de fichiers Parquet : Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common

  • Cause : Pour l’heure, seules les décimales d’une précision <= 38 et une longueur de la partie entière <= 20 sont prises en charge lors de la copie de fichiers d’Oracle vers Parquet.

  • Résolution : Pour contourner le problème, vous pouvez convertir toutes les colonnes avec ce problème en VARCHAR2.

Absence de constante enum

  • Symptômes : Un message d’erreur s’est affiché pendant la copie des données au format Paquet : java.lang.IllegalArgumentException:field ended by &apos;;&apos; ou java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test.

  • Cause :

    Le problème peut être dû à la présence d’espaces blancs ou de caractères spéciaux non pris en charge (comme ,;{}()\n\t=) dans le nom de colonne, car Parquet ne prend pas en charge un tel format.

    Par exemple, le nom de colonne contoso(test) analyse le type entre crochets dans le codeTokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");. L’erreur est levée, car il n’existe pas de type « test ».

    Pour vérifier les types pris en charge, accédez au site GitHub apache/parquet-mr site.

  • Résolution :

    Revérifiez ce qui suit :

    • Le nom de la colonne du récepteur contient des espaces blancs.
    • La première ligne contenant des espaces blancs sert de nom de colonne.
    • Le type OriginalType est pris en charge. Essayez d’éviter d’utiliser ces caractères spéciaux : ,;{}()\n\t=.

Code d’erreur : ParquetDateTimeExceedLimit

  • Message : The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.

  • Cause : Si la valeur DateHeure est « 0001-01-01 00:00:00 », cela peut être dû à la différence entre le calendrier julien et le calendrier grégorien. Pour plus d’informations, consultez Différence entre les dates du calendrier julier et du calendrier grégorien proleptique.

  • Résolution : Vérifiez la valeur des graduations et évitez d’utiliser la valeur DateTime « 0001-01-01 00:00:00 ».

Code d’erreur : ParquetInvalidColumnName

  • Message : The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]

  • Cause : Le nom du domaine contient des caractères non valides.

  • Résolution : ajoutez ou modifiez le mappage de colonnes pour que le nom de la colonne réceptrice soit valide.

Le fichier créé par l’activité de copie de données extrait une table qui contient une colonne varbinary(max)

  • Symptômes : Le fichier Parquet créé par l’activité de copie de données extrait une table qui contient une colonne varbinary(max).

  • Cause : Ce problème est causé par le bogue de la bibliothèque Parquet-mr concernant la lecture des grandes colonnes.

  • Résolution : Essayez de générer des fichiers plus petits (taille < 1 Go) avec une limite de 1 000 lignes par fichier.

Si vous avez besoin d’une aide supplémentaire, essayez les ressources suivantes :