Otimizar custos gerindo automaticamente o ciclo de vida de dados

Os conjuntos de dados têm ciclos de vida exclusivos. No início do ciclo de vida, as pessoas acedem frequentemente a alguns dados. Mas a necessidade de acesso geralmente cai drasticamente à medida que os dados envelhecem. Alguns dados permanecem indletes na nuvem e raramente são acedidos uma vez armazenados. Alguns conjuntos de dados expiram dias ou meses após a criação, enquanto outros conjuntos de dados são lidos e modificados ativamente ao longo das respetivas duraçãos. A gestão do ciclo de vida do Azure Armazenamento oferece uma política baseada em regras que pode utilizar para fazer a transição de dados blob para os níveis de acesso adequados ou para expirar dados no final do ciclo de vida de dados.

Com a política de gestão do ciclo de vida, pode:

  • Transição de blobs de refrescante a quente imediatamente quando são acedidos, para otimizar para o desempenho.
  • Blobs de transição, versões blob e instantâneos blob para uma zona de armazenamento mais interessante se estes objetos não foram acetidos ou modificados durante um período de tempo, para otimizar o custo. Neste cenário, a política de gestão do ciclo de vida pode mover objetos de ativos para fixes, de ativos para arquivados ou do arquivo fixe para o arquivo.
  • Elimine blobs, versões blob e instantâneos blob no final dos respetivos ciclos de vida.
  • Defina regras a executar uma vez por dia ao nível da conta de armazenamento.
  • Aplique regras a contentores ou a um subconjunto de blobs, utilizando prefixos de nome ou etiquetas de índice blob como filtros.

Considere um cenário em que os dados são acededos frequentemente durante as fases iniciais do ciclo de vida, mas apenas ocasionalmente após duas semanas. Após o primeiro mês, o conjunto de dados raramente é acededo. Neste cenário, o armazenamento atual é melhor durante as fases iniciais. O armazenamento fixe é mais adequado para acesso ocasional. O armazenamento de arquivo é a melhor opção de nível após as idades dos dados ao longo de um mês. Ao mover dados para a escalão de armazenamento adequada com base na sua idade com regras de política de gestão do ciclo de vida, pode estruturar a solução menos dispendiosa para as suas necessidades.

As políticas de gestão do ciclo de vida são suportadas para bloquear blobs e acrescentam blobs em geral v2, blob de bloco premium e Blob Armazenamento contas. A gestão do ciclo de vida não afeta contentores de sistema, $logs ou $web contentores.

Importante

Se for necessário ler um conjunto de dados, não defina uma política para mover blobs para a escalão de arquivo. Os blobs na fase de arquivo não podem ser lidos, a menos que sejam re hidratados primeiro, um processo que pode ser demorado e dispendioso. Para obter mais informações, consulte Overview of blob re hidrateation from the archive tier.

Definição da política de gestão do ciclo de vida

Uma política de gestão do ciclo de vida é uma coleção de regras num documento JSON. O exemplo seguinte JSON mostra uma definição de regra completa:

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

Uma política é uma coleção de regras, conforme descrito na seguinte tabela:

Nome do parâmetro Tipo de parâmetro Notas
rules Uma matriz de objetos de regra É necessário pelo menos uma regra numa política. Pode definir até 100 regras numa política.

Cada regra da política tem vários parâmetros, descritos na seguinte tabela:

Nome do parâmetro Tipo de parâmetro Notas Obrigatório
name Cadeia Um nome de regra pode incluir até 256 carateres alfanuméricos. O nome da regra é sensível às caixas de dados. Tem de ser exclusivo dentro de uma política. True
enabled Booleano Um booleano opcional para permitir que uma regra seja desativada temporária. O valor predefinido é verdadeiro se não estiver definido. Falso
type Um valor enum O tipo válido atual é Lifecycle . True
definition Um objeto que define a regra de ciclo de vida Cada definição é formada por um conjunto de filtros e um conjunto de ações. True

Definição da regra de gestão do ciclo de vida

Cada definição de regra numa política inclui um conjunto de filtros e um conjunto de ações. O conjunto de filtros limita as ações de regra a um determinado conjunto de objetos dentro de um contentor ou nomes de objetos. O conjunto de ações aplica a escalão ou elimina as ações ao conjunto filtrado de objetos.

Regra de exemplo

A seguinte regra de exemplo filtra a conta para executar as ações em objetos existentes no interior sample-container e começar com blob1 .

  • Escalão blob para arrefecer 30 dias após a última modificação
  • Escalão blob para arquiver a nível 90 dias após a última modificação
  • Eliminar blob 2.555 dias (sete anos) após a última modificação
  • Eliminar versões blob anteriores 90 dias após a criação
{
  "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"
          ]
        }
      }
    }
  ]
}

Filtros de regras

Os filtros limitam as ações de regra a um subconjunto de blobs na conta de armazenamento. Se estiver definido mais do que um filtro, é executado um filtro AND lógico em todos os filtros.

Os filtros incluem:

Nome do filtro Tipo de filtro Notas É Obrigatório
blobTypes É uma matriz de valores enum predefinidos. A versão atual suporta blockBlob e appendBlob . Apenas é suportado o suporte appendBlob para , definir o nível de eliminação não é suportado. Sim
prefixoMatch Uma matriz de cadeias de prefixos a corresponder. Cada regra pode definir até 10 prefixos com sensibilidade a casos. Uma cadeia de prefixos tem de começar com um nome de contentor. Por exemplo, se quiser corresponder todos os blobs abaixo de uma regra, o https://myaccount.blob.core.windows.net/sample-container/blob1/... prefixoMatch é sample-container/blob1 . Se não definir prefixoMatch, a regra aplica-se a todos os blobs na conta de armazenamento. Não
blobIndexMatch Uma matriz de valores de dicionário que consiste em marcas de índice remissário blob e condições de valor a corresponder. Cada regra pode definir até 10 condições de etiqueta de índice blob. Por exemplo, se quiser fazer corresponder todos os blobs a uma regra, o Project = Contosohttps://myaccount.blob.core.windows.net/ blobIndexMatch é {"name": "Project","op": "==","value": "Contoso"} . Se não definir blobIndexMatch, a regra aplica-se a todos os blobs na conta de armazenamento. Não

Para saber mais sobre a funcionalidade de índice blob em conjunto com problemas e limitações conhecidos, consulte Gerir e encontrar dados no Blob do Azure Armazenamentocom índice de blob .

Ações da regra

As ações são aplicadas aos blobs filtrados quando a condição de executar é cumprida.

A gestão do ciclo de vida suporta o empate e a eliminação de blobs, versões blob anteriores e instantâneos blob. Definir pelo menos uma ação para cada regra em blobs base, versões blob anteriores ou instantâneos blob.

Ação Base Blob Instantâneo Versão
escalãoToCool Suportado para blockBlob Suportada Suportada
enableAutoTierToHotFromCool Suportado para blockBlob Não suportado Não suportado
tierToArchive Suportado para blockBlob Suportada Suportada
eliminar Suportado para blockBlob e appendBlob Suportada Suportada

Nota

Se definir mais do que uma ação no mesmo blob, a gestão do ciclo de vida aplica-se à ação menos dispendiosa ao blob. Por exemplo, a ação delete é mais barata do que a ação tierToArchive . A tierToArchive ação é mais barata do que a ação tierToCool .

As condições de utilização são baseadas na idade. Os blobs base utilizam a hora da última modificação, as versões blob utilizam a hora de criação de versões e os instantâneos blob utilizam a hora de criação de instantâneos para controlar a idade.

Condição de executar ação Valor da condição Descrição
daysAfterModificationGreaterThan Valor inteiro que indica a idade em dias A condição para ações blob base
daysAfterCreationGreaterThan Valor inteiro que indica a idade em dias A condição para ações de instantâneo de blob e blob
daysAfterLastAccessTimeGreaterThan Valor inteiro que indica a idade em dias A condição para ações blob base quando o rastreio de acesso está ativado

Exemplos de políticas de ciclo de vida

Os exemplos seguintes demonstram como abordar cenários comuns com regras de políticas de ciclo de vida.

Mover dados envelheados para uma escalagem mais fixe

Este exemplo mostra como pode bloquear blobs com prefixos sample-container/blob1 ou container2/blob2 . As transições de políticas que não foram modificadas há mais de 30 dias para um armazenamento interessante e blobs não modificados nos 90 dias para a escara de arquivo:

{
  "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 }
          }
        }
      }
    }
  ]
}

Mover dados com base na última hora acedida

Pode ativar o registo do último tempo de acesso para manter um registo de quando o blob é lido ou escrito pela última vez e como um filtro para gerir a associação e retenção dos seus dados blob. Para saber como ativar o rastreio de tempo do último acesso, consulte Opcionalmente, ativar o seguimento de tempo do acesso.

Quando o último rastreio de tempo de acesso estiver ativado, a propriedade blob chamada é atualizada quando um LastAccessTime blob é lido ou escrito. Uma operação Obter Blob é considerada uma operação de acesso. Obter Propriedades do Blob,Obter Metadados do Blobe Obter Etiquetas de Blob não são operações de acesso e, por isso, não atualizar a última hora de acesso.

Para minimizar o impacto na latência de acesso de leitura, apenas a primeira leitura das últimas 24 horas atualiza a última hora de acesso. As leituras subsequentes no mesmo período de 24 horas não atualizam a última hora de acesso. Se um blob for modificado entre leituras, a última hora de acesso é a mais recente dos dois valores.

No exemplo seguinte, os blobs são movidos para um armazenamento fixe se não puderem ser acetidos há 30 dias. A propriedade é um valor Booleano que indica se um blob deve ser automaticamente ajustado do arrefecer novamente para o mais quente, caso seja acededo novamente depois de ser ajustado enableAutoTierToHotFromCool para arrefecer.

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

Arquive dados após a inserção

Alguns dados permanecem indletes na nuvem e raramente são acessáveis, se for o caso. A seguinte política de ciclo de vida é configurada para arquivar dados pouco depois de ser iningessada. Este exemplo de transições bloqueiam blobs num contentor archivecontainer com o nome de uma escaleira de arquivo. A transição é realizada ao agir nos blobs 0 dias após o tempo da última modificação:

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

Nota

A Microsoft recomenda que carrege os seus blobs diretamente na linha de arquivo para uma maior eficiência. Pode especificar a escalão de arquivo no cabeçalho x-ms-access-tier na operação Colocar Blobou Colocar Lista de Blocos. O cabeçalho de nível de acesso x-ms-access é suportado com a versão REST 2018-11-09 e com as bibliotecas de clientes de armazenamento blob mais recentes ou mais recentes.

Expirar dados com base na idade

Espera-se que alguns dados expirem dias ou meses após a criação. Pode configurar uma política de gestão do ciclo de vida para expirar os dados ao eliminar com base na idade dos dados. O exemplo seguinte mostra uma política que elimina todos os blobs bloqueados com mais de 365 dias.

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

Eliminar dados com etiquetas de índice remissário blob

Alguns dados só devem ser expirados se estiverem marcados explicitamente para eliminação. Pode configurar uma política de gestão do ciclo de vida para expirar dados que estão etiquetados com atributos blob index key/value. O exemplo seguinte mostra uma política que elimina todos os blobs bloqueados com Project = Contoso . Para saber mais sobre o índice blob, consulte Gerir e encontrar dados no Blob do Azure Armazenamento com índice blob (Pré-visualização).

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

Gerir versões

Para os dados que são modificados e acededos regularmente ao longo da duração, pode ativar o controlo de versões de armazenamento blob para manter automaticamente as versões anteriores de um objeto. Pode criar uma política para escalear ou eliminar versões anteriores. A idade da versão é determinada ao avaliar o tempo de criação de versões. Esta regra de política inclina versões anteriores num contentor que são 90 dias ou mais antigas após a criação da versão para camada fixe e elimina versões anteriores com 365 dias ou activedata mais.

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

Suporte de funcionalidades

Esta tabela mostra como esta funcionalidade é suportada na sua conta e o impacto no suporte quando ativa determinadas funcionalidades.

Armazenamento de conta Blob Armazenamento (suporte predefinido) Data Lake Armazenamento Gen2 1 NFS 3.0 1 SFTP 1
Objetivo geral padrão v2 Sim Sim Sim Sim
Premium blobs Sim Sim Sim Sim

1 O Lago de Dados Armazenamento Gen2, o protocolo NFS (Network File System) 3.0 e o protocolo SFTP (Secure File Transfer Protocol) necessitam de uma conta de armazenamento com um espaço de nomes hierárquico ativado.

Disponibilidade e preços regionais

A funcionalidade de gestão do ciclo de vida está disponível em todas as regiões do Azure.

As políticas de gestão do ciclo de vida são gratuitas. Os clientes são cobrados para custos de operação padrão para as chamadas definir API de Escalão Blob. As operações de eliminação são gratuitas.

Cada atualização do último tempo de acesso de um blob é faturada na categoria de outras operações.

Para obter mais informações sobre preços, consulte Bloquear preços em Blob.

FAQ

Criei uma nova política. Por que motivo as ações não são executadas imediatamente?

A plataforma executa a política de ciclo de vida uma vez por dia. Depois de configurar uma política, algumas ações podem demorar até 24 horas a ser executadas pela primeira vez.

Se atualizar uma política existente, quanto tempo demora a executar as ações?

A política atualizada demora até 24 horas a entrar em vigor. Quando a política estiver em vigor, pode demorar até 24 horas para que as ações executem. Por conseguinte, as ações de política poderão demorar até 48 horas a ser concluídas. Se a atualização for desativar ou eliminar uma regra e ativar a AutoTierToHotFromCool tiver sido utilizada, continuará a ocorrer a associação automática à escalão hot. Por exemplo, defina uma regra que inclua enableAutoTierToHotFromCool baseada no último acesso. Se a regra for desativada/eliminada e um blob estiver atualmente a ser resolvido e, em seguida, acedeu ao Hot, uma vez que é aplicado ao acesso fora da gestão do ciclo de vida. O blob não será movido do Hot to Cool dado que a regra de gestão do ciclo de vida é desativada/eliminada. A única forma de impedir o autoTierToHotFromCool é desligá-lo do último rastreio de tempo de acesso.

Reesquei um blob arquivado manualmente, como posso impedi-lo de ser movido temporariamente para a escalão Arquivo?

Quando um blob é movido de uma escaleira de acesso para outra, a hora da última modificação não é alterada. Se re hidratar manualmente um blob arquivado para a escaleira de atalho, este seria movido novamente para a escaleira de arquivo pelo motor de gestão do ciclo de vida. Desativar a regra que afeta este blob temporariamente para impedir que seja arquivado novamente. Volte a ativar a regra quando o blob puder ser movido de forma segura para a escaleira de arquivo. Também pode copiar o blob para outra localização se precisar de se manter ativo ou com um nível de intercalar permanentemente.

Passos seguintes