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:
a až z (malá písmena)
A až Z (velká písmena)
0 až 9 (čí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 (f
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/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 .
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ů:
Použití řízení přístupu na základě role v Azure (Azure RBAC) k udělení oprávnění k objektu zabezpečení Microsoft Entra. Použijte Microsoft Entra ID pro zajištění vyššího zabezpečení a snadného použití. Další informace o použití Microsoft Entra ID s operacemi objektů blob najdete v tématu Autorizace přístupu k datům ve službě Azure Storage.
Pomocí sdíleného přístupového podpisu (SAS) delegujte přístup k indexu objektů blob. Další informace o sdílených přístupových podpisech najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS).
Použití přístupových klíčů účtu k autorizaci operací se sdíleným klíčem Další informace najdete v tématu Autorizace se sdíleným klíčem.
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 Properties znač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.