Dela via


Felsöka Azure Cosmos DB-anslutningsappen i Azure Data Factory och Azure Synapse

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln innehåller förslag på hur du felsöker vanliga problem med Azure Cosmos DB- och Azure Cosmos DB for NoSQL-anslutningsappar i Azure Data Factory och Azure Synapse.

Felmeddelande: Begärandestorleken är för stor

  • Symptom: När du kopierar data till Azure Cosmos DB med en standardstorlek för skrivbatch får du följande fel: Request size is too large.

  • Orsak: Azure Cosmos DB begränsar storleken på en enskild begäran till 2 MB. Formeln är begärandestorlek = enkel dokumentstorlek * skriv batchstorlek. Om dokumentstorleken är stor resulterar standardbeteendet i en för stor begärandestorlek.

  • Lösning:
    Du kan justera batchstorleken för skrivning. Minska värdet för skrivbatchstorleken i kopieringsaktivitetsmottagaren (standardvärdet är 10000).
    Om det fortfarande inte fungerar att minska värdet för skrivbatchstorleken till 1 ändrar du ditt Azure Cosmos DB SQL API från V2 till V3. För att slutföra den här konfigurationen har du två alternativ:

    • Alternativ 1: Ändra din autentiseringstyp till tjänstens huvudnamn eller systemtilldelade hanterade identitet eller användartilldelade hanterade identiteter.
    • Alternativ 2: Om du fortfarande vill använda kontonyckelautentisering följer du dessa steg:
      1. Skapa en länkad Azure Cosmos DB för NoSQL-länkad tjänst.

      2. Uppdatera den länkade tjänsten med följande mall.

        {
          "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>"
              }
            }
          }
        }
        

Felmeddelande: Överträdelse av unika indexbegränsningar

  • Symptom: När du kopierar data till Azure Cosmos DB får du följande fel:

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

  • Orsak: Det finns två möjliga orsaker:

    • Orsak 1: Om du använder Infoga som skrivbeteende innebär det här felet att källdata har rader eller objekt med samma ID.
    • Orsak 2: Om du använder Upsert som skrivbeteende och anger en annan unik nyckel till containern innebär det här felet att källdata har rader eller objekt med olika ID:n men samma värde för den definierade unika nyckeln.
  • Lösning:

    • För orsak 1 konfigurerar du Upsert som skrivbeteende.
    • För orsak 2 kontrollerar du att varje dokument har ett annat värde för den definierade unika nyckeln.

Felmeddelande: Begärandefrekvensen är stor

  • Symptom: När du kopierar data till Azure Cosmos DB får du följande fel:

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

  • Orsak: Antalet enheter för använda begäranden (RU:er) är större än de tillgängliga RU:er som konfigurerats i Azure Cosmos DB. Information om hur Azure Cosmos DB beräknar RU:er finns i Enheter för begäran i Azure Cosmos DB.

  • Lösning: Prova någon av följande två lösningar:

    • Öka antalet container-RU:er till ett större värde i Azure Cosmos DB. Den här lösningen förbättrar prestanda för kopieringsaktiviteten, men det medför mer kostnader i Azure Cosmos DB.
    • Minska writeBatchSize till ett mindre värde, till exempel 1 000, och minska parallelCopies till ett mindre värde, till exempel 1. Den här lösningen minskar prestanda för kopieringskörning, men det medför inte mer kostnader i Azure Cosmos DB.

Kolumner saknas i kolumnmappning

  • Symptom: När du importerar ett schema för Azure Cosmos DB för kolumnmappning saknas vissa kolumner.

  • Orsak: Azure Data Factory- och Synapse-pipelines härleder schemat från de första 10 Azure Cosmos DB-dokumenten. Om vissa dokumentkolumner eller egenskaper inte innehåller värden identifieras inte schemat och visas därför inte.

  • Lösning: Du kan justera frågan enligt följande kod för att tvinga kolumnvärdena att visas i resultatuppsättningen med tomma värden. Anta att den omöjliga kolumnen saknas i de första 10 dokumenten). Du kan också lägga till kolumnen för mappning manuellt.

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

Felmeddelande: GuidRepresentation för läsaren är CSharpLegacy

  • Symptom: När du kopierar data från Azure Cosmos DB MongoAPI eller MongoDB med fältet universellt unik identifierare (UUID) får du följande fel:

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

  • Orsak: Det finns två sätt att representera UUID i binary JSON (BSON): UuidStardard och UuidLegacy. Som standard används UuidLegacy för att läsa data. Du får ett felmeddelande om dina UUID-data i MongoDB är UuidStandard.

  • Lösning: I MongoDB-niska veze lägger du till alternativet uuidRepresentation=standard. Mer information finns i MongoDB niska veze.

Felkod: CosmosDbSqlApiOperationFailed

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

  • Orsak: Ett problem med CosmosDbSqlApi-åtgärden. Detta gäller specifikt för Azure Cosmos DB for NoSQL-anslutningsappen.

  • Rekommendation: Information om fel finns i hjälpdokumentet för Azure Cosmos DB. Kontakta Azure Cosmos DB-teamet om du vill ha mer hjälp.

Felkod: CosmosDbSqlApiPartitionKeyExceedStorage

  • Meddelande: 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.

  • Orsak: Datastorleken för varje logisk partition är begränsad och partitionsnyckeln har nått den maximala storleken på den logiska partitionen.

  • Rekommendation: Kontrollera partitionsdesignen för Azure Cosmos DB. Mer information finns i Logiska partitioner.

Om du vill ha mer felsökningshjälp kan du prova dessa resurser: