Azure Blob Storage és Data Lake Storage Gen2 kimenet a Stream Analyticsből
Az Azure Data Lake Storage Gen2 teszi az Azure Storage-t az azure-beli nagyvállalati adattavak készítésének alapjaként. A Data Lake Storage Gen2 úgy lett kialakítva, hogy több petabájtnyi információt kiszolgáljon, miközben több száz gigabites átviteli sebességet tart fenn. Segítségével könnyen kezelheti a nagy mennyiségű adatot. A Data Lake Storage Gen2 alapvető része egy hierarchikus névtér hozzáadása az Azure Blob Storage-hoz.
A Blob Storage költséghatékony és méretezhető megoldást kínál nagy mennyiségű strukturálatlan adat felhőben való tárolására. A Blob Storage-ról és annak használatáról az Azure Portallal való blobok feltöltése, letöltése és listázása című témakörben olvashat.
Feljegyzés
Az Avro- és Parquet-formátumokra vonatkozó viselkedésekkel kapcsolatos információkért tekintse meg az áttekintés kapcsolódó szakaszait.
Kimeneti konfiguráció
Az alábbi táblázat felsorolja a blob- vagy Data Lake Storage Gen2-kimenet létrehozásához használt tulajdonságneveket és azok leírását.
Tulajdonság neve | Leírás |
---|---|
Kimeneti alias | A lekérdezésekben használt felhasználóbarát név, amellyel a lekérdezés kimenetét erre a blobra irányíthatja. |
Tárfiók | Annak a tárfióknak a neve, ahová a kimenetet küldi. |
Tárfiók kulcsa | A tárfiókhoz társított titkos kulcs. |
Tároló | Logikai csoportosítás a Blob Storage-ban tárolt blobokhoz. Amikor feltölt egy blobot a Blob Storage-ba, meg kell adnia egy tárolót a blobhoz. A dinamikus tároló neve nem kötelező. Egy és csak egy dinamikus tárolót {field} támogat a tároló nevében. A mezőnek léteznie kell a kimeneti adatokban, és követnie kell a tárolónévházirendet.A mező adattípusának a következőnek kell lennie string : . Ha több dinamikus mezőt szeretne használni, vagy statikus szöveget szeretne kombinálni egy dinamikus mezővel, definiálhatja azt a lekérdezésben beépített sztringfüggvényekkel, például CONCAT és LTRIM . |
Eseményszerializációs formátum | A kimeneti adatok szerializálási formátuma. A JSON, a CSV, az Avro és a Parquet támogatott. A Delta Lake itt szerepel lehetőségként. Ha a Delta Lake van kiválasztva, az adatok Parquet formátumúak. További információ a Delta Lake-ről. |
Delta elérési út neve | Akkor szükséges, ha az esemény szerializálási formátuma Delta Lake. A Delta Lake-tábla megadott tárolón belüli írásához használt elérési út. Tartalmazza a tábla nevét. További információkért és példákért lásd : Írás Delta Lake-táblába. |
Írási mód | Az írási mód szabályozza, hogy az Azure Stream Analytics hogyan ír egy kimeneti fájlba. Pontosan egyszeri kézbesítés csak akkor történik, ha az írási mód egyszeri. További információért tekintse át a következő szakaszt. |
Partícióoszlop | Opcionális. A {field} kimeneti adatoktól a partícióig. Csak egy partícióoszlop támogatott. |
Elérésiút-minta | Akkor szükséges, ha az esemény szerializálási formátuma Delta Lake. A blobok megadott tárolón belüli írásához használt fájlútvonal-minta. Az elérésiút-mintában a dátum- és időváltozók egy vagy több példányát használhatja a blobok írási gyakoriságának megadásához: {date} , {time} . Ha az Írás mód egyszer van, akkor mindkettőt {date} és {time} . Egyéni blobparticionálással egyetlen egyéni {field} nevet adhat meg az eseményadatokból a blobok particionálásához. A mezőnév alfanumerikus, és szóközöket, kötőjeleket és aláhúzásjeleket tartalmazhat. Az egyéni mezőkre vonatkozó korlátozások a következők:
Ez a funkció lehetővé teszi egyéni dátum-/időformátum-meghatározó konfigurációk használatát az elérési úton. Az egyéni dátum-/időformátumokat egyenként kell megadni, és a {datetime:\<specifier>} kulcsszónak tartalmaznia kell. Az engedélyezett bemenetek a következőkyyyy : \<specifier> , MM , M , dd , d , H HH , mm , m , , ss vagy s . A {datetime:\<specifier>} kulcsszó többször is használható az egyéni dátum-/időkonfigurációk létrehozásához. Példák:
A létrehozott mappastruktúra időbélyege az UTC-t és nem a helyi időpontot követi. A System.Timestamp az időalapú particionáláshoz használt idő. A fájlelnevezés a következő konvenciót használja: {Path Prefix Pattern}/schemaHashcode_Guid_Number.extension Guid Itt egy blobfájlba való íráshoz létrehozott belső íróhoz rendelt egyedi azonosítót jelöli. A szám a blobblokk indexét jelöli. Példa kimeneti fájlokra:
A funkcióval kapcsolatos további információkért tekintse meg az Azure Stream Analytics egyéni blobkimenet particionálását. |
Dátumformátum | Akkor szükséges, ha az esemény szerializálási formátuma Delta Lake. Ha a dátum jogkivonata szerepel az előtag elérési útján, kiválaszthatja a fájlok rendszerezésének dátumformátumát. Például: YYYY/MM/DD . |
Időformátum | Akkor szükséges, ha az esemény szerializálási formátuma Delta Lake. Ha az időjogkivonatot az előtag elérési útján használja, adja meg a fájlok rendszerezésének időformátumát. |
Minimális sorok | A kötegenkénti minimális sorok száma. A Parquet esetében minden köteg létrehoz egy új fájlt. Az aktuális alapértelmezett érték 2000 sor, az engedélyezett maximális érték pedig 10 000 sor. |
Maximális idő | A kötegenkénti maximális várakozási idő. Ezután a köteg akkor is a kimenetbe lesz írva, ha a minimális sorkövetelmények nem teljesülnek. Az aktuális alapértelmezett érték 1 perc, az engedélyezett maximális érték pedig 2 óra. Ha a blobkimenet útvonalminta-gyakorisággal rendelkezik, a várakozási idő nem lehet magasabb a partíció időtartományánál. |
Kódolás | HA CSV- vagy JSON-formátumot használ, a kódolást meg kell adni. Jelenleg az UTF-8 az egyetlen támogatott kódolási formátum. |
Elválasztókarakter | Csak CSV-szerializálásra alkalmazható. A Stream Analytics számos gyakori elválasztó karaktert támogat a CSV-adatok szerializálásához. A támogatott értékek a következők: vessző, pontosvessző, szóköz, lap és függőleges sáv. |
Formátum | Csak JSON-szerializálásra alkalmazható. A sor elválasztva azt adja meg, hogy a kimenet úgy van formázva, hogy minden JSON-objektumot egy új sor választ el egymástól. Ha a Sor elválasztva lehetőséget választja, a JSON egyszerre egy objektumot olvas be. A teljes tartalom önmagában nem lenne érvényes JSON. A tömb azt adja meg, hogy a kimenet JSON-objektumok tömbjeként legyen formázva. Ez a tömb csak akkor lesz bezárva, ha a feladat leáll, vagy a Stream Analytics továbblép a következő időpontra. Általában célszerű sorhatárolt JSON-t használni, mert nincs szükség speciális kezelésre, amíg a kimeneti fájl még mindig be van írva. |
Pontosan egyszeri kézbesítés (nyilvános előzetes verzió)
A streambemenetek beolvasása esetén a végpontok közötti pontos kézbesítés azt jelenti, hogy a feldolgozott adatok egyszer, duplikációk nélkül kerülnek a Data Lake Storage Gen2 kimenetére. Ha a funkció engedélyezve van, a Stream Analytics-feladat nem garantálja az adatvesztést, és nem keletkeznek duplikációk kimenetként, a felhasználó által kezdeményezett újraindítás során az utolsó kimeneti időponttól kezdve. Leegyszerűsíti a streamelési folyamatot azáltal, hogy nem kell implementálnia és elhárítania a deduplikációs logikát.
Írási mód
A Stream Analytics kétféleképpen ír a Blob Storage-ba vagy a Data Lake Storage Gen2-fiókba. Ennek egyik módja, hogy az eredményeket ugyanahhoz a fájlhoz vagy egy fájlsorozathoz fűzi, amikor az eredmények érkeznek. A másik módszer az időpartíció összes eredményének írása, amikor az időpartíció összes adata elérhető. A pontosan egyszeri kézbesítés engedélyezve van, ha az írási mód egyszer van.
A Delta Lake-hez nincs írási mód. A Delta Lake-kimenet azonban pontosan egyszeri garanciát is biztosít a Delta-napló használatával. Nem igényel időpartíciót, és folyamatosan írja az eredményeket a felhasználó által megadott kötegelési paraméterek alapján.
Feljegyzés
Ha nem szeretné használni az előzetes verziójú funkciót a pontos egyszeri kézbesítéshez, válassza a Hozzáfűzés lehetőséget az eredmények érkezésekor.
Konfiguráció
A Blob Storage- vagy Data Lake Storage Gen2-fiók pontos egyszeri kézbesítéséhez konfigurálnia kell a következő beállításokat:
- Válassza az Egyszer lehetőséget , miután az időpartíció minden eredménye elérhető az írási módhoz.
- Adja meg az elérési útmintát mindkettővel
{date}
és{time}
megadva. - Adja meg a dátumformátumot és az időformátumot.
Korlátozások
- Az alstream nem támogatott.
- Az elérésiút-minta kötelező tulajdonsággá válik, és tartalmaznia kell mind
{date}
a{time}
. Nem engedélyezett dinamikus egyéni{field}
név. További információ az egyéni útvonalmintáról. - Ha a feladat az utolsó kimeneti idő előtt vagy után egyéni időpontban indul el, fennáll a fájl felülírásának kockázata. Ha például az időformátum HH értékre van állítva, a fájl óránként jön létre. Ha 8:15-kor állítja le a feladatot, és 8:30-kor újraindítja a feladatot, a 8:30 és 9 óra között létrehozott fájl csak a 8:30 és 9:30 közötti adatokat fedi le. Az adatok 8 és 8:15 között elvesznek, mivel felülírják azokat.
Blob kimeneti fájljai
Ha a Blob Storage-t használja kimenetként, a blobban a következő esetekben jön létre új fájl:
- A fájl meghaladja az engedélyezett blokkok maximális számát (jelenleg 50 000). A blokkok maximális számát a maximálisan megengedett blobméret elérése nélkül is elérheti. Ha például a kimeneti sebesség magas, blokkonként több bájt jelenik meg, a fájlméret pedig nagyobb. Ha a kimeneti sebesség alacsony, minden blokk kevesebb adatot, a fájlméret pedig kisebb.
- Sémamódosítás történt a kimenetben, és a kimeneti formátumhoz rögzített séma szükséges (CSV, Avro vagy Parquet).
- A rendszer újraindít egy feladatot külsőleg, vagy egy felhasználó leállítja és elindítja, vagy belsőleg a rendszerkarbantartáshoz vagy a hiba helyreállításához.
- A lekérdezés teljes mértékben particionált, és minden kimeneti partícióhoz létrejön egy új fájl. Ez az 1.2 kompatibilitási szinten bevezetett natív párhuzamosításból
PARTITION BY
származik. - A felhasználó törli a tárfiók egy fájlját vagy tárolóját.
- A kimenet az elérési út előtagmintájának használatával particionált idő, és egy új blobot használ, amikor a lekérdezés a következő órára ugrik.
- A kimenetet egy egyéni mező particionálta, és egy új blob jön létre partíciókulcsonként, ha nem létezik.
- A kimenetet egy egyéni mező particionálta, ahol a partíciókulcs számossága meghaladja a 8000-et, és partíciókulcsonként új blob jön létre.
Particionálás
Partíciókulcsok esetén használja {date}
és {time}
jogkivonatokat az eseménymezőkből az elérési út mintájában. Válassza ki a dátumformátumot, például YYYY/MM/DD
: , DD/MM/YYYY
vagy MM-DD-YYYY
. HH
az időformátumot használja. A blobkimenetet egyetlen egyéni eseményattribútum {fieldname}
vagy {datetime:\<specifier>}
. A kimeneti írók száma a teljes mértékben párhuzamos lekérdezések bemeneti particionálását követi.
Kimeneti köteg mérete
A maximális üzenetméretért tekintse meg az Azure Storage korlátait. A blobblokkok maximális mérete 4 MB, a blobblokkok maximális száma pedig 50 000.
Korlátozások
- Ha az elérésiút-mintában (
/
például) perjel szimbólumot használ, a rendszer üres mappákat hoz létre,/folder2/folder3
amelyek nem láthatók a Storage Explorerben. - A Stream Analytics ugyanahhoz a fájlhoz fűzi azokat az eseteket, amikor nincs szükség új blobfájlra. Ez további eseményindítókat eredményezhet, ha az Azure-szolgáltatások, például az Azure Event Grid úgy vannak konfigurálva, hogy aktiválódjanak egy blobfájl frissítésében.
- A Stream Analytics alapértelmezés szerint hozzáfűzi egy blobot. Ha a kimeneti formátum egy JSON-tömb, a fájl leállításkor vagy az időparticionált kimenetek következő alkalommali partíciójára való áthelyezésekor fejeződik be. Bizonyos esetekben, például a tisztátalan újraindításkor előfordulhat, hogy hiányzik a JSON-tömb záró szögletes zárójele (
]
).
Kapcsolódó tartalom
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: