Azure Blob-gegevens beheren en zoeken met blobindextags

Naarmate gegevenssets groter worden, kan het lastig zijn om een specifiek object in een zee met gegevens te vinden. Blob-indextags bieden mogelijkheden voor gegevensbeheer en detectie met behulp van tagkenmerken voor sleutelwaarde. U kunt objecten in één container of in alle containers in uw opslagaccount categoriseren en zoeken. Naarmate de gegevensvereisten veranderen, kunnen objecten dynamisch worden gecategoriseerd door hun indextags bij te werken. Objecten kunnen in-place blijven met hun huidige containerorganisatie.

Met blobindextags kunt u het volgende doen:

  • Uw blobs dynamisch categoriseren met behulp van indextags voor sleutelwaarden

  • Snel specifieke gelabelde blobs vinden in een volledig opslagaccount

  • Voorwaardelijk gedrag opgeven voor blob-API's op basis van de evaluatie van indextags

  • Indextags gebruiken voor geavanceerde besturingselementen voor functies zoals levenscyclusbeheer van blobs

Overweeg een scenario waarin u miljoenen blobs in uw opslagaccount hebt, toegankelijk voor veel verschillende toepassingen. U wilt alle gerelateerde gegevens uit één project vinden. U weet niet wat er binnen het bereik valt, omdat de gegevens kunnen worden verspreid over meerdere containers met verschillende naamconventies. Uw toepassingen uploaden echter alle gegevens met tags op basis van hun project. In plaats van miljoenen blobs te doorzoeken en namen en eigenschappen te vergelijken, kunt u deze gebruiken Project = Contoso als uw detectiecriteria. Met de Blob-index worden alle containers in uw hele opslagaccount gefilterd om snel de set 50 blobs vandaan Project = Contosote vinden en te retourneren.

Zie Blob-indextags gebruiken om gegevens te beheren en te zoeken om aan de slag te gaan met voorbeelden van het gebruik van blob-indexen.

Blob-indextags en gegevensbeheer

Container- en blobnaamvoorvoegsels zijn eendimensionale categorisaties. Met indextags voor blob kunt u multidimensionale categorisatie voor blobgegevenstypen (Blok, Toevoegen of Pagina) gebruiken. Multidimensionale categorisatie wordt systeemeigen geïndexeerd door Azure Blob Storage zodat u snel uw gegevens kunt vinden.

Houd rekening met de volgende vijf blobs in uw opslagaccount:

  • container1/transaction.csv

  • container2/campaign.docx

  • foto's/bannerphoto.png

  • archieven/voltooid/2019review.pdf

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

Deze blobs worden gescheiden met behulp van een voorvoegsel van de naam van de container/virtuele map/blob. U kunt een indextagkenmerk van Project = Contoso deze vijf blobs instellen om ze samen te categoriseren terwijl de huidige voorvoegselorganisatie behouden blijft. Als u indextags toevoegt, hoeft u geen gegevens te verplaatsen door de mogelijkheid om gegevens te filteren en te zoeken met behulp van de index.

Blob-indextags instellen

Blob-indextags zijn sleutel-waardekenmerken die kunnen worden toegepast op nieuwe of bestaande objecten binnen uw opslagaccount. U kunt indextags opgeven tijdens het uploadproces met Put Blob, Put Block List of Blob-bewerkingen kopiëren en de optionele x-ms-tags header. Als u al blobs in uw opslagaccount hebt, roept u Blob-tags instellen aan die een opgemaakt XML-document doorgeven met de indextags in de hoofdtekst van de aanvraag.

Belangrijk

Het instellen van blob-indextags kan worden uitgevoerd door de eigenaar van de opslagblobgegevens en door iedereen met een Shared Access Signature die gemachtigd is voor toegang tot de tags van de blob (de t SAS-machtiging).

Daarnaast kunnen RBAC-gebruikers met de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write machtiging deze bewerking uitvoeren.

U kunt één tag toepassen op uw blob om te beschrijven wanneer uw gegevens zijn verwerkt.

"processedDate" = '2020-01-01'

U kunt meerdere tags op uw blob toepassen om meer beschrijvend te zijn voor de gegevens.

"Project" = "Contoso" "Geclassificeerd" = "True" "Status" = "Unprocessed" "Priority" = "01"

Als u de bestaande indextagkenmerken wilt wijzigen, haalt u de bestaande tagkenmerken op, wijzigt u de tagkenmerken en vervangt u de bewerking Blob-tags instellen . Als u alle indextags uit de blob wilt verwijderen, roept u de Set Blob Tags bewerking aan zonder tagkenmerken opgegeven. Omdat blobindextags een subresource zijn voor de inhoud van de blobgegevens, wijzigt u Set Blob Tags geen onderliggende inhoud en wijzigt u de laatste wijzigingstijd of eTag van de blob niet. U kunt indextags maken of wijzigen voor alle huidige basis-blobs. Indextags blijven ook behouden voor eerdere versies, maar ze worden niet doorgegeven aan de blobindexengine, dus u kunt geen query's uitvoeren op indextags om eerdere versies op te halen. Tags op momentopnamen of voorlopig verwijderde blobs kunnen niet worden gewijzigd.

De volgende limieten zijn van toepassing op blob-indextags:

  • Elke blob kan maximaal 10 blobindextags bevatten

  • Tagsleutels moeten tussen één en 128 tekens zijn

  • Tagwaarden moeten tussen nul en 256 tekens zijn

  • Tagsleutels en -waarden zijn hoofdlettergevoelig

  • Tagsleutels en waarden ondersteunen alleen tekenreeksgegevenstypen. Getallen, datums, tijden of speciale tekens worden opgeslagen als tekenreeksen

  • Tagsleutels en -waarden moeten voldoen aan de volgende naamgevingsregels:

    • Alfanumerieke tekens:

      • a tot en met z (kleine letters)

      • A tot en met Z (hoofdletters)

      • 0 tot en met 9 (getallen)

    • Geldige speciale tekens: spatie, plus, min, punt, dubbele punt, gelijk aan, onderstrepingsteken, slash ( +-.:=_/)

Blob-indextags ophalen en vermelden

Blob-indextags worden opgeslagen als een subresource naast de blobgegevens en kunnen onafhankelijk van de onderliggende inhoud van blobgegevens worden opgehaald. Blob-indextags voor één blob kunnen worden opgehaald met de bewerking Blob-tags ophalen . De bewerking List Blobs met de include:tags parameter retourneert ook alle blobs in een container, samen met de bijbehorende blobindextags.

Belangrijk

Het ophalen en vermelden van blob-indextags kan worden uitgevoerd door de eigenaar van de opslagblobgegevens en door iedereen met een Shared Access Signature die gemachtigd is voor toegang tot de tags van de blob (de t SAS-machtiging).

Daarnaast kunnen RBAC-gebruikers met de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read machtiging deze bewerking uitvoeren.

Voor blobs met ten minste één blobindextag wordt de x-ms-tag-count waarde geretourneerd in de bewerkingen List Blobs, Get Blob en Get Blob Properties die het aantal indextags in de blob aangeven.

Gegevens zoeken met behulp van blobindextags

De indexeringsengine toont uw sleutel-waardekenmerken in een multidimensionale index. Nadat u de indextags hebt ingesteld, bestaan deze in de blob en kunnen ze onmiddellijk worden opgehaald. Het kan enige tijd duren voordat de blobindex wordt bijgewerkt. Nadat de blob-index is bijgewerkt, kunt u de systeemeigen query- en detectiemogelijkheden van Blob Storage gebruiken.

Met de bewerking Blobs zoeken op tags kunt u een gefilterde set blobs ophalen waarvan de indextags overeenkomen met een bepaalde query-expressie. Find Blobs by Tags ondersteunt filteren in alle containers binnen uw opslagaccount of u kunt het filteren op slechts één container instellen. Omdat alle indextagsleutels en -waarden tekenreeksen zijn, gebruiken relationele operators een lexicografische sortering.

Belangrijk

Het zoeken van gegevens met behulp van blob-indextags kan worden uitgevoerd door de eigenaar van de opslagblobgegevens en door iedereen met een Shared Access Signature die gemachtigd is om blobs te zoeken op tags (de f SAS-machtiging).

Daarnaast kunnen RBAC-gebruikers met de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action machtiging deze bewerking uitvoeren.

De volgende criteria zijn van toepassing op het filteren van blobindexen:

  • Tagsleutels moeten tussen dubbele aanhalingstekens (") worden geplaatst

  • Tagwaarden en containernamen moeten tussen enkele aanhalingstekens (') worden geplaatst

  • Het @-teken is alleen toegestaan voor filteren op een specifieke containernaam (bijvoorbeeld @container = 'ContainerName')

  • Filters worden toegepast met lexicografische sortering op tekenreeksen

  • Dezelfde bewerkingen aan hetzelfde zijdelingse bereik op dezelfde sleutel zijn ongeldig (bijvoorbeeld "Rank" > '10' AND "Rank" >= '15')

  • Wanneer u REST gebruikt om een filterexpressie te maken, moeten tekens zijn gecodeerd met URI's

  • Tagquery's zijn geoptimaliseerd voor gelijkheidsovereenkomsten met één tag (bijvoorbeeld StoreID = "100"). Bereikquery's met behulp van één tag met betrekking tot >, >=, <= <zijn ook efficiënt. Query's die GEBRUIKMAKEN van AND met meer dan één tag, zijn niet zo efficiënt. Kosten > "01" AND Cost <= "100" is bijvoorbeeld efficiënt. Kosten > "01 AND StoreID = "2" is niet zo efficiënt.

In de onderstaande tabel ziet u alle geldige operators voor Find Blobs by Tags:

Operator Beschrijving Voorbeeld
= Is gelijk aan "Status" = 'In Progress'
> Groter dan "Date" > '2018-06-18'
>= Groter dan of gelijk aan "Priority" >= '5'
< Kleiner dan "Age" < '32'
<= Kleiner dan of gelijk aan "Priority" <= '5'
AND Logisch en "Rank" >= '010' AND "Rank" < '100'
@container Bereik voor een specifieke container @container = 'videofiles' AND "status" = 'done'

Notitie

Raak vertrouwd met lexicografische volgorde bij het instellen en opvragen van tags.

  • Getallen worden gesorteerd voor letters. Getallen worden gesorteerd op basis van het eerste cijfer.
  • Hoofdletters worden gesorteerd voor kleine letters.
  • Symbolen zijn niet standaard. Sommige symbolen worden gesorteerd vóór numerieke waarden. Andere symbolen worden gesorteerd voor of na letters.

Voorwaardelijke blobbewerkingen met blobindextags

In REST-versies 2019-10-10 en hoger ondersteunen de meeste BLOB-service-API's nu een voorwaardelijke header, x-ms-if-tagszodat de bewerking alleen slaagt als aan de opgegeven blobindexvoorwaarde wordt voldaan. Als niet aan de voorwaarde wordt voldaan, krijgt error 412: The condition specified using HTTP conditional header(s) is not metu .

De x-ms-if-tags header kan worden gecombineerd met de andere bestaande voorwaardelijke HTTP-headers (If-Match, If-None-Match, enzovoort). Als er in een aanvraag meerdere voorwaardelijke headers worden opgegeven, moeten ze allemaal waar evalueren voor de bewerking. Alle voorwaardelijke headers worden effectief gecombineerd met logische AND.

In de onderstaande tabel ziet u de geldige operators voor voorwaardelijke bewerkingen:

Operator Beschrijving Voorbeeld
= Is gelijk aan "Status" = 'In Progress'
<> Is niet gelijk aan "Status" <> 'Done'
> Groter dan "Date" > '2018-06-18'
>= Groter dan of gelijk aan "Priority" >= '5'
< Kleiner dan "Age" < '32'
<= Kleiner dan of gelijk aan "Priority" <= '5'
AND Logisch en "Rank" >= '010' AND "Rank" < '100'
OF Logisch of "Status" = 'Done' OR "Priority" >= '05'

Notitie

Er zijn twee extra operators, niet gelijk aan en logisch of, die zijn toegestaan in de voorwaardelijke x-ms-if-tags header voor blobbewerkingen, maar die niet aanwezig zijn in de Find Blobs by Tags bewerking.

Platformintegraties met blob-indextags

Blob-indextags helpen u niet alleen bij het categoriseren, beheren en zoeken op uw blobgegevens, maar bieden ook integratie met andere Blob Storage-functies, zoals levenscyclusbeheer.

Levenscyclusbeheer

Met behulp van het blobIndexMatch filter als regel in levenscyclusbeheer kunt u gegevens verplaatsen naar koeler lagen of gegevens verwijderen op basis van de indextags die zijn toegepast op uw blobs. U kunt gedetailleerder zijn in uw regels en alleen blobs verplaatsen of verwijderen als ze voldoen aan de opgegeven tagscriteria.

U kunt een blobindexovereenkomst instellen als een zelfstandige filterset in een levenscyclusregel om acties toe te passen op getagde gegevens. U kunt ook zowel een voorvoegsel als een blobindex combineren om overeen te komen met specifiekere gegevenssets. Als u meerdere filters in een levenscyclusregel opgeeft, wordt een logische AND-bewerking toegepast. De actie wordt alleen toegepast als alle filtercriteria overeenkomen.

De volgende voorbeeldregel voor levenscyclusbeheer is van toepassing op blok-blobs in een container met de naam videofiles. De regel tiers blobs alleen voor archiefopslag als de gegevens overeenkomen met de criteria voor de blob-indextag van "Status" == 'Processed' AND "Source" == 'RAW'.

Voorbeeld van blobindexovereenkomst voor levenscyclusbeheer in Azure Portal

Machtigingen en autorisatie

U kunt toegang tot blob-indextags autoriseren met behulp van een van de volgende benaderingen:

Blob-indextags zijn een subresource voor de blobgegevens. Een gebruiker met machtigingen of een SAS-token voor het lezen of schrijven van blobs heeft mogelijk geen toegang tot de blob-indextags.

Op rollen gebaseerd toegangsbeheer

Bellers die een Azure AD-identiteit gebruiken, krijgen mogelijk de volgende machtigingen om te werken op blob-indextags.

Bewerkingen voor blobindextags Azure RBAC-actie
Blobtags instellen Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Blobtags ophalen Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read
Blobs zoeken op tags Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action

Aanvullende machtigingen, gescheiden van de onderliggende blobgegevens, zijn vereist voor indextagbewerkingen. De rol Eigenaar van opslagblobgegevens krijgt machtigingen voor alle drie de indextagbewerkingen van de blob.

SAS-machtigingen

Bellers die een SAS (Shared Access Signature) gebruiken, krijgen mogelijk machtigingen met een bereik om te werken op blob-indextags.

Service-SAS voor een blob

De volgende machtigingen kunnen worden verleend in een service-SAS voor een blob om toegang tot blob-indextags toe te staan. Alleen de lees- en schrijfmachtigingen voor blobs enr schrijfmachtigingenw zijn niet voldoende om lees- of schrijftags toe te staan.

Machtiging URI-symbool Toegestane bewerkingen
Indextags t Indextags ophalen en instellen voor een blob

Service-SAS voor een container

De volgende machtigingen kunnen worden verleend in een service-SAS voor een container om filteren op blobtags toe te staan. De machtiging voor de bloblijst (i) is niet voldoende om filteren van blobs toe te staan op basis van de indextags.

Machtiging URI-symbool Toegestane bewerkingen
Indextags f Blobs zoeken met indextags

Account-SAS

De volgende machtigingen kunnen worden verleend in een account-SAS om toegang te verlenen tot blob-indextags en filteren op blobtags.

Machtiging URI-symbool Toegestane bewerkingen
Indextags t Indextags ophalen en instellen voor een blob
Indextags f Blobs zoeken met indextags

Alleen de lees- en schrijfmachtigingen van de blob (r) en schrijfmachtigingenw zijn niet voldoende om het lezen of schrijven van de indextags toe te staan en de lijstmachtiging (i) is niet voldoende om het filteren van blobs op basis van hun indextags toe te staan.

Kiezen tussen metagegevens en blobindextags

Zowel blob-indextags als metagegevens bieden de mogelijkheid om willekeurige door de gebruiker gedefinieerde sleutelwaarde-eigenschappen naast een blobresource op te slaan. Beide kunnen rechtstreeks worden opgehaald en ingesteld, zonder de inhoud van de blob te retourneren of te wijzigen. Het is mogelijk om zowel metagegevens als indextags te gebruiken.

Alleen indextags worden automatisch geïndexeerd en door de systeemeigen Blob Storage-service doorzoekbaar gemaakt. Metagegevens kunnen niet systeemeigen worden geïndexeerd of doorzocht. U moet een afzonderlijke service gebruiken, zoals Azure Search. Blob-indextags hebben aanvullende machtigingen voor lezen, filteren en schrijven die los staan van de onderliggende blobgegevens. Metagegevens gebruiken dezelfde machtigingen als de blob en worden geretourneerd als HTTP-headers door de bewerkingen Blob ophalen en Blobeigenschappen ophalen . Blob-indextags worden in rust versleuteld met behulp van een door Microsoft beheerde sleutel. Metagegevens worden in rust versleuteld met behulp van dezelfde versleutelingssleutel die is opgegeven voor blobgegevens.

De volgende tabel bevat een overzicht van de verschillen tussen metagegevens en blobindextags:

Metagegevens Blob-indextags
Limieten Geen numerieke limiet, totaal van 8 kB, niet hoofdlettergevoelig 10 tags per blob max, 768 bytes per tag, hoofdlettergevoelig
Updates Niet toegestaan voor archieflaag, Set Blob Metadata vervangt alle bestaande metagegevens, Set Blob Metadata wijzigt de laatste wijzigingstijd van de blob Toegestaan voor alle toegangslagen, Set Blob Tags vervangt alle bestaande tags, Set Blob Tags wijzigt de laatste wijzigingstijd van de blob niet
Storage Opgeslagen met de blobgegevens Subresource van de blobgegevens
Query's indexeren & Moet een afzonderlijke service gebruiken, zoals Azure Search Indexerings- en querymogelijkheden die zijn ingebouwd in Blob Storage
Versleuteling Versleuteld at rest met dezelfde versleutelingssleutel die wordt gebruikt voor blobgegevens Versleuteld at rest met een door Microsoft beheerde versleutelingssleutel
Prijzen De grootte van metagegevens is opgenomen in de opslagkosten voor een blob Vaste kosten per indextag
Antwoord van header Metagegevens die worden geretourneerd als headers in Get Blob en Get Blob Properties Aantal tags dat wordt geretourneerd door Get Blob of Get Blob Properties, tags die alleen worden geretourneerd door Get Blob Tags en List Blobs
Machtigingen Lees- of schrijfmachtigingen voor blobgegevens worden uitgebreid naar metagegevens Aanvullende machtigingen zijn vereist voor het lezen, filteren of schrijven van indextags
Naamgeving Namen van metagegevens moeten voldoen aan de naamgevingsregels voor C#-id's Blob-indextags ondersteunen een breder scala aan alfanumerieke tekens

Prijzen

Er worden kosten in rekening gebracht voor het maandelijkse gemiddelde aantal indextags binnen een opslagaccount. Er zijn geen kosten verbonden aan de indexeringsengine. Aanvragen voor het instellen van blogtags, het ophalen van blobtags en het zoeken van blobtags worden in rekening gebracht tegen de huidige transactietarieven. Houd er rekening mee dat het aantal verbruikte lijsttransacties bij het uitvoeren van een Zoek-blobs per tagtransactie gelijk is aan het aantal componenten in de aanvraag. De query (StoreID = 100) is bijvoorbeeld één lijsttransactie. De query (StoreID = 100 AND SKU = 10010) is twee lijsttransacties. Zie Prijzen voor Blok-blob voor meer informatie.

Functieondersteuning

Ondersteuning voor deze functie kan worden beïnvloed door het inschakelen van Data Lake Storage Gen2, Network File System (NFS) 3.0-protocol of het SSH File Transfer Protocol (SFTP).

Als u een van deze mogelijkheden hebt ingeschakeld, raadpleegt u de functieondersteuning voor Blob Storage in Azure Storage-accounts om ondersteuning voor deze functie te beoordelen.

Voorwaarden en bekende problemen

In deze sectie worden bekende problemen en voorwaarden beschreven.

  • Alleen v2-accounts voor algemeen gebruik worden ondersteund. Premium-blok-blob, verouderde blob en accounts waarvoor een hiërarchische naamruimte is ingeschakeld, worden niet ondersteund. Accounts voor algemeen gebruik v1 worden niet ondersteund.

  • Als u pagina-blobs uploadt met indextags, blijven de tags niet behouden. Stel de tags in na het uploaden van een pagina-blob.

  • Als versiebeheer voor Blob Storage is ingeschakeld, kunt u nog steeds indextags gebruiken voor de huidige versie. Indextags blijven behouden voor eerdere versies, maar deze tags worden niet doorgegeven aan de blob-indexengine, dus u kunt ze niet gebruiken om eerdere versies op te halen. Als u een eerdere versie promoveren naar de huidige versie, worden de tags van die vorige versie de tags van de huidige versie. Omdat deze tags zijn gekoppeld aan de huidige versie, worden ze doorgegeven aan de blob-indexengine en kunt u er query's op uitvoeren.

  • Er is geen API om te bepalen of indextags zijn geïndexeerd.

  • Levenscyclusbeheer biedt alleen ondersteuning voor gelijkheidscontroles met een blobindexovereenkomst.

  • Copy Blob kopieert geen blobindextags van de bron-blob naar de nieuwe doel-blob. U kunt tijdens de kopieerbewerking de tags opgeven die u wilt toepassen op de doel-blob.

Veelgestelde vragen

Kan ik met blobindex inhoud in mijn blobs filteren en er query's op uitvoeren?

Nee, als u in uw blobgegevens wilt zoeken, gebruikt u queryversnelling of Azure Search.

Zijn er vereisten voor indextagwaarden?

Blob-indextags ondersteunen alleen tekenreeksgegevenstypen en het uitvoeren van query's retourneert resultaten met lexicographicele volgorde. Voor getallen wordt het getal door nul gebruikt. Sla voor datums en tijden op als iso 8601-compatibele indeling.

Zijn blob-indextags en Azure Resource Manager-tags gerelateerd?

Nee, Resource Manager tags helpen bij het organiseren van besturingsvlakresources, zoals abonnementen, resourcegroepen en opslagaccounts. Indextags bieden blobbeheer en detectie op het gegevensvlak.

Volgende stappen

Zie Blob-index gebruiken om gegevens te beheren en te zoeken voor een voorbeeld van het gebruik van een blobindex.

Meer informatie over levenscyclusbeheer en het instellen van een regel met overeenkomende blobindexen.