Správa a vyhledání dat objektů blob v Azure pomocí značek indexu objektů blob

Když se datové sady zvětší, může být nalezení konkrétního objektu v moři dat obtížné. Značky indexu objektů blob poskytují možnosti správy a zjišťování dat pomocí atributů značek indexu klíč-hodnota. Objekty můžete kategorizovat a vyhledávat v rámci jednoho kontejneru nebo napříč všemi kontejnery ve vašem účtu úložiště. S tím, jak se požadavky na data mění, je možné objekty dynamicky kategorizovat aktualizací jejich indexových značek. Objekty můžou zůstat v místní s aktuální organizací kontejneru.

Značky indexu objektů blob umožňují:

  • Dynamické kategorizace objektů blob pomocí značek indexu klíč-hodnota

  • Rychlé vyhledání konkrétních označených objektů blob v celém účtu úložiště

  • Určení podmíněného chování pro rozhraní BLOB API na základě vyhodnocení značek indexu

  • Použití značek indexu k pokročilým ovládacím prvkům, jako je správa životního cyklu objektů blob

Představte si scénář, ve kterém máte v účtu úložiště miliony objektů blob, ke kterým přistupuje mnoho různých aplikací. Chcete najít všechna související data z jednoho projektu. Nejste si jistí, co je v rozsahu, protože data se dají rozložit do více kontejnerů s různými konvencemi vytváření názvů. Vaše aplikace ale nahrají všechna data se značkami na základě jejich projektu. Místo vyhledávání milionů objektů blob a porovnávání názvů a vlastností můžete použít Project = Contoso jako kritéria zjišťování. Index objektů blob vyfiltruje všechny kontejnery v celém účtu úložiště, aby rychle našel a vrátil pouze sadu 50 objektů blob z Project = Contoso.

Pokud chcete začít s příklady použití indexu objektů blob, přečtěte si téma Použití značek indexu objektů blob ke správě a hledání dat.

Značky indexu objektů blob a správa dat

Předpony názvů kontejnerů a objektů blob jsou jednorozměrná kategorizace. Značky indexu objektů blob umožňují multidimenzionální kategorizaci datových typů objektů blob (blok, připojení nebo stránka). Multidimenzionální kategorizace je nativně indexována službou Azure Blob Storage, abyste mohli rychle najít data.

Vezměte v úvahu následující pět objektů blob ve vašem účtu úložiště:

  • container1/transaction.csv

  • kontejner2/campaign.docx

  • fotografie/bannerphoto.png

  • archivy, dokončené/ 2019review.pdf

  • logs/2020/01/01/logfile.txt

Tyto objekty blob jsou oddělené předponou názvu kontejneru, virtuální složky nebo objektu blob. Atribut značky indexu Project = Contoso těchto pěti objektů blob můžete nastavit tak, aby byly kategorizovány společně při zachování aktuální organizace předpon. Přidání značek indexu eliminuje nutnost přesouvat data tím, že zpřístupňuje možnost filtrovat a vyhledávat data pomocí indexu.

Nastavení značek indexu objektů blob

Značky indexu objektů blob jsou atributy klíč-hodnota, které je možné použít u nových nebo existujících objektů v rámci vašeho účtu úložiště. Značky indexu můžete během procesu nahrávání zadat pomocí operací Put Blob, Put Block List nebo Copy Blob a volitelné x-ms-tags hlavičky. Pokud už v účtu úložiště máte objekty blob, zavolejte nastavit značky objektů blob, které předávají formátovaný dokument XML se značkami indexu v textu požadavku.

Důležité

Nastavení značek indexu objektů blob je možné provést vlastníkem dat objektů blob služby Storage a kýmkoliv, kdo má sdílený přístupový podpis s oprávněním pro přístup ke značek objektu t blob (oprávnění SAS).

Kromě toho můžou tuto operaci provádět uživatelé RBAC s oprávněním Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write .

Na objekt blob můžete použít jednu značku, která popisuje dokončení zpracování dat.

"processedDate" = '2020-01-01'

Pro popisnější data můžete v objektu blob použít více značek.

"Project" = 'Contoso' "Classified" = 'True' "Status" = 'Unprocessed' "Priority" = '01'

Pokud chcete upravit existující atributy značky indexu, načtěte existující atributy značky, upravte atributy značek a nahraďte operací Nastavit značky objektů blob. Pokud chcete z objektu blob odebrat všechny značky indexu, zavolejte Set Blob Tags operaci bez zadaných atributů značek. Protože značky indexu objektů blob jsou podsourcem obsahu dat objektu blob, Set Blob Tags nemění žádný podkladový obsah a nemění čas poslední změny objektu blob ani značku eTag. Můžete vytvořit nebo upravit značky indexu pro všechny aktuální základní objekty blob. Značky indexu se zachovají také pro předchozí verze, ale nepředají se do indexovacího modulu objektů blob, takže se nemůžete dotazovat na značky indexu pro načtení předchozích verzí. Značky snímků nebo obnovitelně odstraněných objektů blob nelze upravit.

Následující omezení platí pro značky indexu objektů blob:

  • Každý objekt blob může mít až 10 značek indexu objektů blob.

  • Klíče značek musí být v rozmezí od 128 znaků.

  • Hodnoty značek musí být mezi nulou a 256 znaky.

  • U klíčů a hodnot značek se rozlišují malá a velká písmena.

  • Klíče a hodnoty značek podporují pouze datové typy řetězců. Všechna čísla, kalendářní data, časy nebo speciální znaky se ukládají jako řetězce.

  • Pokud je povolená správa verzí, značky indexu se použijí na konkrétní verzi objektu blob. Pokud nastavíte značky indexu pro aktuální verzi a vytvoří se nová verze, nebude značka přidružená k nové verzi. Značka bude přidružena pouze k předchozí verzi.

  • Klíče a hodnoty značek musí dodržovat následující pravidla pojmenování:

    • Alfanumerické znaky:

      • az (malá písmena)

      • AZ (velká písmena)

      • 09 (čísla)

    • Platné speciální znaky: mezera, plus, minus, tečka, dvojtečka, rovná se, podtržítko, lomítko ( +-.:=_/)

Tip

Úlohu úložiště můžete použít k nastavení značek u objektů ve velkém měřítku napříč několika účty úložiště na základě sady podmínek, které definujete. Úloha úložiště je prostředek dostupný v Azure Storage Actions. Bezserverová architektura, kterou můžete použít k provádění běžných operací s daty u milionů objektů v několika účtech úložiště. Další informace najdete v tématu Co je Akce služby Azure Storage?.

Získání a výpis značek indexu objektů blob

Značky indexu objektů blob se ukládají jako podsourc spolu s daty objektů blob a dají se načítat nezávisle na podkladovém obsahu dat objektů blob. Značky indexu objektů blob pro jeden objekt blob je možné načíst pomocí operace Získat značky objektů blob. Operace Výpis objektů blob s parametrem include:tags vrátí také všechny objekty blob v kontejneru spolu se značkami indexu objektů blob.

Důležité

Získání a výpis značek indexu objektů blob je možné provést vlastníkem dat objektu blob služby Storage a kýmkoli, kdo má oprávnění pro přístup ke značkům objektu t blob (oprávnění SAS).

Kromě toho můžou tuto operaci provádět uživatelé RBAC s oprávněním Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read .

Pro všechny objekty blob s alespoň jednou značkou x-ms-tag-count indexu objektů blob se vrátí v operacích Výpis objektů blob, Získat objekt blob a Získat vlastnosti objektu blob označující počet značek indexu v objektu blob.

Hledání dat pomocí značek indexu objektů blob

Indexovací modul zveřejňuje atributy klíč-hodnota do multidimenzionálního indexu. Po nastavení značek indexu existují v objektu blob a je možné je okamžitě načíst.

Než se index objektů blob aktualizuje, může to nějakou dobu trvat. To platí jak pro přidávání značek, tak pro úpravy existujících. Požadovaný čas závisí na úloze. Pokud například operace Nastavit značky objektů blob trvá 30 minut, než se dokončí rychlostí 15 000 až 2 0000 transakcí za sekundu, může indexování všech těchto objektů blob trvat až 10 minut. Zpoždění indexování může být nižší než sekunda. Distribuce provozu má vliv také na zpoždění indexování. Pokud například klientská aplikace nastaví značky objektů blob v sekvenčním pořadí pod stejným kontejnerem, zpoždění může být vyšší, než by bylo, kdyby se značky použily na objekty blob, které se nenacházejí společně.

Po aktualizaci indexu objektů blob můžete použít nativní možnosti dotazů a zjišťování, které nabízí Blob Storage.

Operace Najít objekty blob podle značek umožňuje získat filtrovanou sadu objektů blob, jejichž značky indexu odpovídají danému výrazu dotazu. Find Blobs by Tags podporuje filtrování napříč všemi kontejnery v rámci vašeho účtu úložiště nebo filtrování můžete nastavit jenom na jeden kontejner. Vzhledem k tomu, že všechny klíče a hodnoty značek indexu jsou řetězce, relační operátory používají lexikální řazení.

Důležité

Vyhledání dat pomocí značek indexu objektů blob je možné provést vlastníkem dat objektu blob služby Storage a kýmkoliv, kdo má sdílený přístupový podpis s oprávněním najít objekty blob podle značek (foprávnění SAS).

Kromě toho můžou tuto operaci provádět uživatelé RBAC s oprávněním Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action .

Následující kritéria platí pro filtrování indexů objektů blob:

  • Klíče značek by měly být uzavřeny do dvojitých uvozovek (")

  • Hodnoty značek a názvy kontejnerů by měly být uzavřeny v jednoduchých uvozovkách (').

  • Znak @ je povolen pouze pro filtrování podle konkrétního názvu kontejneru (například @container = 'ContainerName')

  • Filtry se použijí s lexikografickým řazením u řetězců.

  • Stejné operace rozsahu na straně stejného klíče jsou neplatné (například "Rank" > '10' AND "Rank" >= '15')

  • Pokud k vytvoření výrazu filtru používáte REST, měly by být uri kódované znaky.

  • Dotazy značek jsou optimalizované pro shodu rovnosti pomocí jedné značky (např. StoreID = "100"). Dotazy rozsahu využívající jednu značku zahrnující >, >=, <, <= jsou také efektivní. Jakýkoli dotaz, který používá and s více než jednou značkou, nebude tak efektivní. Například náklady > "01" AND Cost <= "100" jsou efektivní. Náklady > 01 AND StoreID = "2" nejsou tak efektivní.

V následující tabulce jsou uvedeny všechny platné operátory pro Find Blobs by Tags:

Operátor Description Příklad
= Je rovno "Status" = 'In Progress'
> Je větší než "Date" > '2018-06-18'
>= Větší než nebo rovno "Priority" >= '5'
< Je menší než "Age" < '32'
<= Menší než nebo rovno "Priority" <= '5'
A Logický operátor a "Rank" >= '010' AND "Rank" < '100'
@container Rozsah konkrétního kontejneru @container = 'videofiles' AND "status" = 'done'

Poznámka:

Při nastavování a dotazování na značky se seznamte s lexikografickým řazením.

  • Čísla jsou seřazená před písmeny. Čísla se seřadí na základě první číslice.
  • Velká písmena jsou seřazena před malými písmeny.
  • Symboly nejsou standardní. Některé symboly jsou seřazené před číselnými hodnotami. Jiné symboly jsou seřazené před písmeny nebo za písmeny.

Podmíněné operace objektů blob se značkami indexu objektů blob

Ve verzích REST 2019-10-10 a vyšších teď většina rozhraní API služby Blob Service podporuje podmíněnou hlavičku, takže operace bude úspěšná pouze v případě, x-ms-if-tagsže je splněna zadaná podmínka indexu objektů blob. Pokud podmínka není splněná, dostanete error 412: The condition specified using HTTP conditional header(s) is not met.

Záhlaví x-ms-if-tags se může kombinovat s ostatními existujícími podmíněnými hlavičkami HTTP (If-Match, If-None-Match atd.). Pokud je v požadavku k dispozici více podmíněných hlaviček, musí všechny vyhodnotit hodnotu true, aby operace byla úspěšná. Všechny podmíněné hlavičky se efektivně kombinují s logickým operátorem AND.

Následující tabulka ukazuje platné operátory pro podmíněné operace:

Operátor Description Příklad
= Equal "Status" = 'In Progress'
<> Not equal "Status" <> 'Done'
> Je větší než "Date" > '2018-06-18'
>= Větší než nebo rovno "Priority" >= '5'
< Je menší než "Age" < '32'
<= Menší než nebo rovno "Priority" <= '5'
A Logický operátor a "Rank" >= '010' AND "Rank" < '100'
NEBO Logický operátor nebo "Status" = 'Done' OR "Priority" >= '05'

Poznámka:

Existují dva další operátory, ne stejné a logické nebo, které jsou povoleny v podmíněné x-ms-if-tags hlavičce pro operace objektů blob, ale v Find Blobs by Tags operaci neexistují.

Integrace platformy se značkami indexu objektů blob

Značky indexu objektů blob pomáhají nejen kategorizovat, spravovat a vyhledávat data objektů blob, ale také poskytují integraci s dalšími funkcemi blob Storage, jako je správa životního cyklu.

Správa životního cyklu

blobIndexMatch Pomocí filtru pravidel ve správě životního cyklu můžete přesunout data do chladnějších vrstev nebo odstranit data na základě značek indexu použitých u objektů blob. V pravidlech můžete být podrobnější a přesouvat nebo odstraňovat objekty blob pouze v případě, že odpovídají zadaným kritériím značek.

Shodu indexu objektů blob můžete nastavit jako samostatnou sadu filtrů v pravidle životního cyklu pro použití akcí u označených dat. Nebo můžete zkombinovat předponu i index objektů blob tak, aby odpovídaly konkrétnějším datovým sadám. Pokud v pravidle životního cyklu zadáte více filtrů, použije se logický operátor AND. Akce se použije pouze v případě, že se shodují všechna kritéria filtru.

Následující ukázkové pravidlo správy životního cyklu se vztahuje na objekty blob bloku v kontejneru s názvem videofiles. Objekty blob pravidla vrství do archivního úložiště pouze v případě, že data odpovídají kritériím značky indexu objektu "Status" == 'Processed' AND "Source" == 'RAW'blob .

Příklad pravidla shody indexu objektů blob pro správu životního cyklu na webu Azure Portal

Oprávnění a autorizace

Přístup ke značek indexu objektů blob můžete autorizovat pomocí jednoho z následujících přístupů:

Značky indexu objektů blob jsou podsourcem dat objektů blob. Uživatel s oprávněními nebo tokenEM SAS pro čtení nebo zápis objektů blob nemusí mít přístup ke značkám indexu objektů blob.

Řízení přístupu na základě role

Volajícím používajícím identitu Microsoft Entra může být udělena následující oprávnění pro práci se značkami indexu objektů blob.

Operace značek indexu objektů blob Akce Azure RBAC
Nastavení značek objektů blob Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Získání značek objektů blob Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read
Vyhledání objektů blob podle značek Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action

Pro operace značek indexu se vyžadují další oprávnění oddělená od podkladových dat objektů blob. Role Vlastník dat objektu blob služby Storage má udělená oprávnění pro všechny tři operace značek indexů objektů blob.

Oprávnění SAS

Volajícím používajícím sdílený přístupový podpis (SAS) může být udělena oprávnění s vymezeným oborem pro provoz se značkami indexu objektů blob.

Sas služby pro objekt blob

Následující oprávnění můžou být udělena v SAS služby pro objekt blob, aby byl povolený přístup ke značek indexu objektů blob. Samotná oprávnění ke čtení ar zápisuw objektu blob nestačí k tomu, aby umožňovala čtení nebo zápis značek indexu.

Oprávnění Symbol identifikátoru URI Povolené operace
Indexové značky t Získání a nastavení značek indexu pro objekt blob

Sas služby pro kontejner

V SAS služby pro kontejner může být udělena následující oprávnění, aby bylo možné filtrovat značky objektů blob. Oprávnění seznamu objektů blob (i) nestačí k tomu, aby bylo možné filtrovat objekty blob podle jejich značek indexu.

Oprávnění Symbol identifikátoru URI Povolené operace
Indexové značky f Vyhledání objektů blob se značkami indexu

SAS účtu

V SAS účtu můžou být udělena následující oprávnění, aby bylo možné povolit přístup ke značek indexu objektů blob a filtrování podle značek objektů blob.

Oprávnění Symbol identifikátoru URI Povolené operace
Indexové značky t Získání a nastavení značek indexu pro objekt blob
Indexové značky f Vyhledání objektů blob se značkami indexu

Samotná oprávnění ke čtení ar zápisuw objektů blob nestačí k tomu, aby umožňovala čtení nebo zápis značek indexu a oprávnění seznamu (i) nestačí k tomu, aby povolovala filtrování objektů blob podle jejich značek indexu.

Volba mezi metadaty a značkami indexu objektů blob

Značky indexu objektů blob i metadata poskytují možnost ukládat vedle prostředku objektu blob libovolné vlastnosti klíč-hodnota definované uživatelem. Obojí je možné načíst a nastavit přímo bez vrácení nebo změny obsahu objektu blob. Je možné použít metadata i indexové značky.

Nativní služba Blob Storage automaticky indexuje a umožňuje prohledávat pouze značky indexu. Metadata se nedají nativně indexovat ani prohledávat. Musíte použít samostatnou službu, jako je Azure Search. Značky indexu objektů blob mají další oprávnění pro čtení, filtrování a zápis, které jsou oddělené od podkladových dat objektů blob. Metadata používají stejná oprávnění jako objekt blob a vrací se jako hlavičky HTTP operace Get Blob a Get Blob Properties . Značky indexu objektů blob se šifrují v klidovém stavu pomocí klíče spravovaného Microsoftem. Metadata se šifrují v klidovém stavu pomocí stejného šifrovacího klíče zadaného pro data objektů blob.

Následující tabulka shrnuje rozdíly mezi metadaty a značkami indexu objektů blob:

Metadata Značky indexu objektů blob
Omezení Bez číselného limitu, celkem 8 kB, nerozlišuje velká a malá písmena Maximálně 10 značek na objekt blob, 768 bajtů na značku, rozlišování velkých a malých písmen
Aktualizace Není povoleno na archivní úrovni, Set Blob Metadata nahrazuje všechna existující metadata, Set Blob Metadata mění čas poslední změny objektu blob. Povoleno pro všechny úrovně přístupu, Set Blob Tags nahrazuje všechny existující značky, Set Blob Tags nemění čas poslední změny objektu blob.
Úložiště Uložená s daty objektů blob Podsourc dat objektů blob
Indexování a dotazování Musí používat samostatnou službu, jako je Azure Search. Funkce indexování a dotazování integrované do služby Blob Storage
Šifrování Šifrované neaktivní uložená data pomocí stejného šifrovacího klíče použitého pro data objektů blob Šifrování neaktivních uložených dat pomocí šifrovacího klíče spravovaného Microsoftem
Ceny Velikost metadat je zahrnuta v nákladech na úložiště pro objekt blob. Pevné náklady na značku indexu
Odpověď hlavičky Metadata vrácená jako hlavičky v Get Blob a Get Blob Properties Počet značek vrácených vrácené značkou Get Blob nebo Get Blob Propertiesznačky vrácené pouze značkami Get Blob Tags a List Blobs
Oprávnění Oprávnění ke čtení nebo zápisu dat objektů blob se rozšiřují na metadata. Pro čtení, filtrování nebo zápis značek indexu se vyžadují další oprávnění.
Pojmenování Názvy metadat musí dodržovat pravidla pojmenování pro identifikátory jazyka C#. Značky indexu objektů blob podporují širší rozsah alfanumerických znaků.

Ceny

Účtuje se vám měsíční průměrný počet značek indexu v rámci účtu úložiště. Indexovací modul nemá žádné náklady. Požadavky na nastavení značek objektů blob, získání značek objektů blob a vyhledání značek objektů blob se účtují podle aktuálních cen transakcí. Všimněte si, že počet transakcí seznamu spotřebovaných při provádění operace Najít objekty blob podle značky se rovná počtu klauzulí v požadavku. Dotaz (StoreID = 100) je například jedna transakce seznamu. Dotaz (StoreID = 100 AND SKU = 10010) je dvě transakce seznamu. Další informace najdete na stránce s cenami objektů blob bloku.

Podpora funkcí

Podpora této funkce může mít vliv na povolení protokolu Data Lake Storage Gen2, systému souborů NFS (Network File System) 3.0 nebo protokolu SSH File Transfer Protocol (SFTP). Pokud jste některou z těchto funkcí povolili, podívejte se na podporu funkcí služby Blob Storage v účtech Azure Storage a vyhodnoťte podporu této funkce.

Podmínky a známé problémy

Tato část popisuje známé problémy a podmínky.

  • Podporují se pouze účty pro obecné účely verze 2 a účty objektů blob bloku úrovně Premium. Objekt blob stránky úrovně Premium, starší objekt blob a účty s povoleným hierarchickým oborem názvů se nepodporují. Účty pro obecné účely verze 1 se nepodporují.

  • Při nahrávání objektů blob stránky se značkami indexu se značky nezachovají. Po nahrání objektu blob stránky nastavte značky.

  • Pokud je povolená správa verzí služby Blob Storage, můžete stále používat značky indexu v aktuální verzi. Značky indexu se zachovají pro předchozí verze, ale tyto značky se nepředají do indexového modulu objektů blob, takže je nemůžete použít k načtení předchozích verzí. Pokud zvýšíte úroveň předchozí verze na aktuální verzi, značky této předchozí verze se stanou značkami aktuální verze. Vzhledem k tomu, že tyto značky jsou přidružené k aktuální verzi, předají se indexovacímu modulu objektů blob a můžete je dotazovat.

  • Neexistuje žádné rozhraní API k určení, jestli jsou indexované značky indexu.

  • Správa životního cyklu podporuje u shody indexu objektů blob jenom kontroly rovnosti.

  • Copy Blob nekopíruje značky indexu objektů blob ze zdrojového objektu blob do nového cílového objektu blob. Můžete zadat značky, které chcete použít u cílového objektu blob během operace kopírování.

Nejčastější dotazy

Nejčastější dotazy najdete v tématu Nejčastější dotazy ke značek indexů objektů blob.

Další kroky

Příklad použití indexu objektů blob najdete v tématu Použití indexu objektů blob ke správě a hledání dat.

Přečtěte si o správě životního cyklu a nastavení pravidla s odpovídajícími indexy objektů blob.