Řešení potíží s konektorem formátu Parquet ve službě Azure Data Factory a Azure Synapse

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek obsahuje návrhy pro řešení běžných problémů s konektorem formátu Parquet ve službě Azure Data Factory a Azure Synapse.

Kód chyby: ParquetJavaInvocationException

  • Zpráva: An error occurred when invoking java, message: %javaException;.

  • Příčiny a doporučení: K této chybě můžou vést různé příčiny. Projděte si následující seznam možných analýz příčin a souvisejících doporučení.

    Analýza příčin Doporučení
    Pokud chybová zpráva obsahuje řetězce java.lang.OutOfMemory, haldu Java a doubleCapacity, obvykle se jedná o problém se správou paměti ve staré verzi prostředí Integration Runtime. Pokud používáte místní prostředí IR a verze je starší než 3.20.7159.1, doporučujeme upgradovat na nejnovější verzi.
    Pokud chybová zpráva obsahuje řetězec java.lang.OutOfMemory, prostředí Integration Runtime nemá dostatek prostředků ke zpracování souborů. Omezte souběžná spuštění v prostředí Integration Runtime. V případě místního prostředí IR můžete vertikálně navýšit kapacitu na výkonný počítač s pamětí, která je rovna nebo větší než 8 GB.
    Pokud chybová zpráva obsahuje řetězec NullPointerReference, může se jednat o přechodnou chybu. Zkuste operaci zopakovat. Pokud problém přetrvává, obraťte se na podporu.

Kód chyby: ParquetInvalidFile

  • Zpráva: File is not a valid Parquet file.

  • Příčina: Jedná se o problém se souborem Parquet.

  • Doporučení: Zkontrolujte, jestli je vstup platným souborem Parquet.

Kód chyby: ParquetNotSupportedType

  • Zpráva: Unsupported Parquet type. PrimitiveType: %primitiveType; OriginalType: %originalType;.

  • Příčina: Formát Parquet není podporován v kanálech Azure Data Factory a Synapse.

  • Doporučení: Pečlivě zkontrolujte zdrojová data tak, že přejdete na Podporované formáty souborů a komprimační kodeky podle aktivity kopírování.

Kód chyby: ParquetMissedDecimalPrecisionScale

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

  • Příčina: Byla analyzována přesnost a měřítko čísel, ale nebyly poskytnuty žádné takové informace.

  • Doporučení: Zdroj nevrací správné informace o přesnosti a škálování. Zkontrolujte informace ve sloupci problému.

Kód chyby: ParquetInvalidDecimalPrecisionScale

  • Zpráva: Invalid Decimal Precision or Scale. Precision: %precision; Scale: %scale;.

  • Příčina: Schéma je neplatné.

  • Doporučení: Zkontrolujte přesnost a škálování ve sloupci problému.

Kód chyby: ParquetColumnNotFound

  • Zpráva: Column %column; does not exist in Parquet file.

  • Příčina: Zdrojové schéma neodpovídá schématu jímky.

  • Doporučení: Zkontrolujte mapování v aktivitě. Ujistěte se, že zdrojový sloupec je možné mapovat na správný sloupec jímky.

Kód chyby: ParquetInvalidDataFormat

  • Zpráva: Incorrect format of %srcValue; for converting to %dstType;.

  • Příčina: Data nelze převést na typ zadaný v mapách.source.

  • Doporučení: Pečlivě zkontrolujte zdrojová data nebo zadejte správný datový typ pro tento sloupec v mapování sloupce aktivity kopírování. Další informace naleznete v tématu Podporované formáty souborů a komprimační kodeky aktivitou kopírování.

Kód chyby: ParquetDataCountNotMatchColumnCount

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

  • Příčina: Neshoda mezi počtem zdrojových sloupců a počtem sloupců jímky.

  • Doporučení: Pečlivě zkontrolujte, jestli je počet zdrojových sloupců stejný jako počet sloupců jímky v "mapování".

Kód chyby: ParquetDataTypeNotMatchColumnType

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

  • Příčina: Data ze zdroje nelze převést na typ definovaný v jímce.

  • Doporučení: Zadejte správný typ v souboru mapping.sink.

Kód chyby: ParquetBridgeInvalidData

  • Zpráva: %message;

  • Příčina: Hodnota dat překročila limit.

  • Doporučení: Zkuste operaci zopakovat. Pokud problém přetrvává, kontaktujte nás.

Kód chyby: ParquetUnsupportedInterpretation

  • Zpráva: The given interpretation '%interpretation;' of Parquet format is not supported.

  • Příčina: Tento scénář není podporovaný.

  • Doporučení: ParquetInterpretFor by neměl být SparkSql.

Kód chyby: ParquetUnsupportFileLevelCompressionOption

  • Zpráva: File level compression is not supported for Parquet.

  • Příčina: Tento scénář není podporovaný.

  • Doporučení: V datové části odeberte "CompressionType".

Kód chyby: UserErrorJniException

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

  • Příčina: Virtuální počítač Java (JVM) nejde vytvořit, protože jsou nastavené některé neplatné (globální) argumenty.

  • Doporučení: Přihlaste se k počítači, který je hostitelem každého uzlu místního prostředí IR. Zkontrolujte, jestli je systémová proměnná správně nastavená, a to následujícím způsobem: _JAVA_OPTIONS "-Xms256m -Xmx16g" with memory bigger than 8 G. Restartujte všechny uzly IR a pak znovu spusťte kanál.

Aritmetické přetečení

  • Příznaky: Při kopírování souborů Parquet došlo k chybě: Message = Arithmetic Overflow., Source = Microsoft.DataTransfer.Common

  • Příčina: Při kopírování souborů z Oracle do Parquet se v současné době podporuje pouze desetinná čárka = <38 a délka celočíselné části <= 20.

  • Řešení: Jako alternativní řešení můžete převést všechny sloupce s tímto problémem na VARCHAR2.

Žádná konstanta výčtu

  • Příznaky: Při kopírování dat do formátu Parquet došlo k chybě: java.lang.IllegalArgumentException:field ended by &apos;;&apos;nebo: java.lang.IllegalArgumentException:No enum constant org.apache.parquet.schema.OriginalType.test.

  • Příčina:

    Problém může být způsobený prázdnými znaky nebo nepodporovanými speciálními znaky (například;{}()\n\t=) v názvu sloupce, protože Parquet takový formát nepodporuje.

    Například název sloupce, například contoso(test), parsuje typ v hranatých závorkách z kóduTokenizer st = new Tokenizer(schemaString, " ;{}()\n\t");. Chyba se vyvolá, protože neexistuje takový typ "test".

    Pokud chcete zkontrolovat podporované typy, přejděte na web Apache/parquet-mr GitHubu.

  • Řešení:

    Pečlivě zkontrolujte, jestli:

    • V názvu sloupce jímky jsou prázdné mezery.
    • První řádek s prázdnými mezerami se použije jako název sloupce.
    • Typ OriginalType je podporován. Snažte se vyhnout použití těchto speciálních znaků: ,;{}()\n\t=.

Kód chyby: ParquetDateTimeExceedLimit

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

  • Příčina: Pokud je hodnota data a času 0001-01-01 00:00:00, může být způsobena rozdílem mezi Julian Calendarem a Gregoriánským kalendářem. Další podrobnosti najdete v tématu Rozdíl mezi Julianem a proleptickým kalendářním kalendářním datem.

  • Řešení: Zkontrolujte hodnotu záškrtů a nepoužívejte hodnotu datetime 0001-01-01 00:00:00.00.

Kód chyby: ParquetInvalidColumnName

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

  • Příčina: Název sloupce obsahuje neplatné znaky.

  • Řešení: Přidejte nebo upravte mapování sloupců tak, aby název sloupce jímky byl platný.

Soubor vytvořený aktivitou kopírování dat extrahuje tabulku obsahující sloupec varbinary (max).

  • Příznaky: Soubor Parquet vytvořený aktivitou kopírování dat extrahuje tabulku, která obsahuje sloupec varbinary (max).

  • Příčina: Příčinou tohoto problému je chyba knihovny Parquet-mr při čtení velkého sloupce.

  • Řešení: Zkuste vygenerovat menší soubory (velikost < 1G) s omezením 1000 řádků na soubor.

Další nápovědu k řešení potíží najdete v těchto zdrojích informací: