Planeje seu serviço

Reserve algum tempo para planejar seu serviço do Oracle NoSQL Database Cloud Service antes da sua criação. 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 suas 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 de alta demanda que exigem tempos de resposta de baixa latência, um modelo de dados flexível e dimensionamento elástico para cargas de trabalho dinâmicas. Como um serviço totalmente gerenciado, a Oracle lida com 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 da ilustração developer_overview.png

Descrição da ilustração developer_overview.png

SDKs/Drivers do NoSQL Database - Esses SDKs são licenciados sob UPL (Universal Permissive License) e podem ser usados no NoSQL Cloud Service ou no banco de dados local. Estes são SDKs completos e oferecem um rico conjunto de funcionalidades. Esses drivers também podem ser usados em aplicativos executados em clusters do Oracle NoSQL executados na nuvem de outros fornecedores.

Você pode consultar a tabela abaixo para ver links para SDKs, guias de API e exemplos:

SDK (GitHub) Guia da API Exemplos
SDK Java do Oracle NoSQL Guia da API do Java SDK Exemplos de Java
SDK do Python do Oracle NoSQL Guia da API do Python SDK Exemplos de Python
SDK do Oracle NoSQL Go Guia da API Go SDK Exemplos de Utilização
SDK do Node.js do Oracle NoSQL Guia da API do SDK do Node.js Exemplos do Node.js
Oracle NoSQL .NET SDK Guia da API do .NET SDK Exemplos de .NET
SDK do Oracle NoSQL Rust Guia da API do Rust SDK Exemplos de Rust
SDK do Oracle NoSQL Spring Guia da API do Spring SDK Exemplos de Primavera

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 de tabela e exibir métricas.

SDKs/Drivers da OCI - A Oracle Cloud Infrastructure oferece vários SDKs (Software Development Kits) para facilitar o desenvolvimento de soluções personalizadas. Estes são normalmente licenciados sob UPL.

  1. API Rest

  2. SDK para Java

  3. SDK para Python

  4. SDK para Javascript

  5. SDK para .NET

  6. SDK para Go

  7. SDK para Ruby

  8. SDK para PL/SQL

Diferença entre SDKs/Drivers do NoSQL Database e SDKs/Drivers do OCI:

SDKs do OCI são baseados em REST. Eles são fáceis de usar, mas têm funcionalidade limitada. Os SDKs do NoSQL Database, por outro lado, oferecem um rico conjunto de funcionalidades. É recomendável usar SDKs do NoSQL Database, pois eles oferecem os benefícios a seguir em relação aos SDKs do OCI.

Referências:

Limites do Oracle NoSQL Database Cloud Service

O Oracle NoSQL Database Cloud Service tem vários limites padrão. Sempre que você cria uma tabela do Oracle NoSQL Database Cloud Service, o sistema garante que as suas solicitações estejam dentro dos limites do limite especificado. Alguns limites são impostos no nível da tabela e alguns são impostos no nível da região.

Para saber mais sobre Limites de Serviço, seu escopo e como aumentar seus limites de serviço enviando uma solicitação, consulte Limites de Serviço. Os limites atuais que se aplicam ao Oracle NoSQL Database Cloud Service estão listados abaixo.

Limite Escopo Descrição Valor em um ambiente não hospedado Valor em um ambiente hospedado
Tamanho máximo do armazenamento de tabelas 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 17.5TB
Nomes de Tabela Tabela Número máximo de caracteres, caracteres permitidos e caractere inicial para nomes de tabela. 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 subseqüentes podem ser letras (a-z, A-Z), dígitos (0-9) ou sublinhado. O mesmo que um ambiente não hospedado
Capacidade Provisionada - Throughput máximo de leitura e gravação 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. Até 420.000 unidades de leitura e 280.000 unidades de gravação no total para todas as tabelas no ambiente hospedado
Capacidade sob Demanda - Throughput máximo de leitura e gravação 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. Não permitido/necessário em um ambiente hospedado
Capacidade sob Demanda - Número de tabelas Região Número de tabelas com Capacidade do On Demand. 3 Não permitido/necessário em um ambiente hospedado
Alterar o modo de provisionamento Tabela Altere o modo de provisionamento da tabela de Provisionado para On Demand ou vice-versa. Pode ser alterado apenas uma vez por dia. N/D
Número máximo de tabelas Região Número máximo de tabelas. 30 Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Número máximo de colunas. Tabela O número máximo de colunas. 50 Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Número máximo de atualizações de esquema de tabela Tabela O número máximo de atualizações do esquema da tabela. 100 Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Número máximo de índices Tabela O número máximo de índices. 5 Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Número máximo de alterações para os limites de throughput e de armazenamento Tabela O número máximo de alterações para limites de throughput e 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.

Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Nomes de Índice Índice O número máximo de caracteres, os caracteres permitidos e o 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 subseqüentes podem ser letras (a-z, A-Z), dígitos (0-9) ou sublinhado. Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Número máximo de operações individuais por solicitação WriteMultiple Solicitar O número máximo de operações individuais por solicitação WriteMultiple. 50 O mesmo que um ambiente não hospedado. Isso também pode ser aumentado usando a Atualização de Limites do Serviço de Solicitação
Tamanho máximo dos dados para a solicitação WriteMultiple. Solicitar O tamanho máximo de dados para a solicitação WriteMultiple. 25 MB O mesmo que um ambiente não hospedado. Isso também pode ser aumentado usando a Atualização de Limites do Serviço de Solicitação
Nomes de Colunas Coluna O número máximo de caracteres, os caracteres permitidos e o 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 subseqüentes podem ser letras (a-z, A-Z), dígitos (0-9) ou sublinhado. O mesmo que um ambiente não hospedado.
Tamanho máximo da chave do índice secundário Índice Tamanho máximo da chave de índice. 64 bytes Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Tamanho máximo da chave de índice primário Índice Tamanho máximo da chave primária. 64 bytes Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Tamanho máximo da linha Linha Tamanho máximo da linha. 512 KB Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Tamanho máximo da string de consulta. Consulta Tamanho máximo da string de consulta. 10 KB Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Taxa máxima suportada de operações DDL. Região Taxa máxima suportada de operações DDL. 4 por minuto Isso pode ser personalizado usando a Atualização de Limites do Serviço de Solicitação
Valores máximos de recursos de throughput e armazenamento de dados. Região Valores máximos de recursos de throughput e armazenamento de dados.

Por região, a 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 poderá criar outra tabela. Ou tenha várias tabelas e certifique-se de que os dados de todas essas tabelas estejam no tamanho máximo do armazenamento de 5 TB.

420.000 unidades de gravação, 280.000 unidades de leitura, 17,5 TB de armazenamento

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

Para aprender a estimar a taxa de transferência e o armazenamento do serviço, vamos revisar as definições de taxa de transferência e unidade de armazenamento.

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 ao usar a Capacidade sob Demanda. É recomendável validar se as necessidades de capacidade não excedem os limites de capacidade do On Demand. Consulte Limites do Serviço 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.

Exemplo Real: Como Estimar sua Carga de Trabalho do 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 do produto 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 de E-commerce siga o modelo do 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, que tem 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 haja consultas que leiam registros usando í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 100.000 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 de 1 KB.

    Uma operação de criação incorre em um custo unitário 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. Aqui estão as diferentes opções para determinar os custos unitários de leitura:

    • Se Option.IfAbsent ou Option.IfPresent for usado, 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

    11 KB * 100 = 100 KB

    100 KB + 10 KB = 110 KB

    0

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

    Contas adicionais de 10 KB para sobrecarga variável que pode ocorrer dependendo do número de lotes retornados e do limite do tamanho definido para a consulta.

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

    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 + 1 KB(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, pode ser necessário ler a chave primária, a chave secundária ou até mesmo o próprio registro. Leituras consistentes absolutas são necessárias para garantir que estamos lendo o registro mais recente. Leituras com consistência absoluta são o dobro do custo de leituras com consistência eventual. Essa é a razão para multiplicar por 2 na fórmula.

    Consumo de Leitura: Nenhum encargo para o índice e o tamanho do Registro é de 1 KB. Se executar 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 unitários de leitura e gravação. Como você precisa garantir que está olhando para a versão mais atual da linha, leituras consistentes absolutas são usadas, esse é o motivo para usar o multiplicador 2 na fórmula da unidade de leitura.

    Se executar usando 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 de índices é 1.

    Usando as etapas 2 e 3, determine 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 1.100 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, o aplicativo de E-commerce tem uma carga de trabalho de 1412 leituras por segundo e 28 gravações por segundo. Faça download do Estimador de Capacidade

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 Oracle Cloud, a Oracle fornecerá um estimador de custos para descobrir seu uso e custos mensais antes que você se comprometa com um modelo de assinatura ou uma quantia.

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ê entender como calcular as unidades de leitura e gravação para 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.

    Faça download e use o Estimador de Capacidades da Oracle Technology Network para estimar unidade de gravação, unidade de leitura e capacidade de armazenamento de seu aplicativo com base nos critérios da carga de Trabalho do aplicativo e das operações de banco de dados.

  2. Etapa 2: Acesse o Estimador de Custos no site da Oracle Cloud. Marque a caixa de seleção Gerenciamento de Dados. Role para localizar o Oracle NoSQL Database Cloud e selecione Adicionar para adicionar uma entrada para o Oracle NoSQL Database Cloud sob as Opções de Configuração. Expanda Banco de Dados No SQL para localizar as diferentes opções de Utilização e configuração. Valores de entrada para os parâmetros de Utilização e Configuração para estimar o custo de utilização do Oracle NoSQL Database Cloud Service de suas assinaturas do Oracle Cloud Pay-As-You-Go e Monthly Flex.

  3. Etapa 3: Acesse o Cost Estimator no site da Oracle Cloud. No menu suspenso, selecione Gerenciamento de dados. Você vê várias opções exibidas no Gerenciamento de Dados. Role até localizar o Oracle NoSQL Database Cloud. Clique em Adicionar para adicionar uma entrada para o Oracle NoSQL Database Cloud sob as Opções de Configuração.

  4. Etapa 4: Expanda o 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" (Disponível apenas na Região Phoenix) 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, a estimativa de custo total é mostrada como 0 e você pode prosseguir com a opção Always Free.
  5. Etapa 5: Como alternativa, se quiser provisionar maior capacidade de leitura, gravação e armazenamento do que a disponível em Always Free, você poderá fazer isso informando os valores de configuração em Database-NoSQL.

    • Etapa 5a: Em Utilização, não modifique os valores padrão, pois o Oracle NoSQL Database Cloud Service não usa nenhum desses valores.

    • Etapa 5b: 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 NFF será gerada no final do mês para o consumo real de unidades de leitura e gravação em tempo real. Assim, você pode querer coletar seus próprios logs de auditoria no aplicativo para verificar o faturamento de fim de mês. Seria recomendável registrar as unidades de leitura e gravação consumidas que são retornadas pelo serviço NoSQL Database Cloud a 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.

Para obter uma compreensão detalhada dos diferentes modelos de preços disponíveis, consulte Preços do NoSQL Database Cloud Service.

Custo/Faturamento para Tabelas Ativas Globais

O custo/faturamento de uma tabela Global Ativa tem dois componentes. O primeiro componente é o modelo de preço seguido para tabelas únicas, que leva em consideração as unidades de leitura por mês, as unidades de gravação por mês e a capacidade de armazenamento em Gigabytes (GB) por mês. O segundo componente é para as gravações replicadas de cada réplica de tabela regional para a tabela Ativo Global. As gravações replicadas recebidas são cobradas com base nas gravações consumidas.