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:
Hozzon létre egy Azure Cosmos DB for NoSQL társított szolgáltatást.
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.
Kapcsolódó tartalom
További hibaelhárítási segítségért próbálja ki az alábbi erőforrásokat:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: