Compreender como os instantâneos de blobs acumulam custos
A criação de um instantâneo, que é uma cópia só de leitura de um blob, pode resultar em custos adicionais de armazenamento de dados para a sua conta. Ao conceber a sua aplicação, é importante ter em atenção como estes custos podem acumular-se para que possa minimizar os custos desnecessários.
Considerações Importantes sobre Faturação
A lista seguinte inclui pontos-chave a considerar ao criar um instantâneo.
Os custos são incorridos para blocos ou páginas exclusivos, quer estejam no blob ou no instantâneo. A sua conta não incorre em custos adicionais para instantâneos associados a um blob até atualizar o blob no qual se baseiam. Depois de atualizar o blob base, este diverge dos respetivos instantâneos e ser-lhe-ão cobrados os blocos ou páginas exclusivos em cada blob ou instantâneo.
Quando substitui um bloco dentro de um blob de blocos, esse bloco é posteriormente cobrado como um bloco exclusivo. Isto é verdade mesmo que o bloco tenha o mesmo ID de bloco e os mesmos dados que tem no instantâneo. Assim que o bloco for consolidado novamente, este diverge do respetivo homólogo em qualquer instantâneo e ser-lhe-ão cobrados os respetivos dados. O mesmo se aplica a uma página num blob de páginas atualizada com dados idênticos.
Substituir um blob de blocos ao chamar o método UploadFile, UploadText, UploadStream ou UploadByteArray substitui todos os blocos nesse blob. Se tiver um instantâneo associado a esse blob, todos os blocos no blob base e no instantâneo serão agora divergentes e ser-lhe-ão cobrados todos os blocos em ambos os blobs. Isto é verdade mesmo que os dados no blob base e no instantâneo permaneçam idênticos.
O serviço Blob do Azure não tem meios para determinar se dois blocos contêm dados idênticos. Cada bloco carregado e consolidado é tratado como exclusivo, mesmo que tenha os mesmos dados e o mesmo ID de bloco. Uma vez que os custos são acumulados para blocos exclusivos, é importante considerar que atualizar um blob com um instantâneo resultará em blocos exclusivos adicionais e custos adicionais.
Importante
As melhores práticas ditam que gere os instantâneos cuidadosamente para evitar custos adicionais. Recomenda-se que faça a gestão de instantâneos da seguinte forma:
- Elimine e recrie instantâneos associados a um blob sempre que atualizar o blob, mesmo que esteja a atualizar com dados idênticos, a menos que a estrutura da aplicação exija que mantenha instantâneos. Ao eliminar e recriar os instantâneos do blob, pode garantir que o blob e os instantâneos não divergem.
- Se estiver a manter instantâneos para um blob, evite chamar UploadFile, UploadText, UploadStream ou UploadByteArray para atualizar o blob, uma vez que esses métodos substituem todos os blocos no blob. Em vez disso, atualize o menor número possível de blocos com os métodos PutBlock e PutBlockList .
Cenários de Faturação de Instantâneos
Os cenários seguintes demonstram como os custos são acumulados para um blob de blocos e os respetivos instantâneos. No Cenário 1, o blob base não foi atualizado desde que o instantâneo foi tirado, pelo que os custos são incorridos apenas para os blocos exclusivos 1, 2 e 3:
Cenário 1: apenas bloqueia 1, 2 e 3 custos acumulados.
No Cenário 2, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi atualizado e, apesar de conter os mesmos dados e o mesmo ID, não é o mesmo que o bloco 3 no instantâneo. Como resultado, a conta é cobrada por quatro blocos:
Cenário 2: bloqueia 1, 2 e 3 nos custos de acumulação de blobs base, juntamente com o bloco 3 no instantâneo.
No Cenário 3, o blob base foi atualizado, mas o instantâneo não. O bloco 3 foi substituído pelo bloco 4 no blob base, mas o instantâneo ainda reflete o bloco 3. Como resultado, a conta é cobrada por quatro blocos:
Cenário 3: blocos 1, 2, 3 e 4 custos acumulados.
No Cenário 4, o blob base foi completamente atualizado e não contém nenhum dos blocos originais. Como resultado, a conta é cobrada pelos oito blocos exclusivos. Este cenário pode ocorrer se estiver a utilizar um método de atualização, como UploadFile, UploadText, UploadFromStream ou UploadByteArray, porque estes métodos substituem todos os conteúdos de um blob.
Cenário 4: Blocos 1, 2, 3, 4, 5, 6, 7 e 8 custos acumulados.
Consulte também
Como Utilizar o Serviço de Armazenamento de Blobs
Como Utilizar o Serviço de Armazenamento de Filas
Criar um Instantâneo de um Blob