Szerkesztés

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


Gyakori kérdések a hierarchikus partíciókulcsokkal kapcsolatban az Azure Cosmos DB-ben

A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal

A hierarchikus partíciókulcsok vagy alpartitonizáció lehetővé teszi, hogy akár háromszintű hierarchiát konfiguráljon a partíciókulcsokhoz az adatterjesztés további optimalizálása és a nagyobb skálázás engedélyezése érdekében. Ez a cikk az Azure Cosmos DB hierarchikus partíciókulcsokkal kapcsolatos gyakori kérdésekre ad választ.

Hozzáadhatok hierarchikus partíciókulcsokat a meglévő tárolókhoz?

A hierarchikus partíciókulcsok meglévő tárolókhoz való hozzáadása nem támogatott. Létrehozhat azonban egy új tárolót a kívánt hierarchikus partíciókulccsal, és futtathat egy tárolómásolási feladatot az adatok másolásához a meglévő tárolóból az újba. Az adatok másolásáról további információt a tárolómásolási feladatokban talál.

Van tárolási korlát a logikai partíciókulcs méretére vonatkozóan?

Igen. Az Azure Cosmos DB-hez hasonlóan a logikai partíció mérete továbbra is 20 GB-ra korlátozódik. A hierarchikus partíciókulcsok esetén azonban a logikai partíció már a teljes partíciókulcs elérési útja. Ha például a TenantId –> UserId partíciót particionálta, akkor egy logikai partíció Contoso_Alicelehet például. Az alrészezés használata azt jelenti, hogy 20 GB-os adatokkal rendelkezhet, ahol a partíciókulcs értéke.Contoso_Alice A "Contoso" adatai számára engedélyezett tárterület gyakorlatilag 20 GB * a "Contoso" bérlő egyedi felhasználói azonosítóinak száma.

Módosulnak a fizikai partíciók tárolási és ru/s korlátai?

Szám Az Azure Cosmos DB-hez hasonlóan egy fizikai partíció is 50 GB tárterületet képes tárolni, és akár 10 000 RU/s-t is képes kiszolgálni. Hierarchikus partíciókulcsok esetén azonban, ha egy adott partíciókulcs előtagjának adatai – például a TenantId – több fizikai partícióban vannak, az alrészezés azt jelenti, hogy az egyetlen TenantId-hez elérhető ru/s értéke meghaladhatja a 10 000 RU/s-t.

Mi történik, ha lekérdezem, és csak egy partíciókulcsot ad meg az elérési út közepén?

A lekérdezés egy partíciók közötti lekérdezés. Ha például a TenantId –> UserId alapján particionál, és csak a UserId azonosítót adja meg a lekérdezésben, ez a lekérdezés minden fizikai partícióra ki van osztva.

Ha hatékonyan szeretné irányítani a lekérdezést a TenantId –> UserId példa használatával, két lehetőség közül választhat:

  • Adja meg a TenantId azonosítót. A lekérdezések a TenantId-adatokat tartalmazó összes fizikai partícióra kerülnek.
  • Adja meg a TenantId és a UserId azonosítót is. A lekérdezések a TenantId és az adott UserId azonosítót tartalmazó egyetlen fizikai partícióra kerülnek.

Létre kell hoznom egy új tulajdonságot a dokumentumaimban a funkció használatához?

Szám Adja meg a tároló létrehozásakor használni kívánt partíciókulcs-elérési utak hierarchiáját. Ha például a TenantId –> UserId szerint particionál, akkor nem kell új tulajdonságot létrehoznia az összefűzött értékekkel. Győződjön meg arról, hogy minden dokumentumhoz tartozik egy TenantId tulajdonság és egy UserId tulajdonság. További információkért tekintse meg az alrészelési kód példáit.

Létrehoztam egy olyan kulcshierarchiát, amely nem rendelkezik sok számossággal. Mit tegyek?

Előfordulhat, hogy olyan helyzetben van, amikor a számítási feladat csak néhány fizikai partíciót ér el az összes partícióból. Ez a forgatókönyv azt jelentheti, hogy a hierarchikus partíciókulcs egy vagy több szintje alacsony számossággal rendelkezik. A hibaelhárításhoz mindig javasoljuk a hierarchikus partíciókulcs újraépítését, és a DTS használatával módosíthatja a kulcsot, és átmásolhatja a tároló adatait az új tárolóba. Ha ez a lépés nem lehetséges, két áthidaló megoldást javasolunk az adatok egységes elosztásának biztosítására

  • 1. megközelítés:
  1. Létrehozhat egy 10 000-nél kevesebb kérelemegységet tartalmazó tárolót, hogy csak egy fizikai partícióval rendelkezzen.
  2. Körülbelül 5 GB adat betöltése annak érdekében, hogy ne legyenek partíciófelosztások.
  3. Skálázhat fel a kívánt kérelemegységekre, folytathatja az adatok betöltését, és az Azure Cosmos DB gondoskodik arról, hogy a fizikai partíciók egységesen legyenek felosztva.
  • 2. megközelítés:
  1. A teljes ajánlatot magasabb számú kérelemegységre emelheti, és betöltheti az összes adatot.
  2. Ezután végezze el a partícióegyesítést annak érdekében, hogy a számítási feladat partíciói ne töredezettek legyenek, és még eloszlása is legyen
  3. Az egyesítés befejezése után skálázhatja vissza az eredeti kívánt kérelemegység-számot.

Ha jobban szeretné szabályozni az egyes partíciók átviteli sebességét, az átviteli sebesség újraelosztásával biztosíthatja, hogy a számítási feladat által használt partíciók elegendő kérelemegységet rendelkezzenek a jövőbeli kérésekhez.

Következő lépések

  • További információ a hierarchikus partíciókulcsokról.