Megosztás a következőn keresztül:


Az Azure Cosmos DB-összekötő hibaelhárítása az Azure Data Factoryben és az Azure Synapse-ban

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk javaslatokat tartalmaz az Azure Cosmos DB és az Azure Cosmos DB for NoSQL-összekötőkkel kapcsolatos gyakori problémák elhárításához az Azure Data Factoryben és az Azure Synapse-ban.

Hibaüzenet: A kérelem mérete túl nagy

  • Tünetek: Ha adatokat másol az Alapértelmezett írási kötegmérettel rendelkező Azure Cosmos DB-be, a következő hibaüzenet jelenik meg: Request size is too large.

  • Ok: Az Azure Cosmos DB egyetlen kérelem méretét 2 MB-ra korlátozza. A képlet a kérelem mérete = egy dokumentumméret * írási köteg mérete. Ha a dokumentum mérete nagy, az alapértelmezett viselkedés túl nagy kérésméretet eredményez.

  • Megoldás:
    Az írási köteg méretét hangolhatja. A másolási tevékenység fogadójában csökkentse az írási köteg méretét (az alapértelmezett érték 10000).
    Ha az írási köteg méretének 1-esre csökkentése még mindig nem működik, módosítsa az Azure Cosmos DB SQL API-t v2-ről V3-ra. A konfiguráció elvégzéséhez két lehetőség közül választhat:

    • 1. lehetőség: Módosítsa a hitelesítési típust szolgáltatásnévre vagy rendszer által hozzárendelt felügyelt identitásra vagy felhasználó által hozzárendelt felügyelt identitásra.
    • 2. lehetőség: Ha továbbra is a fiókkulcs-hitelesítést szeretné használni, kövesse az alábbi lépéseket:
      1. Hozzon létre egy Azure Cosmos DB for NoSQL társított szolgáltatást.

      2. Frissítse a csatolt szolgáltatást az alábbi sablonnal.

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

Hibaüzenet: Egyedi indexkorlátozás megsértése

  • Tünetek: Amikor adatokat másol az Azure Cosmos DB-be, a következő hibaüzenet jelenik meg:

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

  • Ok: Két lehetséges ok van:

    • 1. ok: Ha írási viselkedésként beszúrást használ, ez a hiba azt jelenti, hogy a forrásadatok sorai vagy objektumai azonos azonosítóval rendelkeznek.
    • 2. ok: Ha írási viselkedésként az Upsertet használja, és egy másik egyedi kulcsot állít be a tárolóhoz, ez a hiba azt jelenti, hogy a forrásadatok sorai vagy objektumai különböző azonosítókkal vannak elosztva, de a megadott egyedi kulcs értéke megegyezik.
  • Megoldás:

    • Az 1. ok esetén állítsa be az Upsertet írási viselkedésként.
    • A 2. ok esetén győződjön meg arról, hogy minden dokumentum más értékkel rendelkezik a meghatározott egyedi kulcshoz.

Hibaüzenet: A kérések aránya nagy

  • Tünetek: Amikor adatokat másol az Azure Cosmos DB-be, a következő hibaüzenet jelenik meg:

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

  • Ok: A használt kérelemegységek (kérelemegységek) száma nagyobb, mint az Azure Cosmos DB-ben konfigurált rendelkezésre álló kérelemegységek száma. Ha tudni szeretné, hogyan számítja ki az Azure Cosmos DB a kérelemegységeket az Azure Cosmos DB-ben, olvassa el a kérelemegységeket az Azure Cosmos DB-ben.

  • Megoldás: Próbálkozzon az alábbi két megoldás egyikével:

    • Növelje a tároló kérelemegység-számát nagyobb értékre az Azure Cosmos DB-ben. Ez a megoldás javítja a másolási tevékenység teljesítményét, de több költséggel jár az Azure Cosmos DB-ben.
    • Csökkentse a writeBatchSize értéket kisebb értékre,például 1000-re, és csökkentse a párhuzamos másolatokat egy kisebb értékre, például 1-re. Ez a megoldás csökkenti a másolási futtatási teljesítményt, de az Azure Cosmos DB-ben nem jár több költséggel.

Hiányzó oszlopok az oszlopleképezésben

  • Tünetek: Ha az Azure Cosmos DB sémáját importálja az oszlopleképezéshez, néhány oszlop hiányzik.

  • Ok: Az Azure Data Factory és a Synapse-folyamatok a sémát az első 10 Azure Cosmos DB-dokumentumból következtetik. Ha egyes dokumentumoszlopok vagy tulajdonságok nem tartalmaznak értékeket, a rendszer nem észleli a sémát, ezért nem jelenik meg.

  • Megoldás: A lekérdezést az alábbi kódban látható módon hangolhatja, hogy az oszlopértékek üres értékekkel jelenjenek meg az eredményhalmazban. Tegyük fel, hogy a lehetetlen oszlop hiányzik az első 10 dokumentumban). Másik lehetőségként manuálisan is hozzáadhatja az oszlopot a leképezéshez.

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

Hibaüzenet: Az olvasó guidRepresentation tulajdonsága a CSharpLegacy

  • Tünetek: Amikor adatokat másol az Azure Cosmos DB MongoAPI-ból vagy a MongoDB-ből az univerzálisan egyedi azonosító (UUID) mezővel, a következő hibaüzenet jelenik meg:

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

  • Ok: Az UUID kétféleképpen ábrázolható bináris JSON-ban (BSON): UuidStardard és UuidLegacy. Alapértelmezés szerint az UuidLegacy az adatok olvasására szolgál. Hibaüzenet jelenik meg, ha a MongoDB UUID-adatai UuidStandard értékűek.

  • Megoldás: A MongoDB kapcsolati sztring adja hozzá az uuidRepresentation=standard beállítást. További információ: MongoDB kapcsolati sztring.

Hibakód: CosmosDbSqlApiOperationFailed

  • Üzenet: CosmosDbSqlApi operation Failed. ErrorMessage: %msg;.

  • Ok: Probléma a CosmosDbSqlApi művelettel. Ez kifejezetten az Azure Cosmos DB for NoSQL-összekötőre vonatkozik.

  • Javaslat: A hiba részleteinek ellenőrzéséhez tekintse meg az Azure Cosmos DB súgódokumentumát. További segítségért forduljon az Azure Cosmos DB csapatához.

Hibakód: CosmosDbSqlApiPartitionKeyExceedStorage

  • Üzenet: 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.

  • Ok: Az egyes logikai partíciók adatmérete korlátozott, és a partíciókulcs elérte a logikai partíció maximális méretét.

  • Javaslat: Ellenőrizze az Azure Cosmos DB partíciótervét. További információ: Logikai partíciók.

További hibaelhárítási segítségért próbálja ki az alábbi erőforrásokat: