Поделиться через


Устранение неполадок с соединителем формата Parquet в Фабрике данных Azure и Azure Synapse

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье приведены рекомендации по устранению распространенных проблем с соединителем формата Parquet, возникающих в Фабрике данных Azure и Synapse Analytics.

Код ошибки: ParquetJavaInvocationException

  • Сообщение. An error occurred when invoking java, message: %javaException;.

  • Причины и рекомендации. К этой ошибке могут привести различные причины. Ниже приведен список возможных причин и соответствующие рекомендации.

    Анализ причин Рекомендация
    Если в сообщении об ошибке есть строки java.lang.OutOfMemory, пространство кучи Java и doubleCapacity, обычно это ошибка управления памятью в старой версии среды выполнения интеграции. Если вы используете локальную среду IR версии ниже 3.20.7159.1, рекомендуется обновить ее до последней версии.
    Если в сообщении об ошибке есть строка java.lang.OutOfMemory, среда выполнения интеграции имеет недостаточно ресурсов для обработки файлов. Ограничьте количество параллельных выполнений в среде выполнения интеграции. Для локальной среды IR увеличьте ресурсы компьютера. Объем его памяти должен быть не меньше 8 ГБ.
    Если сообщение об ошибке содержит строку NullPointerReference, причиной может быть временная проблема. Повторите операцию. Если проблема не исчезнет, обратитесь в службу поддержки.

Код ошибки: ParquetInvalidFile

  • Сообщение. File is not a valid Parquet file.

  • Причина. Это проблема с файлом Parquet.

  • Рекомендация. Убедитесь в том, что входные данные являются допустимым PARQUET-файлом.

Код ошибки: ParquetNotSupportedType

Код ошибки: ParquetMissedDecimalPrecisionScale

  • Сообщение. Decimal Precision or Scale information is not found in schema for column: %column;.

  • Причина. Была предпринята попытка проанализировать точность числа и количество знаков после запятой, но эти сведения не были предоставлены.

  • Рекомендация. Источник не вернул правильные сведения о точности числа и количестве знаков после запятой. Проверьте наличие проблем в столбце.

Код ошибки: ParquetInvalidDecimalPrecisionScale

  • Сообщение. Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.

  • Причина: схема недопустима.

  • Рекомендация. Проверьте наличие проблем с точностью числа и количеством знаков после запятой в столбце.

Код ошибки: ParquetColumnNotFound

  • Сообщение. Column %column; does not exist in Parquet file.

  • Причина. Схема источника не соответствует схеме приемника.

  • Рекомендация. Проверьте сопоставления в действии. Убедитесь в том, что исходный столбец может быть сопоставлен с нужным столбцом приемника.

Код ошибки: ParquetInvalidDataFormat

  • Сообщение. Incorrect format of %srcValue; for converting to %dstType;.

  • Причина. Невозможно преобразовать данные в тип, указанный в mappings.source.

  • Рекомендация. Тщательно проверьте исходные данные или укажите правильный тип данных для этого столбца в сопоставлении столбцов действия копирования. Дополнительные сведения см. в разделе Поддерживаемые форматы файлов и кодеки сжатия для действия копирования.

Код ошибки: ParquetDataCountNotMatchColumnCount

  • Сообщение. The data count in a row '%sourceColumnCount;' does not match the column count '%sinkColumnCount;' in given schema.

  • Причина. Несоответствие числа столбцов в источнике и приемнике.

  • Рекомендация. Тщательно проверьте, совпадает ли в сопоставлении число столбцов в источнике с числом столбцов в приемнике.

Код ошибки: ParquetDataTypeNotMatchColumnType

  • Сообщение. The data type %srcType; is not match given column type %dstType; at column '%columnIndex;'.

  • Причина. Данные из источника невозможно преобразовать в тип, определенный в приемнике.

  • Рекомендация. Укажите правильный тип в mapping.sink.

Код ошибки: ParquetBridgeInvalidData

  • Сообщение. %message;

  • Причина. Значение данных превысило предел.

  • Рекомендация. Повторите операцию. Если проблема не исчезла, обратитесь к нам.

Код ошибки: ParquetUnsupportedInterpretation

  • Сообщение. The given interpretation '%interpretation;' of Parquet format is not supported.

  • Причина. Этот сценарий не поддерживается.

  • Рекомендация. Параметр ParquetInterpretFor не должен иметь значение sparkSql.

Код ошибки: ParquetUnsupportFileLevelCompressionOption

  • Сообщение. File level compression is not supported for Parquet.

  • Причина. Этот сценарий не поддерживается.

  • Рекомендация. Удалите CompressionType в полезных данных.

Код ошибки: UserErrorJniException

  • Сообщение. Cannot create JVM: JNI return code [-6][JNI call failed: Invalid arguments.]

  • Причина. Невозможно создать виртуальную машину Java, так как некоторые (глобальные) аргументы заданы недопустимым образом.

  • Рекомендация. Войдите на каждый компьютер, на котором размещается узел локальной среды IR. Убедитесь в том, что системная переменная задана правильно: _JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G. Перезапустите все узлы IR, а затем повторно запустите конвейер.

Переполнение при арифметической операции

  • Симптомы. При копировании файлов Parquet возникла ошибка: Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common.

  • Причина. В настоящее время при копировании файлов из Oracle в Parquet поддерживаются только десятичные значения с точностью <= 38 и длиной целочисленной части <= 20.

  • Решение. В качестве обходного пути можно преобразовать любые проблемные столбцы в VARCHAR2.

Нет константы перечисления

  • Симптомы. Произошла ошибка при копировании данных в формат Parquet: java.lang.IllegalArgumentException:field ended by &apos;;&apos; или java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test.

  • Причина.

    Эта ошибка может быть вызвана пробелами или неподдерживаемыми специальными символами (такими как ;{}()\n\t=) в имени столбца, так как Parquet не поддерживает такой формат.

    Например, в имени столбца contoso(test) тип в скобках будет проанализирован этим кодом как Tokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");. Ошибка возникает из-за отсутствия такого тестового типа.

    Просмотреть поддерживаемые типы можно на сайте GitHub apache/parquet-mr.

  • Решение.

    Проверьте следующее.

    • В имени столбца приемника есть пробелы.
    • В качестве имени столбца используется первая строка с пробелами.
    • Поддерживается тип OriginalType. Старайтесь не использовать следующие специальные символы: ,;{}()\n\t=.

Код ошибки: ParquetDateTimeExceedLimit

  • Сообщение. The Ticks value '%ticks;' for the datetime column must be between valid datetime ticks range -621355968000000000 and 2534022144000000000.

  • Причина. Если значение datetime равно "0001-01-01 00:00:00", это может быть вызвано различиями между юлианским и григорианским календарями. Дополнительные сведения см. в статье Различие между датами юлианского и пролептического григорианского календарей.

  • Решение. Проверьте значение числа тактов и старайтесь не использовать значение datetime "0001-01-01 00:00:00".

Код ошибки: ParquetInvalidColumnName

  • Сообщение. The column name is invalid. Column name cannot contain these character:[,;{}()\n\t=]

  • Причина. Название столбца содержит недопустимые символы.

  • Решение. Добавьте или измените сопоставление столбцов, чтобы имя столбца приемника было допустимым.

В файл, созданный действием копирования данных, извлекается таблица, содержащая столбец varbinary (max).

  • Симптомы. В PARQUET-файл, созданный действием копирования данных, извлекается таблица, содержащая столбец varbinary (max).

  • Причина. Эта проблема вызвана ошибкой в библиотеке Parquet-mr, возникающей при чтении большого столбца.

  • Решение. Попробуйте создавать небольшие файлы (< 1 ГБ) с ограничением в 1000 строк на файл.

Для получения дополнительных сведений об устранении неполадок воспользуйтесь следующими ресурсами: