Azure Table Storage: Banco NoSQL Gerenciado para Dados que Crescem
Entenda quando e como usar Azure Table Storage para armazenar dados estruturados sem schema rígido, com custo baixo, latência consistente e escala automática.
O que é Azure Table Storage?
Azure Table Storage é um serviço de armazenamento NoSQL gerenciado da Microsoft, parte do Azure Storage Account. Ele armazena grandes volumes de dados estruturados sem exigir um schema fixo, tornando-o ideal para cenários onde os dados variam entre entidades ou crescem de forma imprevisível.
É utilizado por este próprio blog para armazenar inscrições, comentários e eventos de analytics.
Quando usar Table Storage?
Table Storage é a escolha certa quando você precisa de:
- Armazenamento simples sem necessidade de queries complexas com JOINs
- Dados que crescem rapidamente (logs, eventos, telemetria, registros)
- Schemas flexíveis onde cada linha pode ter campos diferentes
- Custo reduzido — significativamente mais barato que SQL ou Cosmos DB
- Latência consistente independente do volume de dados
- Alta disponibilidade sem configuração
Conceitos Fundamentais
Storage Account
O ponto de entrada para todos os serviços de armazenamento no Azure. Um Storage Account contém Blobs, Queues, Files e Tables. Você cria um Storage Account e dentro dele cria suas tabelas.
Table
Similar a uma tabela em banco relacional, mas sem schema definido. Cada tabela armazena entidades (linhas) que podem ter campos completamente diferentes entre si.
Entity (Entidade)
Equivalente a uma linha no banco relacional. Cada entidade é um conjunto de propriedades (chave-valor). Toda entidade tem obrigatoriamente três campos:
- PartitionKey: agrupa entidades relacionadas no mesmo nó de armazenamento
- RowKey: identificador único dentro da partição
- Timestamp: data/hora da última modificação (gerenciado automaticamente)
PartitionKey e RowKey: A Chave do Desempenho
A escolha inteligente de PartitionKey e RowKey é o mais importante para o desempenho do Table Storage.
PartitionKey
Entidades com a mesma PartitionKey ficam no mesmo servidor físico, o que garante queries rápidas. Defina a PartitionKey baseado em como você vai consultar os dados:
- Para analytics por mês: use
"2026-03"como PartitionKey - Para inscrições por domínio: use o domínio do email
- Para logs por serviço: use o nome do serviço
RowKey
Deve ser único dentro da partição. Geralmente é um ID gerado (UUID), um timestamp ou uma combinação de campos que identifique unicamente a entidade.
Operações CRUD com SDK do Node.js
O SDK @azure/data-tables facilita o uso no Node.js:
- Criar/Atualizar:
TableClient.upsertEntity(entity, "Replace")— cria se não existe, substitui se existir - Ler por chave:
TableClient.getEntity(partitionKey, rowKey)— leitura pontual, mais rápida - Listar com filtro:
TableClient.listEntities({ queryOptions: { filter } })— use filtros OData - Deletar:
TableClient.deleteEntity(partitionKey, rowKey)
Queries com Filtros OData
O Table Storage usa sintaxe OData para filtros. Exemplos práticos:
- Por partição:
PartitionKey eq '2026-03' - Por campo:
eventType eq 'page_view' - Combinado:
PartitionKey eq '2026-03' and eventType eq 'click' - Comparação:
timestamp ge '2026-03-01T00:00:00Z'
Dica crítica: sempre filtre por PartitionKey. Queries sem PartitionKey fazem scan completo da tabela, o que é lento e custoso.
Comparativo: Table Storage vs SQL vs Cosmos DB
Quando escolher cada um:
- Table Storage: dados simples, crescimento rápido, custo muito baixo. Ideal para logs, eventos e dados sem relacionamentos.
- Azure SQL: dados relacionais, queries complexas, transações multi-tabela. Use quando você precisa de JOINs e consistência forte.
- Cosmos DB: escala global, múltiplos modelos (documento, grafo, coluna), SLA de 99.999%. Use quando Table Storage não é suficiente mas Cosmos DB vale o custo.
Segurança e Acesso
Para conectar ao Table Storage use a Connection String do Storage Account, disponível em "Chaves de acesso" no portal Azure. Nunca coloque essa string no código — armazene como variável de ambiente ou App Setting no App Service.
Em ambientes de produção, considere usar Managed Identity para autenticar sem credenciais estáticas.
Conclusão
Azure Table Storage é uma ferramenta poderosa quando usada no contexto certo. Para projetos que precisam armazenar grandes volumes de dados simples com custo controlado, ele é imbatível. A chave do sucesso é definir bem as PartitionKeys desde o início, alinhando-as com os padrões de acesso da sua aplicação.