Ř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 ';'
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 závorkách z kódu
Tokenizer 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.
Související obsah
Další nápovědu k řešení potíží najdete v těchto zdrojích informací: