Optimalizace nákladů automatickou správou životního cyklu dat

Datové sady mají jedinečné životní cyklus. V rané fázi životního cyklu lidé často přistupují k některým datům. Potřeba přístupu ale často výrazně klesá, jak se data stárne. Některá data zůstávají v cloudu nečinná a po uložení se k němu zřídka přistupuje. Některé sady dat vyprší dny nebo měsíce po vytvoření, zatímco jiné sady dat se během jejich životnosti aktivně čtou a upravují. Správa životního cyklu služby Azure Blob Storage nabízí zásady založené na pravidlech, které můžete použít k převodu dat objektů blob na příslušné úrovně přístupu nebo k vypršení platnosti dat na konci životního cyklu dat.

Poznámka:

Každá poslední aktualizace přístupu se účtuje jako "jiná transakce" maximálně jednou za 24 hodin na objekt, a to i v případě, že se za den přistupuje k 1 000násobkům. To je oddělené od poplatků za čtení transakcí.

Pomocí zásad správy životního cyklu můžete:

  • Přechod objektů blob ze studené na horkou okamžitě, když se k nim přistupuje, aby se optimalizoval výkon.
  • Přechod aktuálních verzí objektu blob, předchozích verzí objektu blob nebo snímků objektů blob na chladnější úroveň úložiště, pokud tyto objekty nebyly po určitou dobu přístupné nebo upravené, aby se optimalizovaly náklady.
  • Odstraňte aktuální verze objektu blob, předchozí verze objektu blob nebo snímky objektů blob na konci jejich životního cyklu.
  • Použijte pravidla pro celý účet úložiště, výběr kontejnerů nebo podmnožinu objektů blob pomocí předpon názvů nebo značek indexu objektů blob jako filtrů.

Představte si scénář, kdy se k datům často přistupuje v počátečních fázích životního cyklu, ale jen občas po dvou týdnech. Kromě prvního měsíce se k sadě dat přistupuje jen zřídka. V tomto scénáři je horké úložiště nejlepší v počátečních fázích. Studené úložiště je nejvhodnější pro občasný přístup. Archivní úložiště je nejlepší možností vrstvy po uplynutí měsíce. Přesunutím dat do příslušné úrovně úložiště na základě jejich věku pomocí pravidel zásad správy životního cyklu můžete navrhnout nejméně nákladné řešení pro vaše potřeby.

Zásady správy životního cyklu jsou podporované u objektů blob bloku a připojovacích objektů blob v těchto účtech: pro obecné účely verze 2, objekty blob bloku úrovně Premium a služba Blob Storage. Správa životního cyklu nemá vliv na systémové kontejnery, jako $logs jsou kontejnery nebo $web kontejnery.

Důležité

Pokud je potřeba datovou sadu číst, nenastavujte zásadu pro přesun objektů blob do archivní úrovně. Objekty blob v archivní úrovni nelze číst, pokud nejsou poprvé dosazovány, což může být časově náročný a nákladný proces. Další informace najdete v tématu Přehled dosazování objektů blob z archivní úrovně. Pokud je potřeba datovou sadu číst často, nenastavujte zásadu pro přesun objektů blob na studenou nebo studenou úroveň, protože to může vést k vyšším nákladům na transakce.

Definice zásad správy životního cyklu

Zásady správy životního cyklu jsou kolekce pravidel v dokumentu JSON. Následující ukázkový JSON ukazuje úplnou definici pravidla:

{
  "rules": [
    {
      "name": "rule1",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {...}
    },
    {
      "name": "rule2",
      "type": "Lifecycle",
      "definition": {...}
    }
  ]
}

Zásada je kolekce pravidel, jak je popsáno v následující tabulce:

Název parametru Typ parametru Notes
rules Pole objektů pravidel V zásadách se vyžaduje aspoň jedno pravidlo. V rámci jedné zásady můžete definovat až 100 pravidel.

Každé pravidlo v rámci zásad má několik parametrů popsaných v následující tabulce:

Název parametru Typ parametru Notes Požaduje se
name String Název pravidla může obsahovat až 256 alfanumerických znaků. V názvu pravidla se rozlišují malá a velká písmena. Musí být jedinečný v rámci zásady. True
enabled Logická hodnota Volitelná logická hodnota, která umožňuje dočasné zakázání pravidla. Výchozí hodnota je true, pokud není nastavená. False
type Hodnota výčtu Aktuální platný typ je Lifecycle. True
definition Objekt, který definuje pravidlo životního cyklu Každá definice se skládá ze sady filtrů a sady akcí. True

Definice pravidla správy životního cyklu

Každá definice pravidla v rámci zásad zahrnuje sadu filtrů a sadu akcí. Sada filtrů omezuje akce pravidla na určitou sadu objektů v rámci názvů kontejnerů nebo objektů. Sada akcí použije akce vrstvy nebo odstranění na filtrovanou sadu objektů.

Ukázkové pravidlo

Následující ukázkové pravidlo vyfiltruje účet tak, aby spouštějí akce u objektů, které existují uvnitř sample-container , a začínají na blob1.

  • Vrstvení objektu blob na studenou úroveň 30 dnů po poslední úpravě
  • Vrstvení objektu blob do archivní vrstvy 90 dnů po poslední úpravě
  • Odstranění objektu blob 2 555 dnů (sedm let) po poslední úpravě
  • Odstranění předchozích verzí 90 dnů po vytvoření
{
  "rules": [
    {
      "enabled": true,
      "name": "sample-rule",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "version": {
            "delete": {
              "daysAfterCreationGreaterThan": 90
            }
          },
          "baseBlob": {
            "tierToCool": {
              "daysAfterModificationGreaterThan": 30
            },
            "tierToArchive": {
              "daysAfterModificationGreaterThan": 90,
              "daysAfterLastTierChangeGreaterThan": 7
            },
            "delete": {
              "daysAfterModificationGreaterThan": 2555
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ],
          "prefixMatch": [
            "sample-container/blob1"
          ]
        }
      }
    }
  ]
}

Poznámka:

Element baseBlob v zásadách správy životního cyklu odkazuje na aktuální verzi objektu blob. Element verze odkazuje na předchozí verzi.

Filtry pravidel

Filtry omezují akce pravidel na podmnožinu objektů blob v rámci účtu úložiště. Pokud je definováno více než jeden filtr, spustí se logická AND operace ve všech filtrech. Pomocí filtru můžete určit, které objekty blob se mají zahrnout. Filtr neposkytuje žádné prostředky k určení objektů blob, které se mají vyloučit.

Mezi filtry patří:

Název filtru Typ filtru Notes Je povinné
blobTypes Pole předdefinovaných hodnot výčtu. Aktuální verze podporuje blockBlob a appendBlob. Podporuje appendBlobse pouze akce Odstranit ; Nastavit úroveň není podporována. Ano
prefixMatch Pole řetězců pro předpony, které se mají shodovat. Každé pravidlo může definovat až 10 předpon rozlišující malá a velká písmena. Řetězec předpony musí začínat názvem kontejneru. Pokud například chcete, aby odpovídaly všem objektům blob v části https://myaccount.blob.core.windows.net/sample-container/blob1/..., zadejte předponuMatch jako sample-container/blob1. Tento filtr bude odpovídat všem objektům blob v ukázkovém kontejneru , jejichž názvy začínají objektem blob1.

.
Pokud předponuMatch nedefinujete, pravidlo se vztahuje na všechny objekty blob v rámci účtu úložiště. Řetězce předpon nepodporují porovnávání se zástupnými znaky. Znaky, jako *? jsou a jsou považovány za řetězcové literály. No
blobIndexMatch Pole hodnot slovníku, které se skládají z podmínek klíče a hodnoty indexu objektu blob, které se mají shodovat. Každé pravidlo může definovat až 10 podmínek pro značky indexů objektů blob. Pokud například chcete shodovat všechny objekty blob s Project = Contoso pod https://myaccount.blob.core.windows.net/ pravidlem, je {"name": "Project","op": "==","value": "Contoso"}objekt blobIndexMatch . Pokud nedefinujete objekt blobIndexMatch, pravidlo se vztahuje na všechny objekty blob v rámci účtu úložiště. No

Další informace o funkci indexu objektů blob společně se známými problémy a omezeními najdete v tématu Správa a vyhledání dat ve službě Azure Blob Storage s využitím indexu objektů blob.

Akce pravidel

Akce se použijí u filtrovaných objektů blob při splnění podmínky spuštění.

Správa životního cyklu podporuje vrstvení a odstranění aktuálních verzí, předchozích verzí a snímků objektů blob. Definujte alespoň jednu akci pro každé pravidlo.

Poznámka:

Vrstvení se zatím nepodporuje v účtu úložiště objektů blob bloku úrovně Premium. U všech ostatních účtů je vrstvení povolené jenom u objektů blob bloku, nikoli pro doplňovací objekty blob a objekty blob stránky.

Akce Aktuální verze Snímek Předchozí verze
tierToCool Podporováno pro blockBlob Podporováno Podporováno
tierToCold Podporováno pro blockBlob Podporováno Podporováno
enableAutoTierToHotFromCool1 Podporováno pro blockBlob Nepodporováno Nepodporováno
tierToArchive4 Podporováno pro blockBlob Podporováno Podporováno
odstranění2 3 Podporováno pro blockBlob a appendBlob Podporováno Podporováno

1 Akce enableAutoTierToHotFromCool je k dispozici pouze při použití s podmínkou daysAfterLastAccessTimeGreaterThan spuštění. Tato podmínka je popsaná v další tabulce.

2 Když se použije na účet s povoleným hierarchickým oborem názvů, akce odstranění odebere prázdné adresáře. Pokud adresář není prázdný, akce odstranění odebere objekty, které splňují podmínky zásad v rámci prvního cyklu provádění zásad životního cyklu. Pokud tato akce vede k prázdnému adresáři, který také splňuje podmínky zásad, tento adresář se odebere v rámci dalšího cyklu provádění atd.

3 Zásada správy životního cyklu neodstraní aktuální verzi objektu blob, dokud se neodstraní žádné předchozí verze nebo snímky přidružené k ho objektu blob. Pokud objekty blob ve vašem účtu úložiště mají předchozí verze nebo snímky, musíte zahrnout předchozí verze a snímky, když jako součást zásad zadáte akci odstranění.

4 Pouze účty úložiště nakonfigurované pro LRS, GRS nebo RA-GRS podporují přesun objektů blob do archivní úrovně. Archivní úroveň se nepodporuje pro účty ZRS, GZRS nebo RA-GZRS. Tato akce se zobrazí na základě redundance nakonfigurované pro účet.

Poznámka:

Pokud definujete více než jednu akci pro stejný objekt blob, správa životního cyklu použije u objektu blob nejméně nákladnou akci. Například akce delete je levnější než akce tierToArchive. Akce tierToArchive je levnější než akce tierToCool.

Podmínky spuštění jsou založeny na věku. Aktuální verze používají čas poslední změny nebo čas posledního přístupu, předchozí verze používají čas vytvoření verze a snímky objektů blob používají čas vytvoření snímku ke sledování věku.

Podmínka spuštění akce Hodnota podmínky Popis
daysAfterModificationGreaterThan Celočíselná hodnota označující věk ve dnech Podmínka pro akce v aktuální verzi objektu blob
daysAfterCreationGreaterThan Celočíselná hodnota označující věk ve dnech Podmínka pro akce na aktuální verzi nebo předchozí verzi objektu blob nebo snímku objektu blob
daysAfterLastAccessTimeGreaterThan1 Celočíselná hodnota označující věk ve dnech Podmínka pro aktuální verzi objektu blob při povolení sledování přístupu
daysAfterLastTierChangeGreaterThan Celočíselná hodnota označující věk ve dnech po změně poslední vrstvy objektu blob Tato podmínka se vztahuje pouze na tierToArchive akce a lze ji použít pouze s podmínkou daysAfterModificationGreaterThan .

1 Pokud sledování času posledního přístupu není povoleno, daysAfterLastAccessTimeGreaterThan použije datum, kdy byly zásady životního cyklu povoleny místo LastAccessTime vlastnosti objektu blob. Toto datum se používá také v případě, že LastAccessTime vlastnost má hodnotu null. Další informace o použití sledování času posledního přístupu najdete v tématu Přesunutí dat na základě času posledního přístupu.

Spustí se zásady životního cyklu.

Platforma spouští zásady životního cyklu jednou denně. Když nakonfigurujete nebo upravíte zásady životního cyklu, může trvat až 24 hodin, než se změny projeví a první spuštění se spustí. Doba potřebná k dokončení akcí zásad závisí na počtu vyhodnocených a provozovaných objektů blob.

Pokud zásadu zakážete, nebudou naplánovaná žádná nová spuštění zásad, ale pokud už běží spuštění, bude toto spuštění pokračovat, dokud se nedokončí a nebude se vám účtovat všechny akce, které jsou potřeba k dokončení spuštění. Viz regionální dostupnost a ceny.

Událost dokončení zásad životního cyklu

Po provedení akcí definovaných v zásadách správy životního cyklu se vygeneruje událost LifecyclePolicyCompleted. Následující json ukazuje ukázkovou LifecyclePolicyCompleted událost.

{
    "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/contosoresourcegroup/providers/Microsoft.Storage/storageAccounts/contosostorageaccount",
    "subject": "BlobDataManagement/LifeCycleManagement/SummaryReport",
    "eventType": "Microsoft.Storage.LifecyclePolicyCompleted",
    "eventTime": "2022-05-26T00:00:40.1880331",    
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "data": {
        "scheduleTime": "2022/05/24 22:57:29.3260160",
        "deleteSummary": {
            "totalObjectsCount": 16,
            "successCount": 14,
            "errorList": ""
        },
        "tierToCoolSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        },
        "tierToArchiveSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        }
    },
    "dataVersion": "1",
    "metadataVersion": "1"
}

Následující tabulka popisuje schéma LifecyclePolicyCompleted události.

Pole Typ Popis
scheduleTime string Čas naplánování zásad životního cyklu
deleteSummary vektorový<bajt> Souhrn výsledků plánovaných operací odstranění objektů blob
tierToCoolSummary vektorový<bajt> Souhrn výsledků objektů blob naplánovaných pro operaci vrstvy na studenou
tierToArchiveSummary vektorový<bajt> Souhrn výsledků objektů blob naplánovaných pro operaci vrstvy a archivace

Příklady zásad životního cyklu

Následující příklady ukazují, jak řešit běžné scénáře s pravidly zásad životního cyklu.

Přesun starších dat na chladnější vrstvu

Tento příklad ukazuje, jak převést objekty blob bloku s předponou sample-container/blob1 nebo container2/blob2. Zásady přejdou objekty blob, které nebyly změněny za více než 30 dnů, na studené úložiště a objekty blob se během 90 dnů nezmění na archivní úroveň:

{
  "rules": [
    {
      "name": "agingRule",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ],
          "prefixMatch": [ "sample-container/blob1", "container2/blob2" ]
        },
        "actions": {
          "baseBlob": {
            "tierToCool": { "daysAfterModificationGreaterThan": 30 },
            "tierToArchive": { "daysAfterModificationGreaterThan": 90 }
          }
        }
      }
    }
  ]
}

Přesun dat na základě času posledního přístupu

Sledování času posledního přístupu můžete povolit, aby se zachoval záznam o posledním čtení nebo zápisu objektu blob a jako filtr pro správu vrstvení a uchovávání dat objektů blob. Informace o povolení sledování času posledního přístupu najdete v tématu Volitelné povolení sledování času přístupu.

Při povolení sledování času posledního přístupu se volá vlastnost LastAccessTime objektu blob při čtení nebo zápisu objektu blob. Operace Získání objektu blob se považuje za přístupovou operaci. Operace získání vlastností objektu blob, získání metadat objektů blob a získání značek objektů blob nejsou přístupné, a proto neaktualizují čas posledního přístupu.

Pokud je povolené sledování času posledního přístupu, správa životního cyklu používá LastAccessTime k určení, jestli je splněna podmínka spuštěníafterLastAccessTimeGreaterThan . Správa životního cyklu používá datum, kdy byly zásady životního cyklu povoleny místo LastAccessTime v následujících případech:

  • Hodnota LastAccessTime vlastnosti objektu blob je hodnota null.

    Poznámka:

    Vlastnost lastAccessedOn objektu blob je null, pokud objekt blob nebyl od posledního povolení sledování přístupu povolen.

  • Sledování času posledního přístupu není povoleno.

Pokud chcete minimalizovat vliv na latenci přístupu pro čtení, aktualizuje se čas posledního přístupu pouze při prvním čtení za posledních 24 hodin. Následné čtení ve stejném 24hodinovém období neaktualizují čas posledního přístupu. Pokud se objekt blob změní mezi čtením, čas posledního přístupu je novější ze dvou hodnot.

V následujícím příkladu se objekty blob přesunou do studeného úložiště, pokud nebyly po dobu 30 dnů přístupné. Vlastnost enableAutoTierToHotFromCool je logická hodnota, která označuje, jestli má být objekt blob automaticky vrstvený z studené zpět na horkou, pokud je znovu přístupný po vrstvení na studenou.

Tip

Pokud se objekt blob přesune na studenou úroveň a pak se automaticky přesune zpět před uplynutím 30 dnů, bude se účtovat poplatek za předčasné odstranění. Než vlastnost nastavíte enablAutoTierToHotFromCool , nezapomeňte analyzovat vzory přístupu dat, abyste mohli snížit neočekávané poplatky.

{
  "enabled": true,
  "name": "last-accessed-thirty-days-ago",
  "type": "Lifecycle",
  "definition": {
    "actions": {
      "baseBlob": {
        "enableAutoTierToHotFromCool": true,
        "tierToCool": {
          "daysAfterLastAccessTimeGreaterThan": 30
        }
      }
    },
    "filters": {
      "blobTypes": [
        "blockBlob"
      ],
      "prefixMatch": [
        "mylifecyclecontainer/log"
      ]
    }
  }
}

Archivace dat po ingestování

Některá data zůstávají v cloudu nečinná a přístup k některým datům se zřídka používá. Následující zásady životního cyklu jsou nakonfigurované tak, aby archivovaly data krátce po ingestování. Tento příklad převede objekty blob bloku v kontejneru pojmenovaném archivecontainer na archivní úroveň. Přechod se provádí akcemi na objektech blob 0 dnů po poslední změně.

{
  "rules": [
    {
      "name": "archiveRule",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ],
          "prefixMatch": [ "archivecontainer" ]
        },
        "actions": {
          "baseBlob": {
              "tierToArchive": { 
                "daysAfterModificationGreaterThan": 0
              }
          }
        }
      }
    }
  ]
}

Poznámka:

Microsoft doporučuje, abyste své objekty blob nahráli přímo do archivní úrovně, aby byla vyšší efektivita. Archivní úroveň můžete zadat v hlavičce x-ms-access-tier v operaci Put Blob nebo Put Block List. Hlavička x-ms-access-tier je podporovaná v rozhraní REST verze 2018-11-09 a novějších nebo nejnovějších klientských knihovnách úložiště objektů blob.

Vypršení platnosti dat na základě věku

U některých dat se očekává vypršení platnosti dnů nebo měsíců po vytvoření. Zásady správy životního cyklu můžete nakonfigurovat tak, aby platnost dat vypršela odstraněním na základě věku dat. Následující příklad ukazuje zásadu, která odstraní všechny objekty blob bloku, které nebyly změněny za posledních 365 dnů.

{
  "rules": [
    {
      "name": "expirationRule",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ]
        },
        "actions": {
          "baseBlob": {
            "delete": { "daysAfterModificationGreaterThan": 365 }
          }
        }
      }
    }
  ]
}

Odstranění dat pomocí značek indexu objektů blob

Platnost některých dat by měla vypršena pouze v případě, že jsou explicitně označená k odstranění. Můžete nakonfigurovat zásadu správy životního cyklu tak, aby vypršela platnost dat, která jsou označená atributy klíče a hodnoty indexu objektů blob. Následující příklad ukazuje zásadu, která odstraní všechny objekty blob bloku označené Project = Contoso. Další informace o indexu objektů blob najdete v tématu Správa a vyhledání dat ve službě Azure Blob Storage pomocí indexu objektů blob.

{
    "rules": [
        {
            "enabled": true,
            "name": "DeleteContosoData",
            "type": "Lifecycle",
            "definition": {
                "actions": {
                    "baseBlob": {
                        "delete": {
                            "daysAfterModificationGreaterThan": 0
                        }
                    }
                },
                "filters": {
                    "blobIndexMatch": [
                        {
                            "name": "Project",
                            "op": "==",
                            "value": "Contoso"
                        }
                    ],
                    "blobTypes": [
                        "blockBlob"
                    ]
                }
            }
        }
    ]
}

Správa předchozích verzí

U dat, která se upravují a přistupují pravidelně během své životnosti, můžete povolit správu verzí úložiště objektů blob, aby se automaticky zachovaly předchozí verze objektu. Můžete vytvořit zásadu pro vrstvení nebo odstranění předchozích verzí. Stáří verze se určuje vyhodnocením času vytvoření verze. Toto pravidlo zásad přesune předchozí verze v kontejneru activedata , které jsou po vytvoření verze 90 dnů nebo starší, na studenou úroveň a odstraní předchozí verze, které jsou 365 dnů nebo starší.

{
  "rules": [
    {
      "enabled": true,
      "name": "versionrule",
      "type": "Lifecycle",
      "definition": {
        "actions": {
          "version": {
            "tierToCool": {
              "daysAfterCreationGreaterThan": 90
            },
            "delete": {
              "daysAfterCreationGreaterThan": 365
            }
          }
        },
        "filters": {
          "blobTypes": [
            "blockBlob"
          ],
          "prefixMatch": [
            "activedata/"
          ]
        }
      }
    }
  ]
}

Regionální dostupnost a ceny

Funkce správy životního cyklu je dostupná ve všech oblastech Azure.

Zásady správy životního cyklu jsou bezplatné. Zákazníci se účtují za standardní provozní náklady na volání rozhraní API pro sadu objektů blob . Operace odstranění jsou bezplatné. Jiné služby a nástroje Azure, jako je Microsoft Defender for Storage , se ale můžou účtovat za operace spravované prostřednictvím zásad životního cyklu.

Každá aktualizace času posledního přístupu objektu blob se účtuje v rámci druhé kategorie operací .

Další informace o cenách najdete u cen objektů blob bloku.

Známé problémy a omezení

  • Vrstvení se zatím nepodporuje v účtu úložiště objektů blob bloku úrovně Premium. U všech ostatních účtů je vrstvení povolené jenom u objektů blob bloku, nikoli pro doplňovací objekty blob a objekty blob stránky.

  • Zásady správy životního cyklu musí být přečtené nebo napsané v plném rozsahu. Částečné aktualizace nejsou podporovány.

  • Každé pravidlo může mít až 10 předpon rozlišující malá a velká písmena a až 10 podmínek značek indexu objektů blob.

  • Pokud pro účet úložiště povolíte pravidla brány firewall, můžou se zablokovat požadavky na správu životního cyklu. Tyto požadavky můžete odblokovat přidáním výjimek pro důvěryhodné služby Microsoftu. Další informace najdete v části Výjimky v tématu Konfigurace bran firewall a virtuálních sítí.

  • Zásady správy životního cyklu nemůžou změnit úroveň objektu blob, která používá obor šifrování.

  • Akce odstranění zásady správy životního cyklu nebude fungovat s žádným objektem blob v neměnném kontejneru. S neměnnou zásadou je možné vytvářet a číst objekty, ale ne upravovat ani odstraňovat. Další informace najdete v tématu Ukládání důležitých obchodních dat objektů blob s neměnným úložištěm.

Nejčastější dotazy

Viz Nejčastější dotazy ke správě životního cyklu.

Další kroky