Problemen met Azure Cosmos DB connector oplossen in Azure Data Factory en Azure Synapse

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Dit artikel bevat suggesties voor het oplossen van veelvoorkomende problemen met de Azure Cosmos DB- en Azure Cosmos DB-connectors (SQL API) in Azure Data Factory en Azure Synapse.

Foutbericht: Aanvraaggrootte is te groot

  • Symptomen: wanneer u gegevens kopieert naar Azure Cosmos DB met een standaard batchgrootte voor schrijven, krijgt u de volgende foutmelding: Request size is too large.

  • Oorzaak: Azure Cosmos DB de grootte van één aanvraag beperkt tot 2 MB. De formule is aanvraaggrootte = schrijfbatchgrootte van * één documentgrootte. Als de documentgrootte groot is, resulteert het standaardgedrag in een aanvraaggrootte die te groot is. U kunt de grootte van de schrijfbatch afstemmen.

  • Oplossing: verminder in de sink voor kopieeractiviteiten de waarde voor de schrijfbatchgrootte (de standaardwaarde is 10000).

Foutbericht: Schending van unieke indexbeperking

  • Symptomen: wanneer u gegevens naar Azure Cosmos DB kopieert, krijgt u de volgende foutmelding:

    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.\"]}...

  • Oorzaak: Er zijn twee mogelijke oorzaken:

    • Oorzaak 1: Als u Invoegen als schrijfgedrag gebruikt, betekent deze fout dat uw brongegevens rijen of objecten met dezelfde id hebben.
    • Oorzaak 2: Als u Upsert als schrijfgedrag gebruikt en u een andere unieke sleutel in de container in stelt, betekent deze fout dat uw brongegevens rijen of objecten hebben met verschillende ID's, maar dezelfde waarde voor de gedefinieerde unieke sleutel.
  • Oplossing:

    • Bij oorzaak 1 stelt u Upsert in als schrijfgedrag.
    • Zorg er bij oorzaak 2 voor dat elk document een andere waarde heeft voor de gedefinieerde unieke sleutel.

Foutbericht: Aanvraagsnelheid is groot

  • Symptomen: wanneer u gegevens naar Azure Cosmos DB kopieert, krijgt u de volgende foutmelding:

    Type=Microsoft.Azure.Documents.DocumentClientException, Message=Message: {"Errors":["Request rate is large"]}

  • Oorzaak: Het aantal gebruikte aanvraageenheden (AANVRAAGeenheden) is groter dan de beschikbare AANVRAAG's die zijn geconfigureerd in Azure Cosmos DB. Zie Aanvraageenheden in Azure Cosmos DB voor meer informatie over het berekenen Azure Cosmos DB.

  • Oplossing: probeer een van de volgende twee oplossingen:

    • Verhoog het aantal container-RUs naar een hogere waarde in Azure Cosmos DB. Met deze oplossing worden de prestaties van de kopieeractiviteit verbeterd, maar worden er meer kosten in Azure Cosmos DB.
    • Verklein writeBatchSize tot een lagere waarde, zoals 1000, en verminder parallelCopies tot een lagere waarde, zoals 1. Deze oplossing vermindert de prestaties van de kopieeruitvoering, maar er worden geen extra kosten in Azure Cosmos DB.

Kolommen ontbreken in kolomtoewijzing

  • Symptomen: wanneer u een schema importeert voor Azure Cosmos DB voor kolomtoewijzing, ontbreken er enkele kolommen.

  • Oorzaak: Azure Data Factory en Synapse-pijplijnen leiden het schema af van de eerste 10 Azure Cosmos DB documenten. Als sommige documentkolommen of -eigenschappen geen waarden bevatten, wordt het schema niet gedetecteerd en wordt het daarom niet weergegeven.

  • Oplossing: u kunt de query afstemmen zoals wordt weergegeven in de volgende code om af te dwingen dat de kolomwaarden met lege waarden worden weergegeven in de resultatenset. Stel dat de onmogelijke kolom ontbreekt in de eerste tien documenten). U kunt de kolom ook handmatig toevoegen voor toewijzing.

    select c.company, c.category, c.comments, (c.impossible??'') as impossible from c
    

Foutbericht: De GuidRepresentation voor de lezer is CSharpLegacy

  • Symptomen: wanneer u gegevens kopieert van Azure Cosmos DB MongoAPI of MongoDB met het veld Universally Unique Identifier (UUID), wordt de volgende fout weergegeven:

    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,’“,

  • Oorzaak: Er zijn twee manieren om de UUID in Binary JSON (BSON) weer te geven: UuidStardard en UuidLegacy. Standaard wordt UuidLegacy gebruikt om gegevens te lezen. Er wordt een foutbericht weergegeven als uw UUID-gegevens in MongoDB UuidStandard zijn.

  • Oplossing: voeg in het MongoDB connection string de optie uuidRepresentation=standard toe. Zie MongoDB-connection stringvoor meer informatie.

Foutcode: CosmosDbSqlApiOperationFailed

  • Bericht:CosmosDbSqlApi operation Failed. ErrorMessage: %msg;.

  • Oorzaak: Een probleem met de bewerking CosmosDbSqlApi. Dit geldt met name voor de Cosmos DB (SQL API).

  • Aanbeveling: als u de foutdetails wilt controleren, raadpleegt Azure Cosmos DB Help-document. Neem contact op met het team Azure Cosmos DB hulp.

Volgende stappen

Probeer de volgende resources voor meer hulp bij het oplossen van problemen: