Veri yaşam döngüsünü otomatik olarak yöneterek maliyetleri iyileştirin
Veri kümelerinin benzersiz ömürleri vardır. Yaşam döngüsünün başlarında, insanlar bazı verilere sık erişir. Ancak erişim gereksinimi genellikle verilerin yaşlanmasından büyük ölçüde önemli ölçüde düşmez. Bazı veriler bulutta boş kalır ve depolandıktan sonra nadiren erişilebilir. Bazı veri kümeleri oluşturulduktan sonra gün veya ay sonra sona erer, diğer veri kümeleri yaşam süreleri boyunca etkin bir şekilde okunabilir ve değiştirilir. Azure Depolama yaşam döngüsü yönetimi, blob verilerini uygun erişim katmanlarına geçiş yapmak veya veri yaşam döngüsünün sonunda verileri sona erdirmek için kullanabileceğiniz kural tabanlı bir ilke sunar.
Yaşam döngüsü yönetimi ilkesiyle şunları yapabilirsiniz:
- Performans için optimize etmek üzere, erişimlerden seyrek erişimli blob 'ları sık erişimli olarak anında geçiş yapın.
- Bu nesneler için bir süre erişilmemişse veya değiştirilmediyse, bu nesnelere bir dönem boyunca erişilmemişse veya bu nesnelere değişiklik yaptıysanız, geçiş Blobları, blob sürümleri ve BLOB anlık görüntüleri daha soğuk bir depolama katmanına. Bu senaryoda, yaşam döngüsü yönetimi ilkesi nesneleri sık erişimli 'ten seyrek erişimli, sık erişimli veya seyrek erişimli veya seyrek erişimli olarak taşıyabilir.
- Bloblarını, blob sürümlerini ve BLOB anlık görüntülerini, kullanım ömürleri sonunda silin.
- Depolama hesabı düzeyinde günde bir kez çalıştırılacak kuralları tanımlayın.
- Filtre olarak ad öneklerini veya blob dizini etiketlerini kullanarak kapsayıcılara veya Blobların bir alt kümesine kuralları uygulayın.
Yaşam döngüsünün erken aşamaları sırasında, ancak iki hafta sonra zaman içinde sıklıkla erişilen bir senaryoyu düşünün. İlk ayın ötesinde veri kümesine nadiren erişilir. Bu senaryoda, etkin depolama, erken aşamalar sırasında en iyisidir. Seyrek Erişimli Depolama, büyük olasılıkla erişim için en uygun. Arşiv depolaması, verilerin bir ay boyunca yaşından sonraki en iyi katman seçeneğidir. Yaşam döngüsü yönetim ilkesi kurallarıyla verileri uygun depolama katmanına taşıyarak, gereksinimlerinize en az maliyetli çözümü tasarlayabilirsiniz.
yaşam döngüsü yönetimi ilkeleri, blok blobları ve genel amaçlı v2, premium blok blobu ve blob Depolama hesaplarında ekleme blobları için desteklenir. Yaşam döngüsü yönetimi, $logs veya $Web kapsayıcıları gibi sistem kapsayıcılarını etkilemez.
Önemli
Bir veri kümesinin okunabilir olması gerekiyorsa, Blobları arşiv katmanına taşımak için bir ilke ayarlamayın. Arşiv katmanındaki Bloblar, zaman alan ve pahalı olabilecek bir işlem olan ilk kez yeniden belirtilmedikçe okunamaz. Daha fazla bilgi için bkz. Arşiv katmanından blob yeniden doldurma 'Ya genel bakış.
Yaşam döngüsü yönetimi ilke tanımı
Yaşam döngüsü yönetimi ilkesi, bir JSON belgesindeki kuralların koleksiyonudur. Aşağıdaki örnek JSON, bir kural tanımını göstermektedir:
{
"rules": [
{
"name": "rule1",
"enabled": true,
"type": "Lifecycle",
"definition": {...}
},
{
"name": "rule2",
"type": "Lifecycle",
"definition": {...}
}
]
}
İlke, aşağıdaki tabloda açıklandığı gibi bir kurallar koleksiyonudur:
| Parametre adı | Parametre türü | Notlar |
|---|---|---|
rules |
Kural nesneleri dizisi | İlkede en az bir kural gereklidir. Bir ilkede en fazla 100 kuralı tanımlayabilirsiniz. |
İlke içindeki her bir kural, aşağıdaki tabloda açıklanan birkaç parametreye sahiptir:
| Parametre adı | Parametre türü | Notlar | Gerekli |
|---|---|---|---|
name |
Dize | Bir kural adı en fazla 256 alfasayısal karakter içerebilir. Kural adı büyük/küçük harfe duyarlıdır. Bir ilke içinde benzersiz olmalıdır. | Doğru |
enabled |
Boole | Bir kuralın geçici olarak devre dışı bırakılması için isteğe bağlı bir Boole değeri. Ayarlanmamışsa varsayılan değer true 'dur. | Yanlış |
type |
Sabit listesi değeri | Geçerli geçerli tür Lifecycle . |
Doğru |
definition |
Yaşam döngüsü kuralını tanımlayan bir nesne | Her tanım bir filtre kümesinden ve bir eylem kümesinden oluşur. | Doğru |
Yaşam döngüsü yönetim kuralı tanımı
Bir ilke içindeki her kural tanımı bir filtre kümesi ve bir eylem kümesi içerir. Filtre kümesi , kural eylemlerini bir kapsayıcı veya nesne adları içindeki belirli bir nesne kümesiyle sınırlandırır. Eylem kümesi katman veya silme eylemlerini filtrelenmiş nesne kümesine uygular.
Örnek kural
Aşağıdaki örnek kural, içinde bulunan ve ile başlayan nesneler üzerinde eylemleri çalıştırmak için hesabı filtreler sample-container blob1 .
- Katman blobu son değişiklikten sonra 30 gün sonra seyrek erişimli katmana
- Son değişiklikten sonra katman blobu 90 gün sonra arşiv katmanı
- Son değişiklikten sonra blob 2.555 gün (yedi yıl) silme
- Önceki blob sürümlerini silme sonrasında 90 gün sonra
{
"rules": [
{
"enabled": true,
"name": "sample-rule",
"type": "Lifecycle",
"definition": {
"actions": {
"version": {
"delete": {
"daysAfterCreationGreaterThan": 90
}
},
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
},
"tierToArchive": {
"daysAfterModificationGreaterThan": 90
},
"delete": {
"daysAfterModificationGreaterThan": 2555
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"sample-container/blob1"
]
}
}
}
]
}
Kural filtreleri
Filtre, kural eylemlerini depolama hesabındaki Blobların bir alt kümesiyle sınırlar. Birden çok filtre tanımlanmışsa, AND Tüm filtrelerdeki mantıksal bir çalışır.
Filtreler aşağıdakileri içerir:
| Filtre adı | Filtre türü | Notlar | Gereklidir |
|---|---|---|---|
| blobTypes | Önceden tanımlanmış sabit listesi değerleri dizisi. | Geçerli yayın ve destekler blockBlob appendBlob . İçin yalnızca silme desteklenir appendBlob , set Tier desteklenmez. |
Yes |
| prefixMatch | Öneklerin eşleştirileceği dizeler dizisi. Her kural, en fazla 10 büyük harfe sensli ön ek ön eki tanımlayabilir. Önek dizesinin bir kapsayıcı adıyla başlaması gerekir. Örneğin, bir kural için altındaki tüm Blobları eşleştirmek istiyorsanız, https://myaccount.blob.core.windows.net/sample-container/blob1/... prefixMatch olur sample-container/blob1 . |
PrefixMatch tanımlayamazsınız, kural depolama hesabındaki tüm Bloblar için geçerlidir. | No |
| blobIndexMatch | Blob dizini etiketi anahtarından ve eşleştirilecek değer koşullarından oluşan Sözlük değerleri dizisi. Her kural, en fazla 10 blob Dizin etiketi koşulunu tanımlayabilir. Örneğin, bir kural için altındaki tüm Blobları eşleştirmek istiyorsanız Project = Contoso https://myaccount.blob.core.windows.net/ , blobIndexMatch olur {"name": "Project","op": "==","value": "Contoso"} . |
BlobIndexMatch tanımlayamazsınız, kural depolama hesabındaki tüm Bloblar için geçerlidir. | No |
blob dizini özelliği hakkında bilinen sorunlar ve sınırlamalar hakkında daha fazla bilgi edinmek için bkz. Azure blob 'da verileri yönetme ve bulma Depolama blob diziniylebirlikte.
Kural eylemleri
İşlemler, çalışma koşulu karşılandığında filtrelenmiş bloblara uygulanır.
Yaşam döngüsü yönetimi, Blobları, önceki blob sürümlerini ve BLOB anlık görüntülerini katmanlamayı ve silmeyi destekler. Temel Bloblar, önceki blob sürümleri veya blob anlık görüntüleri üzerinde her kural için en az bir eylem tanımlayın.
| Eylem | Temel blob | Anlık Görüntü | Sürüm |
|---|---|---|---|
| tierToCool | Şu için destekle: blockBlob |
Desteklenir | Desteklenir |
| enableAutoTierToHotFromCool | Şu için destekle: blockBlob |
Desteklenmez | Desteklenmez |
| tierToArchive | Şu için destekle: blockBlob |
Desteklenir | Desteklenir |
| delete | ve için blockBlob destek appendBlob |
Desteklenir | Desteklenir |
Not
Aynı blobda birden fazla eylem tanımlarsanız, yaşam döngüsü yönetimi bloba en ucuz eylemi uygular. Örneğin, eylem delete eylemden daha tierToArchive ucuzdur. Eylem, tierToArchive eylemden daha ucuzdur. tierToCool
Çalıştırma koşulları yaşa bağlıdır. Temel bloblar son değiştirme zamanı, blob sürümleri sürüm oluşturma zamanı ve blob anlık görüntüleri yaş izlemek için anlık görüntü oluşturma zamanı kullanır.
| Eylem çalıştırma koşulu | Koşul değeri | Description |
|---|---|---|
| daysAfterModificationGreaterThan | Yaş değerini gün olarak gösteren tamsayı değeri | Temel blob eylemlerinin koşulu |
| daysAfterCreationGreaterThan | Yaş değerini gün olarak gösteren tamsayı değeri | Blob sürümü ve blob anlık görüntüsü eylemlerinin koşulu |
| daysAfterLastAccessTimeGreaterThan | Yaş değerini gün olarak gösteren tamsayı değeri | Erişim izleme etkinleştirildiğinde temel blob eylemlerinin koşulu |
Yaşam döngüsü ilkeleri örnekleri
Aşağıdaki örnekler, yaşam döngüsü ilkesi kurallarıyla yaygın senaryoların nasıl ele alalı olduğunu gösteriyor.
Eskime verilerini daha soğuk bir katmana taşıma
Bu örnekte, veya ön ekli blok bloblarını nasıl geçişli olduğu sample-container/blob1 container2/blob2 gösterir. İlke, 30 gün içinde değiştirilmeden blobları soğuk depolama alanına ve 90 gün içinde değiştirilmeen blobları arşiv katmanına iletir:
{
"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 }
}
}
}
}
]
}
Verileri son erişim zamanlarına göre taşıma
Blob verilerinizin katmanlama ve saklamayı yönetmek için blob'nizin son ne zaman okundu veya yazıldığına ilişkin bir kaydı ve bir filtre olarak tutmak için son erişim zamanı izlemesini etkinleştirebilirsiniz. Son erişim zamanı izlemeyi etkinleştirme hakkında bilgi edinmek için bkz. İsteğe bağlı olarak erişim zamanı izlemeyi etkinleştirme.
Son erişim zamanı izleme etkinleştirildiğinde, bir blob okundu veya yazıldığı LastAccessTime zaman adlı blob özelliği güncelleştirilir. Blob Al işlemi bir erişim işlemi olarak kabul edilir. Blob Özelliklerini Al, Blob MetaVerilerini Al ve Blob Etiketlerini Al işlemlerine erişenler değildir ve bu nedenle son erişim zamanlarını güncelleştirmez.
Okuma erişim gecikmesi üzerindeki etkiyi en aza indirmek için son 24 saat yalnızca ilk okuma zamanı son erişim süresini ler. Aynı 24 saatlik süre içinde sonraki okumalar son erişim zamanını güncelleştirmez. Okumalar arasında bir blob değiştirilirse, son erişim zamanı iki değerin en sonki zamanıdır.
Aşağıdaki örnekte, bloblara 30 gün boyunca erişilemedikse, bloblar cool depolamaya taşınır. özelliği, bir bloba katmanlandıktan sonra yeniden erişildikten sonra yeniden erişilirse, bir blob'un otomatik olarak soğutma geri katmanından tekrar sıcak katmanına gerekip gerek olmadığını belirten enableAutoTierToHotFromCool bir Boole değeridir.
{
"enabled": true,
"name": "last-accessed-thirty-days-ago",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"enableAutoTierToHotFromCool": true,
"tierToCool": {
"daysAfterLastAccessTimeGreaterThan": 30
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"mylifecyclecontainer/log"
]
}
}
}
Verileri başladıktan sonra arşivleme
Bazı veriler bulutta boşta kalır ve erişilirse nadiren erişilir. Aşağıdaki yaşam döngüsü ilkesi, alındıktan kısa süre sonra verileri arşivlemek üzere yapılandırılmıştır. Bu örnek, adlı bir kapsayıcıda yer alan blok bloblarını archivecontainer arşiv katmanına iletir. Geçiş, son değiştirme zamanından 0 gün sonra bloblar üzerinde harekete geçerek başarılı olur:
{
"rules": [
{
"name": "archiveRule",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ],
"prefixMatch": [ "archivecontainer" ]
},
"actions": {
"baseBlob": {
"tierToArchive": { "daysAfterModificationGreaterThan": 0 }
}
}
}
}
]
}
Not
Microsoft, daha fazla verimlilik için bloblarınızı doğrudan arşiv katmanına yüklemenizi önermektedir. Arşiv katmanını Blob Koy veya Blok Listesi Koy işlemi üzerinde x-ms-access-tier üst bilgisinde belirtebilirsiniz. x-ms-access-tier üst bilgisi REST sürüm 2018-11-09 ve daha yeni veya en son blob depolama istemci kitaplıkları ile de destekleniyor.
Yaşa göre verilerin süresini sona erdir
Bazı verilerin oluşturulmasının ardından gün veya ayların dolması beklenir. Veri yaşı temel alarak verileri silen verilerin süresinin dolması için bir yaşam döngüsü yönetim ilkesi yapılandırabilirsiniz. Aşağıdaki örnekte, 365 günlükten eski tüm blok bloblarını silebilir.
{
"rules": [
{
"name": "expirationRule",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": [ "blockBlob" ]
},
"actions": {
"baseBlob": {
"delete": { "daysAfterModificationGreaterThan": 365 }
}
}
}
}
]
}
Blob dizini etiketleriyle verileri silme
Bazı verilerin süresi yalnızca açıkça silinmek üzere işaretlenirse süresi dolması gerekir. Blob dizin anahtarı/değer öznitelikleriyle etiketlenmiş verilerin süresinin dolması için bir yaşam döngüsü yönetim ilkesi yapılandırabilirsiniz. Aşağıdaki örnekte, ile etiketlenmiş tüm blok bloblarını sildi bir ilke Project = Contoso gösterir. Blob dizini hakkında daha fazla bilgi edinmek için bkz. Blob diziniyle Azure Blob Depolama verileri yönetme ve bulma (Önizleme).
{
"rules": [
{
"enabled": true,
"name": "DeleteContosoData",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 0
}
}
},
"filters": {
"blobIndexMatch": [
{
"name": "Project",
"op": "==",
"value": "Contoso"
}
],
"blobTypes": [
"blockBlob"
]
}
}
}
]
}
Sürümleri yönetme
Yaşam süresi boyunca düzenli olarak değiştirilen ve erişilen veriler için blob depolama sürümü oluşturma özelliğiyle nesnenin önceki sürümlerini otomatik olarak koruyabilirsiniz. Önceki sürümleri katmanla veya silen bir ilke oluşturabilirsiniz. Sürüm yaşı, sürüm oluşturma zamanı değerlendirerek belirlenir. Bu ilke kuralı, kapsayıcı içindeki sürüm oluşturma işlemi sonrasında 90 gün veya daha eski olan önceki sürümleri, 365 gün veya daha eski olan eski sürümleri de katmanlara activedata katmanlar.
{
"rules": [
{
"enabled": true,
"name": "versionrule",
"type": "Lifecycle",
"definition": {
"actions": {
"version": {
"tierToCool": {
"daysAfterCreationGreaterThan": 90
},
"delete": {
"daysAfterCreationGreaterThan": 365
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"activedata"
]
}
}
}
]
}
Özellik desteği
Bu tabloda, bu özelliğin hesapta nasıl desteklen olduğu ve belirli özellikleri etkinleştiren destek üzerindeki etkisi yer alır.
| Depolama hesabı türü | Blob Depolama (varsayılan destek) | Data Lake Depolama 2. Nesil | NFS 3.0 1 | SFTP 1 |
|---|---|---|---|---|
| Standart genel amaçlı v2 | ||||
| Premium blobları |
1 Data Lake Depolama 2. Nesil, Ağ Dosya Sistemi (NFS) 3.0 protokolü ve Secure Dosya Aktarım Protokolü (SFTP) desteği, hiyerarşik ad alanı etkinleştirilmiş bir depolama hesabı gerektirir.
Bölgesel kullanılabilirlik ve fiyatlandırma
Yaşam döngüsü yönetimi özelliği tüm Azure bölgelerinde kullanılabilir.
Yaşam döngüsü yönetimi ilkeleri ücretsizdir. Müşteriler, Blob Katmanı Ayarlama API'si çağrıları için standart işlem maliyetleri için faturalandırıldı. Silme işlemleri ücretsizdir.
Blob'un son erişim zamanlarına yönelik her güncelleştirme, diğer işlemler kategorisi altında faturalandırıldı.
Fiyatlandırma hakkında daha fazla bilgi için bkz. Blok Blobu fiyatlandırması.
SSS
Yeni bir ilke oluşturdum, eylemler neden hemen çalıştırılmalıdır?
Platform, yaşam döngüsü ilkesini günde bir kez çalıştırır. Bir ilke yapılandırıldığında, bazı eylemlerin ilk kez çalışması 24 saate kadar sürebilir.
Mevcut bir ilkeyi güncelleştirerim, eylemlerin çalışması ne kadar zaman alır?
Güncelleştirilmiş ilkenin etkili olmak 24 saat kadar sürer. İlke etkili olduktan sonra eylemlerin çalışması 24 saate kadar sürebilir. Bu nedenle, ilke eylemlerinin tamamlanması 48 saate kadar sürebilir. Güncelleştirme bir kuralı devre dışı bırakmak veya silmekse ve enableAutoTierToHotFromCool kullanılıyorsa, Etkin katmana otomatik katmanlama yine de olur. Örneğin, son erişime göre enableAutoTierToHotFromCool dahil bir kural ayarlayın. Kural devre dışı bırakılmış/silinmişse ve bir blob şu anda cool ve ardından erişiliyorsa, yaşam döngüsü yönetiminin dışında erişimde uygulandığı için Etkin'e geri döner. Ardından yaşam döngüsü yönetim kuralı devre dışı bırakılmıştır/silindiğinde blob Hot'dan Cool'a taşınmaz. autoTierToHotFromCool'un önlemenin tek yolu son erişim zamanı izlemesini kapatmakdır.
Arşivlenmiş bir blobu el ile yeniden kaldırdım, bunun geçici olarak Arşiv katmanına geri taşınmasını nasıl önleyebilirsiniz?
Blob bir erişim katmanından diğerine taşındığında son değişiklik zamanı değişmez. Arşivlenmiş bir blobu el ile sıcak katmana yeniden hazırlarsanız, bu blob yaşam döngüsü yönetim altyapısı tarafından arşiv katmanına geri taşınır. Bu blobu yeniden arşivlemesini önlemek için geçici olarak etkileyen kuralı devre dışı bırakma. Blob arşiv katmanına güvenli bir şekilde taşınana kadar kuralı yeniden etkinleştirin. Sık erişimli veya sık erişimli katmanın kalıcı olarak kalması gerekirse blobu başka bir konuma da kopyaabilirsiniz.