Projetar um esquema

O esquema ideal para uma tabela do Bigtable depende de vários fatores, incluindo caso de uso, padrões de acesso a dados e os dados que você planeja armazenar. Nesta página, fornecemos uma visão geral do processo de design do esquema do Bigtable.

Antes de ler esta página, é necessário entender os conceitos e práticas recomendadas do design do esquema. Se aplicável, leia também Projeto de esquema para dados de séries temporais.

Antes de começar

Crie ou identifique uma instância do Bigtable que pode ser usada para testar o esquema.

Coletar informações

  1. Identifique os dados que você planeja armazenar no Bigtable. Estas são algumas perguntas:
    • Qual é o formato usado pelos dados? Os formatos possíveis incluem bytes brutos, strings, protobufs e json.
    • O que constitui uma entidade nos seus dados? Por exemplo, você está armazenando visualizações de página, preços de ações, posicionamentos de anúncios, medições de dispositivos ou algum outro tipo de entidade? Do que as entidades são compostas?
    • Os dados são baseados no tempo?
  2. Identifique e classifique as consultas que você usa para receber os dados necessários. Considerando as entidades que você armazenará, pense em como você quer que os dados sejam classificados e agrupados, quando usá-los. O design do esquema pode não atender a todas as consultas, mas o ideal é que ele atenda às consultas mais importantes ou usadas com mais frequência. Veja alguns exemplos de consultas:
    • Um mês de leituras de temperatura para objetos de IoT.
    • Visualizações diárias de anúncios para um endereço IP.
    • O local mais recente de um dispositivo móvel.
    • Todos os eventos de aplicativo por dia por usuário.

Design

Escolha um design de esquema inicial. Isso significa planejar o padrão que as chaves de linha seguirão, os grupos de colunas da tabela e os qualificadores de coluna para as colunas que você quer nesses grupos. Siga as diretrizes gerais de design de esquema. Se os dados forem baseados em tempo, siga também as diretrizes para dados de séries temporais.

Teste

  1. Crie uma tabela usando os grupos de colunas e os qualificadores de coluna que você criou para seu esquema.
  2. Carregue a tabela com pelo menos 30 GB de dados de teste, usando chaves de linha identificadas no seu plano de rascunho. Fique abaixo dos limites de utilização de armazenamento por nó.
  3. Execute um teste de carga pesada por vários minutos. Esta etapa dá ao Bigtable uma oportunidade de balancear os dados entre os nós com base nos padrões de acesso observados.
  4. Execute uma simulação de uma hora das leituras e gravações que você normalmente enviaria para a tabela.
  5. Analise os resultados da simulação usando o Key Visualizer e o Cloud Monitoring.

    • É possível visualizar os padrões de uso de cada tabela em um cluster, basta usar a ferramenta Key Visualizer do Bigtable para fazer verificações diárias. O Key Visualizer ajuda a verificar se o design do esquema e os padrões de uso estão causando resultados indesejáveis, como pontos de acesso em linhas específicas.

    • O Monitoring ajuda a verificar métricas, como a utilização da CPU do melhor nó em um cluster, para ajudar a determinar se o design do esquema está causando problemas.

Refinar

  1. Revise o design do esquema conforme necessário, com base no que você aprendeu com o Key Visualizer. Por exemplo:
    • Se você vir evidências de ponto de acesso, use chaves de linha diferentes.
    • Se você perceber a latência, descubra se as linhas excedem o limite de 100 MB por linha.
    • Se você achar que precisa usar filtros para ver os dados necessários, normalize os dados de uma maneira que permita leituras mais simples (e mais rápidas): ler uma única linha ou intervalos de linhas por chave de linha.
  2. Depois de revisar o esquema, teste e analise os resultados novamente.
  3. Continue modificando o design e o teste do esquema até que uma inspeção no Key Visualizer informe que o design do esquema é o ideal.

A seguir