Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O Azure Cosmos DB para PostgreSQL não tem mais suporte para novos projetos. Não use este serviço para novos projetos. Em vez disso, use um destes dois serviços:
Use o Azure Cosmos DB para NoSQL para obter uma solução de banco de dados distribuído projetada para cenários de alta escala com um SLA (contrato de nível de serviço) de disponibilidade de 99.999%, dimensionamento automático instantâneo e failover automático em várias regiões.
Use a funcionalidade de Clusters Elásticos do Azure para PostgreSQL para PostgreSQL fragmentado, utilizando a extensão Citus de código aberto.
Filtro comum como chave de partição
Para escolher a chave de partição para um aplicativo transacional de alta taxa de processamento, siga estas diretrizes:
- Escolha uma coluna que seja usada para pesquisas de pontos e esteja presente na maioria das operações de criação, leitura, atualização e exclusão.
- Escolha uma coluna que seja uma dimensão natural nos dados ou uma parte central do aplicativo. Por exemplo:
- Em uma carga de trabalho de IoT,
device_idé uma boa coluna de distribuição.
- Em uma carga de trabalho de IoT,
A escolha de uma boa chave de fragmento ajuda a otimizar os saltos de rede, aproveitando a memória e a computação para atingir uma latência de milissegundos.
Modelo de dados ideal para aplicativos de alta taxa de transferência
Abaixo está um exemplo de um modelo de dados de exemplo para um aplicativo IoT que captura telemetria (dados de séries temporais) de dispositivos. Existem duas tabelas para capturar telemetria: devices e events. Poderia haver outras tabelas, mas elas não são abordadas neste exemplo.
Ao criar um aplicativo de alto rendimento, tenha em mente alguma otimização.
- Distribua tabelas grandes em uma coluna comum que é a parte central do aplicativo e na coluna que seu aplicativo consulta principalmente. No exemplo acima de um aplicativo IOT,
device_idé essa coluna, e ela co-localiza as tabelas de eventos e dispositivos. - O resto das pequenas tabelas podem ser tabelas de referência.
- Como os aplicativos IOT têm uma dimensão de tempo, particione suas tabelas distribuídas com base no tempo. Você pode usar recursos nativos do Azure Cosmos DB para séries cronológicas do PostgreSQL para criar e manter partições.
- O particionamento ajuda a filtrar dados de forma eficiente para consultas com filtros de tempo.
- Expirar dados antigos também é rápido, usando o comando DROP vs DELETE.
- A tabela de eventos em nosso exemplo é particionada por mês.
- Use o tipo de dados JSONB para armazenar dados semiestruturados. Os dados de telemetria do dispositivo normalmente não são estruturados, cada dispositivo tem suas próprias métricas.
- No nosso exemplo, a tabela de eventos tem uma
detailcoluna, que é JSONB.
- No nosso exemplo, a tabela de eventos tem uma
- Se seu aplicativo IoT exigir recursos geoespaciais, você poderá usar a extensão PostGIS, que o Azure Cosmos DB para PostgreSQL oferece suporte nativamente.
Próximos passos
Agora terminamos de explorar a modelagem de dados para aplicativos escaláveis. O próximo passo é conectar e consultar o banco de dados com a linguagem de programação de sua escolha.