Planejar seu serviço

Reserve um tempo para planejar seu serviço do Oracle NoSQL Database Cloud Service antes de criá-lo. Pense sobre as perguntas descritas aqui e decida o que deseja fazer, antes de começar.

Este artigo tem os seguintes tópicos:

Visão Geral do Desenvolvedor

Obtenha uma visão geral de alto nível da arquitetura de serviço e selecione um SDK/Driver que atenderá às necessidades de desenvolvimento de aplicativos.

Tarefas do Desenvolvedor do NDCS

O Oracle NoSQL Database Cloud Service (NDCS) é um serviço totalmente HA. Ele foi projetado para aplicativos altamente exigentes que requerem tempos de resposta de baixa latência, um modelo de dados flexível e dimensionamento elástico para cargas de trabalho dinâmicas. Como serviço totalmente gerenciado, a Oracle trata de todas as tarefas administrativas, como upgrades de software, patches de segurança, falhas de hardware e aplicação de patches.
Veja a seguir a descrição de developer_overview.png

NoSQL Database SDKs/Drivers - Esses SDKs são licenciados no UPL e podem ser usados no NoSQL Cloud Service ou no banco de dados local. Esses são SDKs em todos os recursos e oferecem um conjunto avançado de funcionalidades. Esses drivers também podem ser usados em aplicativos executados em clusters Oracle NoSQL executados em nuvem de outros fornecedores.
  1. NoSQL SDK para Java
  2. NoSQL JavaScript SDK
  3. NoSQL Python SDK
  4. NoSQL . PREÇO LÍQUIDO
  5. NoSQL Ir SDK
  6. NoSQL SDK para Spring Data

Console do OCI - Oferece a capacidade de criar tabelas rapidamente, modificar tabelas, excluir tabelas, carregar dados, criar índices rapidamente, excluir índices, consultas básicas, alterar capacidades da tabela e exibir métricas.

SDKs/Drivers do OCI - O Oracle Cloud Infrastructure fornece vários SDKs (Software Development Kits) para facilitar o desenvolvimento de soluções personalizadas. Normalmente, eles são licenciados sob UPL. Eles oferecem funcionalidade semelhante à console do OCI por meio de uma interface programática.
  1. API Rest
  2. SDK para Java
  3. SDK para Python
  4. SDK para Javascript
  5. SDK para . TAXA
  6. SDK para Go
  7. SDK para Ruby

Limites do Oracle NoSQL Database Cloud Service

Limites atuais que se aplicam ao Oracle NoSQL Database Cloud Service.

Escopo Descrição Valor

Tabela

Tamanho máximo total de armazenamento por tenant. O espaço total usado para uma ou mais tabelas não pode exceder esse valor.

5 TB

Nomes de Tabelas

Número máximo de caracteres, caracteres permitidos e caractere inicial.

Os nomes das tabelas podem ter no máximo 256 caracteres. Todos os nomes devem começar com uma letra (a–z, A–Z). Os caracteres subsequentes podem ser letras (a–z, A–Z), dígitos (0–9) ou sublinhados.

Tabela

Throughput máximo de leitura e gravação ao provisionar uma tabela.

40.000 unidades de leitura e 20.000 unidades de gravação por tabela.

Tabela

Throughput máximo de leitura e gravação ao usar a Capacidade do On Demand para provisionar tabelas.

10.000 unidades de leitura e 5.000 unidades de gravação por tabela.

Tenant

Número de tabelas com Capacidade sob Demanda.

3

Tabela

Altere o modo de provisionamento da tabela de Provisionado para On Demand ou vice-versa.

Pode ser alterado apenas uma vez por dia.

Região

Número máximo de tabelas.

30

Tabela

Número máximo de colunas.

50

Tabela

Número máximo de atualizações de esquema de tabela.

100

Tabela

Número máximo de índices.

5

Tabela

Número máximo de alterações para os limites de throughput e de armazenamento.

O sistema Oracle permite:

  • Aumento ilimitado do throughput e do armazenamento por dia

  • Até quatro diminuições de throughput ou de armazenamento por período de 24horas.

Nomes de Índices Número máximo de caracteres, caracteres permitidos e caractere inicial.

Os nomes de índices podem ter no máximo 64 caracteres. Todos os nomes devem começar com uma letra (a–z, A–Z). Os caracteres subsequentes podem ser letras (a–z, A–Z), dígitos (0–9) ou sublinhados.

Solicitação

Número máximo de operações individuais por solicitação WriteMultiple.

50

Solicitação

Tamanho máximo dos dados para a solicitação WriteMultiple.

25 MB

Nomes de Campos Número máximo de caracteres, caracteres permitidos e caractere inicial. Os nomes de campos podem ter no máximo 64 caracteres. Todos os nomes devem começar com uma letra (a–z, A–Z). Os caracteres subsequentes podem ser letras (a–z, A–Z), dígitos (0–9) ou sublinhados.

Campo

Tamanho máximo da chave de índice.

64 bytes

Campo

Tamanho máximo da chave primária.

64 bytes

Linha

Tamanho máximo da linha.

512 KB

Consulta

Tamanho máximo da string de consulta.

10 KB

Região

Taxa máxima suportada de operações DDL.

4 por minuto

Região

Valores máximos de recursos de throughput e armazenamento de dados.

Por região, o sistema Oracle permite:

  • Um máximo de 100.000 unidades de leitura

  • Um máximo de 40.000 unidades de gravação

O sistema Oracle permite um tamanho máximo de armazenamento de 5 TB por tenant. A região pode ter uma única tabela com tamanho de armazenamento de 5 TB; nesse caso, a região não pode criar outra tabela. Caso você tenha várias tabelas, verifique se os dados de todas essas tabelas estão dentro do tamanho máximo de armazenamento de 5 TB.

Estimando a Capacidade

Saiba como estimar a capacidade de throughput e de armazenamento do seu Oracle NoSQL Database Cloud Service.

Conceitos Básicos sobre o Cálculo

Antes de aprender a estimar o throughput e o armazenamento do serviço, vamos verificar o throughput e as definições da unidade de armazenamento.

  • Unidade de Gravação (WU): uma Unidade de Gravação é definida com um throughput para até 1 kilobyte (KB) de dados por segundo. Uma operação de gravação é qualquer chamada de API do Oracle NoSQL Database Cloud Service que resulta na inserção, atualização ou exclusão de um registro. Uma tabela NoSQL tem um valor de limite de gravação que especifica o número de unidades de gravação que podem ser usadas a cada segundo. As atualizações de índice também consomem unidades de gravação.

    Por exemplo, um tamanho de registro de menos de 1 KB requer uma WU para uma operação de gravação. Um tamanho de registro de 1,5 KB requer duas WUs para a operação de gravação.

  • Unidade de Leitura (RU): uma Unidade de Leitura é definida com um throughput para até 1 KB de dados por segundo para uma operação de leitura eventualmente consistente. Sua tabela NoSQL tem um valor de limite de leitura que especifica o número de unidades de leitura que podem ser usadas a cada segundo.

    Por exemplo, um tamanho de registro de menos de 1 KB requer uma RU para uma operação de leitura eventualmente consistente. Um tamanho de registro de 1,5 KB exige duas RUs para uma operação de leitura eventualmente consistente e quatro RUs para uma operação de leitura absolutamente consistente.

  • Capacidade de Armazenamento: uma unidade de armazenamento é um único gigabyte (GB) de armazenamento de dados.

  • Consistência Absoluta: espera-se que os dados retornados sejam os dados gravados mais recentemente no banco de dados.

  • Consistência Eventual: os dados retornados podem não ser os dados gravados mais recentemente no banco de dados; se nenhuma nova atualização for feita nos dados, eventualmente todos os acessos a esses dados retornarão o valor atualizado mais recente.

Observação

O Oracle NoSQL Database Cloud Service gerencia automaticamente as capacidades de leitura e gravação para atender às necessidades de cargas de trabalho dinâmicas quando usa a Capacidade sob Demanda. É recomendável validar que as necessidades de capacidade não excedam os limites de Capacidade Sob Demanda. Consulte Limites do Oracle NoSQL Database Cloud Service para obter mais detalhes.

Fatores Que Afetam a Unidade de Capacidade

Antes de provisionar as unidades de capacidade, é importante considerar os fatores a seguir que impactam as capacidades de leitura, gravação e armazenamento.

  • Tamanho do registro: à medida que o tamanho do registro aumenta, o número de unidades de capacidade consumidas para gravar ou ler dados também aumenta.

  • Consistência de dados: leituras de consistência absoluta são duas vezes o custo de leituras de consistência eventual.

  • Índices Secundários: em uma tabela, quando um registro existente é modificado (adicionado, atualizado ou excluído), os índices secundários de atualização consomem Unidades de Gravação. O custo total de throughput provisionado para uma operação de gravação é a soma das unidades de gravação consumidas pela gravação na tabela e atualização dos índices secundários locais.

  • Escolha de modelagem de dados: com o JSON sem esquema, cada documento é uma descrição automática que adiciona o overhead de metadados ao tamanho geral do registro. Com tabelas de esquema fixo, o overhead para cada registro é de exatamente 1 byte.

  • Padrão de consulta: o custo de uma operação de consulta depende do número de linhas recuperadas, do número de predicados, do tamanho dos dados de origem, das projeções e da presença de índices. As consultas menos dispendiosas especificam uma chave de partição ou chave de índice (com um índice associado) para permitir que o sistema aproveite índices principais e secundários. Um aplicativo pode experimentar diferentes consultas e avaliar o throughput consumido para ajudar a ajustar as operações.

Exemplo Real: Como Estimar a Carga de Trabalho do Seu Aplicativo

Considere um exemplo de aplicativo de E-commerce para saber como estimar leituras e gravações por segundo. Neste exemplo, o Oracle NoSQL Database Cloud Service é usado para armazenar as informações do catálogo de produtos do aplicativo.

  1. Identifique o modelo de dados (JSON ou tabela fixa), o tamanho do registro e o tamanho da chave do aplicativo.

    Suponha que o aplicativo E-commerce siga o modelo de dados JSON e o desenvolvedor tenha criado uma tabela simples com duas colunas. Um identificador de registro (chave primária) e um documento JSON para os recursos e atributos do produto. O documento JSON, com menos de 1 KB (0,8 KB) é o seguinte:

    {
      "additionalFeatures": "Front Facing 1.3MP Camera",
      "os": "Macintosh OS X 10.7", 
      "battery": {      
        "type": "Lithium Ion (Li-Ion) (7000 mAH)",
        "standbytime" : "24 hours" },
      "camera": {    
        "features": ["Flash","Video"],
        "primary": "5.0 megapixels" },
      "connectivity": {
        "bluetooth": "Bluetooth 2.1",
        "cell": "T-mobile HSPA+ @ 2100/1900/AWS/850 MHz",
        "gps": true,
        "infrared": false,
        "wifi": "802.11 b/g" },
      "description": "Apple iBook is the best in class computer
        		for your professional and personal work.",
      "display": {
        "screenResolution": "WVGA (1280 x 968)",
        "screenSize": "13.0 inches" },
      "hardware": {
        "accelerometer": true,
        "audioJack": "3.5mm",
        "cpu": "Intel i7 2.5 GHz",
        "fmRadio": false,
        "physicalKeyboard": false,
        "usb": "USB 3.0" },
      "id": "appleproduct_1",
      "images": ["img/apple-laptop.jpg"],
      "name": "Myshop.com : Apple iBook",
      "sizeAndWeight": {
        "dimensions": [
          "300 mm (w)",
          "300 mm (h)",
          "12.4 mm (d)" ],
        "weight": "1250.0 grams" },
      "storage": {
        "hdd": "750GB",
        "ram": "8GB" }
    }

    Suponha que o aplicativo tenha 100.000 registros e que a chave primária tenha cerca de 20 bytes. Além disso, suponha que há consultas que leem registros via índice secundário. Por exemplo, para localizar todos os registros que tenham tamanho de tela de 13 polegadas. Portanto, um índice é criado no campo screenSize.

    As informações estão resumidas da seguinte forma:

    Tabelas Linhas por Tabela Colunas por Tabela Tamanho da Chave em Bytes Tamanho do Valor em Bytes (soma de todas as colunas) Índices Tamanho da Chave de Índice em Bytes

    1

    100000

    2

    20

    1 KB

    1

    20

  2. Identifique a lista de operações (geralmente operações CRUD e leituras de Índice) na tabela e em qual taxa (por segundo) são esperadas.

    Operação Número de Operações (por segundo) Exemplo

    Criar Registros.

    3

    Para criar um produto.

    Ler registros usando a chave primária.

    200

    Para ler detalhes do produto usando o ID do produto.

    Ler registros usando o índice secundário.

    1

    Para extrair todos os produtos com tamanho de tela de 13 polegadas.

    Atualizar ou adicionar um atributo a um registro.

    5

    Para atualizar a descrição do produto de uma câmera

    ou

    Para adicionar informações sobre o peso de uma câmera.

    Excluir registro.

    5

    Para excluir um produto existente.

  3. Identifique o consumo de leitura e gravação em KB.

    Operação Premissas (Se houver) Fórmula Consumo de Leitura (KB) Consumo de Gravação (KB) Observações/Explicação
    Criar Registros. Suponha que os registros sejam criados sem que nenhuma verificação de condição seja executada (se existir). Record size (rounded to next KB) + 1 KB(index) * (number of indexes) 0 1 KB + 1 KB (1 ) = 2 KB

    O tamanho do registro é de 1 KB (0,8 KB para coluna JSON e 20 bytes para coluna de chave) e há um índice de tamanho 1 KB.

    Uma operação de criação incorre em um custo de unidade de leitura se você executar os comandos put com algumas opções. Como você precisa garantir que está lendo a versão mais atual da linha, leituras consistentes absolutas são usadas. Nesses casos, você usa o multiplicador 2 na fórmula da unidade de leitura. Estas são as diferentes opções de determinação dos custos unitários de leitura:
    • Se Option.IfAbsent ou Option.IfPresent for usado, então Consumo de Leitura = 2
    • Se setReturnRow for usado, Consumo de Leitura = 2 * Tamanho do registro
    • Se Option.IfAbsent e setReturnRow forem usados, Consumo de Leitura = 2 * Tamanho do registro
    Ler registros usando a chave primária.   Record size round up to KB Tamanho do registro = 1 KB 0 O tamanho do registro é de 1 KB
    Ler registros usando o índice secundário. Suponha que 100 registros sejam retornados. record_size * number_of_records_matched

    11KB *100 = 100KB

    100 KB + 10 KB = 110 KB

    0

    Não há cobrança para o índice secundário. O tamanho do registro é de 1 KB. Para 100 registros, tem 100 KB.

    Contas adicionais de 10 KB para overhead variável que poderá ocorrer dependendo do número de batches retornados e do conjunto de limites de tamanho para a consulta.

    O custo indireto é o custo de leitura da última chave em um lote. Essa é uma variável que depende do tamanho do registro e do maxReadKB. O custo indireto é até (numBatches - 1) * custo de leitura de chave (1 KB).

    Atualizar registros existentes Suponha que o tamanho do registro atualizado seja igual ao tamanho do antigo registro (1 KB). Read consumption = record_size * 2

    Write consumption = original_record_size + new_record_size + 1 KB (index) * (number of writes)

    1 KB * 2 1 KB + 1 KB + 1KB(1) *(2) = 4 KB

    Quando as linhas são atualizadas com o uso de uma consulta (instrução SQL), as unidades de leitura e gravação são consumidas. Dependendo da atualização, talvez seja necessário ler a chave primária, a chave secundária ou até o próprio registro. Leituras consistentes absolutas são necessárias para garantir que estamos lendo o registro mais recente. As leituras de consistência absoluta são duas vezes o custo de leituras de consistência eventual. Essa é a razão para multiplicar por 2 na fórmula.

    Consumo de Leitura: Nenhuma cobrança para índice e tamanho de Registro é de 1 KB. Se estiver executando usando a opção setReturnRow, Consumo de Leitura = 2 * Tamanho do registro

    Consumo de Gravação: O tamanho do registro original e novo é de 1 KB e 1 KB para um índice.

    Excluir registro   Read consumption = 1 KB (index) * 2

    Write consumption = record_size + 1KB (index) * (number_of_indexes)

    1 KB (1) *2 = 2 KB 1 KB + 1 KB(1) * (1) = 2 KB

    Uma exclusão incorre em custos de unidade de leitura e gravação. Como você precisa garantir que está examinando a versão mais atual da linha, são usadas leituras consistentes absolutas, que é o motivo para usar o multiplicador 2 na fórmula da unidade de leitura.

    Se estiver sendo executado com a opção setReturnRow, Consumo de Leitura = 2 * Tamanho do registro. Caso contrário, Consumo de Leitura= 1 KB para um índice

    Consumo de Gravação: O tamanho do registro é de 1 KB e 1 KB para índice. O número do índice é 1.

    Usando as etapas 2 e 3, vamos determinar as unidades de leitura e gravação para a carga de trabalho do aplicativo.

    Operações Taxa de Operações Leituras por Segundo Gravações por Segundo

    Criar registros

    3

    0

    6

    Ler registros usando a Chave primária

    300

    300

    0

    Ler registros usando o índice secundário

    10

    1100

    0

    Atualizar registro existente

    5

    10

    20

    Excluir registro

    1

    2

    2

    Total de Unidades de Leitura: 1412

    Total de Unidades de Gravação: 28

    Portanto, estima-se que o aplicativo de eCommerce tenha uma carga de trabalho de 1412 leituras por segundo e 28 gravações por segundo. Faça o download da ferramenta Estimativa de Capacidade disponível no Oracle Technology Network para inserir esses valores e estimar o throughput e o armazenamento do seu aplicativo.

Observação

Os cálculos anteriores supõem solicitações de leitura eventualmente consistentes. Para uma solicitação de leitura de consistência absoluta, a operação consome o dobro das unidades de capacidade. Portanto, as unidades de capacidade de leitura seriam 4844 Unidades de Leitura.

Estimando o Seu Custo Mensal

Saiba como estimar o custo mensal da sua assinatura do Oracle Cloud.

Quando você estiver pronto para pedir seu serviço do Oracle Cloud, a Oracle fornecerá um estimador de custo para calcular o uso mensal e os custos antes de confirmar um modelo de assinatura ou um valor.

O Estimador de Custo calcula automaticamente o custo mensal com base na entrada de unidades de leitura, unidades de gravação e armazenamento. Mas para você saber como calcular as unidades de leitura e gravação do seu aplicativo, siga estas etapas:

  1. Etapa 1: Navegue até o tópico Estimando a Capacidade. Estime a carga de trabalho do aplicativo usando o exemplo e as fórmulas descritas neste tópico.

    Etapa 2: Faça o download do Estimador de Capacidade do site Oracle Technology Network e use-o para estimar unidades de gravação, unidades de leitura e a capacidade de armazenamento do seu aplicativo com base nos critérios de carga de trabalho do aplicativo e de operações do banco de dados.

  2. Etapa 2: Acesse o Estimador de Custo no site do Oracle Cloud. Marque a caixa de seleção Gerenciamento de Dados. Role até a tela localizar o Oracle NoSQL Database Cloud e clique em Adicionar para adicionar uma entrada ao Oracle NoSQL Database Cloud sob as Opções de Configuração. Expanda Banco de Dados NoSQL para localizar as diferentes opções de Utilização e configuração. Insira valores para os parâmetros de Utilização e Configuração a fim de estimar o custo do uso do Oracle NoSQL Database Cloud Service em relação às suas assinaturas Pay-As-You-Go e Flex Mensal do Oracle Cloud.

  3. Etapa 3: Acesse o Estimador de Custo no site do Oracle Cloud. No menu suspenso, selecione Data Management. Você vê várias opções exibidas em Gerenciamento de Dados. Percorra a tela para localizar o Oracle NoSQL Database Cloud. Clique em Adicionar para adicionar uma entrada ao Oracle NoSQL Database Cloud sob as Opções de Configuração.

  4. Etapa 4: Expandir Banco de Dados - NoSQL para localizar as diferentes opções de Utilização e configuração. Você tem duas opções em Configuração. Você pode começar com uma opção "Always Free" ou pode provisionar sua instância com a configuração desejada.
    • Etapa 4a: Se você quiser uma opção Always Free, em Configuração, expanda Oracle NoSQL Database Cloud - Read, Oracle NoSQL Database Cloud Service - Storage e Oracle NoSQL Database Cloud Service - Write e altere a capacidade de Leitura, Armazenamento e Gravação como 0. Em seguida, sua estimativa de custo total é mostrada como 0 e você pode prosseguir com a opção Always Free.
  5. Etapa 5: Como alternativa, se você quiser provisionar capacidade de leitura, gravação e armazenamento superior à disponível em Always Free, poderá fazer isso informando os valores de configuração em Database-NoSQL.
    • Etapa 5a: Em Utilização, não modifique os valores padrão porque o Oracle NoSQL Database Cloud Service não usa nenhum desses valores.
    • Etapa 5 b: Em Configuração, adicione o número de Unidades de Leitura, Unidades de Gravação e Capacidade de Armazenamento que você estimou na etapa anterior. O custo é estimado com base nos valores de entrada e mostrado na página.
Observação

Se você estiver usando o recurso de dimensionamento automático, uma fatura será gerada no final do mês para o consumo real de unidades de leitura e gravação em tempo real. Portanto, talvez você queira coletar seus próprios logs de auditoria no aplicativo para verificar o faturamento no final do mês. Seria recomendável registrar as unidades de leitura e gravação consumidas retornadas pelo serviço NoSQL Database CLoud com cada chamada de API. Você pode usar esses dados para se correlacionar aos dados de faturamento de fim de mês do sistema de medição e faturamento do Oracle Cloud.