Řešení potíží s konektorem Služby Azure Cosmos DB 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 konektory Azure Cosmos DB a Azure Cosmos DB for NoSQL ve službě Azure Data Factory a Azure Synapse.
Chybová zpráva: Velikost požadavku je příliš velká
Příznaky: Při kopírování dat do služby Azure Cosmos DB s výchozí velikostí dávky zápisu se zobrazí následující chyba:
Request size is too large.
Příčina: Azure Cosmos DB omezuje velikost jednoho požadavku na 2 MB. Vzorec je velikost požadavku = velikost jednoho dokumentu * velikost dávky zápisu. Pokud je velikost dokumentu velká, výchozí chování způsobí příliš velkou velikost požadavku.
Řešení:
Velikost dávky zápisu můžete vyladit. V jímce aktivity kopírování snižte hodnotu velikosti dávky zápisu (výchozí hodnota je 1 0000).
Pokud zmenšíte hodnotu velikosti dávky zápisu na 1, stále nefunguje, změňte rozhraní SQL API služby Azure Cosmos DB z V2 na V3. K dokončení této konfigurace máte dvě možnosti:- Možnost 1: Změňte typ ověřování na spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem.
-
Možnost 2: Pokud stále chcete použít ověřování pomocí klíče účtu, postupujte takto:
Vytvořte propojenou službu Azure Cosmos DB for NoSQL.
Aktualizujte propojenou službu pomocí následující šablony.
{ "name": "<CosmosDbV3>", "type": "Microsoft.DataFactory/factories/linkedservices", "properties": { "annotations": [], "type": "CosmosDb", "typeProperties": { "useV3": true, "accountEndpoint": "<account endpoint>", "database": "<database name>", "accountKey": { "type": "SecureString", "value": "<account key>" } } } }
Chybová zpráva: Porušení omezení jedinečného indexu
Příznaky: Při kopírování dat do služby Azure Cosmos DB se zobrazí následující chyba:
Message=Partition range id 0 | Failed to import mini-batch. Exception was Message: {"Errors":["Encountered exception while executing function. Exception = Error: {\"Errors\":[\"Unique index constraint violation.\"]}...
Příčina: Existují dvě možné příčiny:
- Příčina 1: Pokud jako chování při zápisu použijete insert , znamená tato chyba, že zdrojová data mají řádky nebo objekty se stejným ID.
- Příčina 2: Pokud jako chování zápisu použijete upsert a nastavíte pro kontejner jiný jedinečný klíč, tato chyba znamená, že zdrojová data mají řádky nebo objekty s různými ID, ale stejnou hodnotu pro definovaný jedinečný klíč.
Řešení:
- Pro příčinu 1 nastavte upsert jako chování zápisu.
- V případě příčiny 2 se ujistěte, že má každý dokument jinou hodnotu definovaného jedinečného klíče.
Chybová zpráva: Frekvence požadavků je velká
Příznaky: Při kopírování dat do služby Azure Cosmos DB se zobrazí následující chyba:
Type=Microsoft.Azure.Documents.DocumentClientException, Message=Message: {"Errors":["Request rate is large"]}
Příčina: Počet použitých jednotek žádostí (RU) je větší než dostupné jednotky RU nakonfigurované ve službě Azure Cosmos DB. Informace o výpočtu RU služby Azure Cosmos DB najdete v tématu Jednotky žádostí ve službě Azure Cosmos DB.
Řešení: Vyzkoušejte některé z následujících dvou řešení:
- Zvyšte počet RU kontejneru na vyšší hodnotu ve službě Azure Cosmos DB. Toto řešení zlepší výkon aktivity kopírování, ale ve službě Azure Cosmos DB se za něj budou zvyšovat náklady.
- Snížit writeBatchSize na menší hodnotu, například 1000, a snížit paralelněCopies na menší hodnotu, například 1. Toto řešení sníží výkon spuštění kopírování, ale ve službě Azure Cosmos DB se neúčtují další náklady.
Chybějící sloupce v mapování sloupců
Příznaky: Při importu schématu pro mapování sloupců ve službě Azure Cosmos DB chybí některé sloupce.
Příčina: Kanály Azure Data Factory a Synapse odvozují schéma z prvních 10 dokumentů Azure Cosmos DB. Pokud některé sloupce nebo vlastnosti dokumentu neobsahují hodnoty, schéma se nezjistí a proto se nezobrazí.
Řešení: Dotaz můžete vyladit tak, jak je znázorněno v následujícím kódu, aby se hodnoty sloupců zobrazovaly v sadě výsledků s prázdnými hodnotami. Předpokládejme, že v prvních 10 dokumentech chybí nemožné sloupce). Případně můžete sloupec pro mapování přidat ručně.
select c.company, c.category, c.comments, (c.impossible??'') as impossible from c
Chybová zpráva: Identifikátor GuidRepresentation pro čtenáře je CSharpLegacy
Příznaky: Při kopírování dat z MongoAPI nebo MongoDB ve službě Azure Cosmos DB s polem UUID (Universally Unique Identifier) se zobrazí následující chyba:
Failed to read data via MongoDB client., Source=Microsoft.DataTransfer.Runtime.MongoDbV2Connector,Type=System.FormatException, Message=The GuidRepresentation for the reader is CSharpLegacy which requires the binary sub type to be UuidLegacy not UuidStandard.,Source=MongoDB.Bson,’“,
Příčina: Existují dva způsoby, jak znázorňovat UUID v binárním formátu JSON (BSON): UuidStandard a UuidLegacy. Ve výchozím nastavení se UuidLegacy používá ke čtení dat. Pokud data UUID v MongoDB jsou UuidStandard, zobrazí se chyba.
Řešení: V připojovací řetězec MongoDB přidejte uuidRepresentation=standard. Další informace najdete v tématu Připojovací řetězec MongoDB.
Kód chyby: CosmosDbSqlApiOperationFailed
Zpráva:
CosmosDbSqlApi operation Failed. ErrorMessage: %msg;.
Příčina: Problém s operací CosmosDbSqlApi To platí konkrétně pro konektor Azure Cosmos DB for NoSQL.
Doporučení: Pokud chcete zkontrolovat podrobnosti o chybě, přečtěte si dokument nápovědy ke službě Azure Cosmos DB. Pokud potřebujete další pomoc, obraťte se na tým služby Azure Cosmos DB.
Kód chyby: CosmosDbSqlApiPartitionKeyExceedStorage
Zpráva:
The size of data each logical partition can store is limited, current partitioning design and workload failed to store more than the allowed amount of data for a given partition key value.
Příčina: Velikost dat každého logického oddílu je omezená a klíč oddílu dosáhl maximální velikosti logického oddílu.
Doporučení: Zkontrolujte návrh oddílů Služby Azure Cosmos DB. Další informace naleznete v tématu Logické oddíly.
Související obsah
Další nápovědu k řešení potíží najdete v těchto zdrojích informací: