Ingestion batching szabályzat

Áttekintés

Az üzenetsorba helyezett betöltési folyamat során a szolgáltatás úgy optimalizálja az átviteli sebességet, hogy a kis bemeneti adattömböket a betöltés előtt összevonja. A kötegelés csökkenti a várólistán lévő betöltési folyamat által felhasznált erőforrásokat, és nem igényel betöltés utáni erőforrásokat a nem kötegelt betöltés által létrehozott kis adathardvek optimalizálásához.

A betöltés előtti kötegelés hátránya a kényszerített késleltetés. Ezért az adatbetöltés kérésétől a lekérdezésre kész adatok nagyobbakig tartó, végpontok közötti idő.

A szabályzat meghatározásakor IngestionBatching egyensúlyt kell találnia az átviteli sebesség és az idő késleltetésének optimalizálása között. Ez a szabályzat az üzenetsoros betöltésre vonatkozik. Meghatározza a kis blobok együttes kötegelése esetén megengedett maximális kényszerített késleltetést. További információ a kötegelési szabályzatparancsok használatáról és az átviteli sebesség optimalizálásáról:

Köteg lezárása

A tömeges betöltéshez optimális mérete körülbelül 1 GB tömörítetlen adat. A sokkal kevesebb adattal rendelkező blobok betöltése nem optimális, ezért az üzenetsoros betöltés során a szolgáltatás egyesével köti össze a kis blobokat.

Az alábbi lista az alapszintű kötegelési szabályzat eseményindítóit mutatja be a kötegek lezárásához. Az első feltétel teljesülésekor a köteg le van zárva és betöltve:

  • Size: A köteg méretkorlátja elérte vagy túllépte
  • Count: Elérte a Batch-fájlszám korlátját
  • Time: A kötegelési idő lejárt

A IngestionBatching szabályzat beállítható adatbázisokon vagy táblákon. Az alapértelmezett értékek a következők: 5 perc maximális késleltetési idő, 1000 elem, 1 GB teljes méret.

Fontos

Ennek a politikának a nagyon kis értékekre való beállításának hatása a fürt COGS-jének (eladott áruk költségeinek) növekedése és a teljesítmény csökkenése. Emellett a kötegelési szabályzat értékeinek csökkentése a több betöltési folyamat párhuzamos kezelésének többletterhelése miatt a végpontok közötti betöltési késés növelését is eredményezheti.

Az alábbi lista az egy blobbetöltéshez kapcsolódó kötegek zárolásának feltételeit mutatja be. A kötegeket lezárják, és a feltételek teljesülése esetén betöltik:

  • SingleBlob_FlushImmediately: Egyetlen blob betöltése, mert a "FlushImmediately" beállítás be lett állítva
  • SingleBlob_IngestIfNotExists: Egyetlen blob betöltése, mert az "IngestIfNotExists" beállítás be lett állítva
  • SingleBlob_IngestByTag: Egyetlen blob betöltése, mert a "betöltési művelet" be lett állítva
  • SingleBlob_SizeUnknown: Egyetlen blob betöltése, mert a blob mérete ismeretlen

Ha a SystemFlush feltétel be van állítva, a rendszer kiürítésekor a rendszer lezár egy köteget. A paraméterkészlettel a SystemFlush rendszer kiüríti az adatokat, például fürtméretezés vagy a rendszerösszetevők belső alaphelyzetbe állítása miatt.

Alapértelmezett értékek és korlátok

Típus Tulajdonság Alapértelmezett Alacsony késési beállítás Minimális érték Maximális érték
Elemek száma MaximumNumberOfItems 500 500 1 25,000
Adatméret (MB) MaximumRawDataSizeMB 1024 1024 100 4096
Idő (mp) MaximumBatchingTimeSpan 300 20 - 30 10 1800

A végpontok közötti késés vezérlésének leghatékonyabb módja a betöltési kötegelési szabályzat használatával az időhatár módosítása tábla - vagy adatbázisszinten , a késési követelmények magasabb határának megfelelően. Az adatbázisszintű szabályzatok az adatbázis összes táblájára hatással vannak, amelyeken nincs megadva a táblaszintű szabályzat, valamint az újonnan létrehozott táblák.

Fontos

Ha túl alacsonyan állítja be a betöltési kötegelési szabályzat időhatárát alacsony bemeneti táblákon, további számítási és tárolási feladatok is előfordulhatnak, amikor a fürt megpróbálja optimalizálni az újonnan létrehozott adatszegélyeket. Az adathardvekről további információt a mértékek című témakörben talál.

Batch-adatok mérete

A kötegelési szabályzat adatmérete tömörítetlen adatokhoz van beállítva. Parquet-, AVRO- és ORC-fájlok esetén a rendszer a fájlméret alapján számítja ki a becslést. Tömörített adatok esetén a tömörítetlen adatok mérete a következőképpen lesz kiértékelve csökkenő pontossági sorrendben:

  1. Ha a tömörítetlen méretet a betöltési forrás beállításai között adja meg, akkor a rendszer ezt az értéket használja.
  2. A helyi fájlok SDK-kkal való betöltésekor a rendszer megvizsgálja a zip-archívumokat és a gzip-streameket, hogy felmérje a nyers méretüket.
  3. Ha a korábbi beállítások nem adnak meg adatméretet, a tömörített adatméretre egy tényezőt alkalmazunk a tömörítetlen adatméret becsléséhez.

Kötegelési késések

A késések számos olyan okból eredhetnek, amelyek a kötegelési szabályzat beállításaival orvosolhatók.

Ok Megoldás
Az adatkésés megfelel a time beállításnak, túl kevés adattal a vagy count a size korlát eléréséhez time A korlát csökkentése
Nem hatékony kötegelés nagy számú nagyon kis fájl miatt Növelje a forrásfájlok méretét. Ha a Kafka Sinkot használja, konfigurálja úgy, hogy ~100 KB-os vagy újabb adattömbökben küldjön adatokat. Ha sok kis fájllal rendelkezik, növelje a count (akár 2000-ig) értéket az adatbázis- vagy táblabetöltési szabályzatban.
Nagy mennyiségű tömörítetlen adat kötegelése Ez gyakori a Parquet-fájlok betöltésekor. A tábla- vagy adatbázis-kötegelési szabályzat növekményes csökkentése size 250 MB-ra, és ellenőrizze a javulást.
Hátralék, mert a fürt skálázva van Fogadja el az Azure Advisor javaslatait a fürt vertikális felskálázásához vagy vertikális felskálázásához. Másik lehetőségként manuálisan skálázhatja a fürtöt annak megtekintéséhez, hogy a hátralék bezárult-e. Ha ezek a lehetőségek nem működnek, forduljon az ügyfélszolgálathoz segítségért.