Planificación del servicio

Dedique un tiempo a planificar su servicio de Oracle NoSQL Database Cloud Service antes de crearlo. Analice las cuestiones que se describen aquí y decida qué desea hacer antes de comenzar.

En este artículo se incluyen los siguientes temas:

Visión general de Developer

Obtenga una visión general de alto nivel de la arquitectura de servicio y seleccione un SDK/controlador que satisfaga sus necesidades de desarrollo de aplicaciones.

Tareas de desarrollador de NDCS

Oracle NoSQL Database Cloud Service (NDCS) es un servicio totalmente HA. Está diseñado para aplicaciones muy exigentes que requieren tiempos de respuesta de baja latencia, un modelo de datos flexible y una ampliación flexible para cargas de trabajo dinámicas. Como servicio totalmente gestionado, Oracle gestiona todas las tareas administrativas, como actualizaciones de software, parches de seguridad, fallos de hardware y aplicación de parches.


NoSQL SDK/controladores de base de datos: estos SDK están bajo la licencia universal permisiva (UPL) y se pueden utilizar en NoSQL Cloud Service o en la base de datos local. Estos son SDK completos y ofrecen un amplio conjunto de funcionalidades. Estos controladores también se pueden utilizar en aplicaciones que se ejecutan en clusters NoSQL de Oracle que se ejecutan en la nube de otros proveedores.
  1. SDK NoSQL para Java
  2. SDK de NoSQL JavaScript
  3. NoSQL SDK de Python
  4. NoSQL SDK de .NET
  5. NoSQL SDK de Go
  6. NoSQL SDK para datos de Spring

Consola de OCI: ofrece la capacidad de crear tablas rápidamente, modificar tablas, suprimir tablas, cargar datos, crear índices rápidamente, suprimir índices, consultas básicas, modificar capacidades de tabla y ver métricas.

SDK/controladores de OCI: Oracle Cloud Infrastructure proporciona una serie de Software Development Kits (SDK) para facilitar el desarrollo de soluciones personalizadas. Por lo general, tienen licencia bajo UPL. Ofrecen una funcionalidad similar a la de la consola de OCI a través de una interfaz programática.
  1. API de 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

Límites de Oracle NoSQL Database Cloud Service

Oracle NoSQL Database Cloud Service tiene varios límites por defecto. Cada vez que cree una tabla de Oracle NoSQL Database Cloud Service, el sistema garantiza que las solicitudes estén dentro de los límites del límite especificado. Algunos límites se imponen a nivel de tabla y otros se imponen a nivel de región.

Para obtener más información sobre los límites de servicio, su ámbito y cómo aumentarlos si envía una solicitud, consulte Límites de servicio. A continuación se muestran los límites aplicables actualmente a Oracle NoSQL Database Cloud Service.

Límite Ámbito Descripción Valor en un entorno no alojado Valor en un entorno alojado

Tamaño máximo de almacenamiento de tabla

Tabla

Tamaño total máximo de almacenamiento por arrendatario. El espacio total utilizado para una o más tablas no puede superar este valor.

5 TB

17.5TB

Nombres de tablas

Tabla

Número Máximo de Caracteres, Caracteres Permitidos y Carácter Inicial para Nombres de Tabla.

Los nombres de tablas pueden tener un máximo de 256 caracteres. Todos los nombres deben empezar por una letra (a-z, A-Z). Los caracteres posteriores pueden ser letras (A-Z), dígitos (0-9) o caracteres de subrayado.

Igual que un entorno no alojado

Capacidad aprovisionada: rendimiento máximo de lectura y escritura

Tabla

Rendimiento máximo de lectura y escritura al aprovisionar una tabla.

40 000 unidades de lectura y 20 000 unidades de escritura por tabla.

Hasta 420 000 unidades de lectura y 280 000 unidades de escritura en total para todas las tablas del entorno alojado

Capacidad bajo demanda: rendimiento máximo de lectura y escritura

Tabla

Rendimiento máximo de lectura y escritura al utilizar la capacidad de On Demand para aprovisionar tablas.

10 000 unidades de lectura y 5 000 unidades de escritura por tabla.

No permitido/necesario en un entorno alojado

Capacidad bajo demanda - Número de tablas

Región

Número de tablas con capacidad de On Demand.

3

No permitido/necesario en un entorno alojado

Cambiar el modo de provisionamiento

Tabla

Cambie el modo de aprovisionamiento de la tabla de Provisioned a On Demand o viceversa.

Solo se puede cambiar una vez al día.

N/A

Número máximo de tablas

Región

Número máximo de tablas.

30

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Número máximo de columnas.

Tabla

Número máximo de columnas.

50

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Número máximo de actualizaciones de esquema de tabla

Tabla

Número máximo de actualizaciones de esquema de tabla.

100

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Número máximo de índices

Tabla

Número máximo de índices.

5

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Número máximo de cambios para los límites de rendimiento y almacenamiento

Tabla

El número máximo de cambios para los límites de rendimiento y almacenamiento.

Oracle permite:

  • Número limitado de aumentos de rendimiento y almacenamiento por día

  • Hasta cuatro reducciones en el rendimiento o el almacenamiento por periodo de 24 horas.

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Nombres de Índice

Índice

Número máximo de caracteres, caracteres permitidos y carácter inicial.

Los nombres de índice pueden tener un máximo de 64 caracteres. Todos los nombres deben empezar por una letra (a-z, A-Z). Los caracteres posteriores pueden ser letras (A-Z), dígitos (0-9) o caracteres de subrayado.

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Número máximo de operaciones individuales por solicitud WriteMultiple

Solicitud

El número máximo de operaciones individuales por solicitud WriteMultiple.

50

Igual que un entorno no alojado. También se puede aumentar con la actualización de límites de servicio de solicitud

Tamaño máximo de datos para la solicitud WriteMultiple.

Solicitud

Tamaño máximo de datos para la solicitud WriteMultiple.

25 MB

Igual que un entorno no alojado. También se puede aumentar con la actualización de límites de servicio de solicitud

Nombres de Columnas

Columna

Número máximo de caracteres, caracteres permitidos y carácter inicial.

Los nombres de campo pueden tener un máximo de 64 caracteres. Todos los nombres deben empezar por una letra (a-z, A-Z). Los caracteres posteriores pueden ser letras (A-Z), dígitos (0-9) o caracteres de subrayado.

Igual que un entorno no alojado.

Tamaño máximo de clave de índice secundario

Índice

Tamaño máximo de clave de índice.

64 bytes

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Tamaño máximo de clave de índice principal

Índice

Tamaño máximo de clave primaria.

64 bytes

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Tamaño máximo de fila

Fila

Tamaño máximo de fila

512 KB

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Longitud máxima de cadena de consulta.

Consulta

Longitud máxima de cadena de consulta.

10 KB

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Ratio máximo soportado de operaciones DDL.

Región

Ratio máximo soportado de operaciones DDL.

4 por minuto

Se puede personalizar mediante la actualización de límites de servicio de solicitud

Valor máximo para los recursos de rendimiento y almacenamiento de datos.

Región

Valor máximo para los recursos de rendimiento y almacenamiento de datos.

Por región, Oracle permite:

  • Un máximo de 100 000 unidades de lectura

  • Un máximo de 40 000 unidades de escritura

Oracle permite un tamaño de almacenamiento máximo de 5 TB por arrendatario, que es de 5 TB. La región puede tener una sola tabla con un tamaño de almacenamiento de 5 TB, en cuyo caso la región no puede crear otra tabla. O bien, puede tener varias tablas y asegurarse de que los datos de todas las tablas no superan el tamaño de almacenamiento máximo de 5 TB.

420 000 unidades de escritura, 280 000 unidades de lectura, 17,5 TB de almacenamiento

Estimación de la capacidad

Descubra cómo estimar las capacidades de rendimiento y almacenamiento para su Oracle NoSQL Database Cloud Service.

Conceptos básicos sobre el cálculo

Antes de obtener información sobre cómo estimar el rendimiento y el almacenamiento del servicio, revise las definiciones de las unidades de almacenamiento y rendimiento.

  • Unidad de escritura (WU): una unidad de escritura corresponde a un rendimiento de hasta 1 KB de datos por segundo. Una operación de escritura es cualquier llamada de API de Oracle NoSQL Database Cloud Service que da lugar a la inserción, actualización o supresión de un registro. Una tabla NoSQL tiene un valor de límite de escritura que especifica el número de unidades de escritura que se pueden utilizar cada segundo. Las actualizaciones de índice también consumen unidades de escritura.

    Por ejemplo, un tamaño de registro inferior a 1 KB necesita una WU para una operación de escritura. Un tamaño de registro de 1,5 KB necesita dos W para la operación de escritura.

  • UNIDAD DE LECTURA (RU): una UNIDAD DE LECTURA se define como un rendimiento de hasta 1 KB de datos por segundo para una operación de LECTURA finalmente coherente. La tabla NoSQL tiene un valor de límite de lectura que especifica el número de unidades de lectura que se pueden utilizar cada segundo.

    Por ejemplo, un tamaño de registro de menos de 1 KB requiere una RU para una operación de lectura finalmente coherente. Un tamaño de registro de 1,5 KB necesita dos RU para una operación de lectura finalmente coherente y cuatro RU para una operación de lectura totalmente coherente.

  • Capacidad de almacenamiento: una unidad de almacenamiento corresponde a un solo GB de almacenamiento de datos.

  • Coherencia absoluta: se espera que los datos devueltos sean los datos escritos más recientemente en la base de datos.

  • Coherencia final: puede que los datos devueltos no sean los escritos más recientemente en la base de datos; si no se realizan nuevas actualizaciones en los datos, finalmente todos los accesos a dichos datos devuelven el último valor actualizado.

Note:

Oracle NoSQL Database Cloud Service gestiona automáticamente las capacidades de lectura y escritura para satisfacer las necesidades de las cargas de trabajo dinámicas al utilizar la capacidad bajo demanda. Se recomienda validar que las necesidades de capacidad no superen los límites de capacidad de On Demand. Consulte Límite de Oracle NoSQL Database Cloud Service para obtener más información.

factores que afectan a la unidad de capacidad

Antes de provisionar las unidades de capacidad, es importante tener en cuenta los siguientes factores que afectan a las capacidades de lectura, escritura y almacenamiento.

  • Tipo de registro: a medida que aumenta el tamaño del registro, también aumenta el número de unidades de capacidad consumidas para escribir o leer datos.

  • Coherencia de datos: las lecturas absolutamente coherentes duplican el coste de las lecturas finalmente coherentes.

  • Índice secundario: en una tabla, cuando se modifica un registro existente (se agrega, actualiza o suprime), la actualización de índices secundarios consume unidades de escritura. El costo del rendimiento total asignado para una operación de escritura es la suma de las unidades de escritura consumidas por la escritura en la tabla y la actualización de los índices secundarios locales.

  • Solución de modelado de datos: con JSON sin esquema, cada documento se describe automáticamente, lo que supone un exceso de metadatos en el tamaño general del registro. Con tablas de esquema fijo, el exceso de cada registro es exactamente de 1 byte.

  • Modelo de consulta: el costo de una operación de consulta depende del número de filas recuperadas, el número de predicados, el tamaño de los datos de origen, las previsiones y la presencia de índices. Las consultas menos costosas especifican una clave de partición horizontal o una clave de índice (con un índice asociado) para permitir al sistema aprovechar los índices primarios y secundarios. Una aplicación puede probar diferentes consultas y examinar el rendimiento consumido para ayudar a ajustar las operaciones.

Ejemplo en el Mundo Real: Cómo Estimar la Carga de Trabajo de la Aplicación

Tenga en cuenta un ejemplo de aplicación de E-commerce para aprender a estimar las operaciones de lectura y escritura por segundo. En este ejemplo, Oracle NoSQL Database Cloud Service se utiliza para almacenar la información del catálogo de productos de la aplicación.

  1. Identificar el modelo de datos (JSON o tabla fija), el tamaño de registro y el tamaño de clave para la aplicación.

    Asuma que la aplicación de E-commerce sigue el modelo de datos JSON y el desarrollador ha creado una tabla simple con dos columnas. Un identificador de registro ( clave primaria) y un documento JSON para los atributos y las funciones del producto. El documento JSON, que tiene menos de 1 KB (0,8 KB), tiene las siguientes características:

    {
      "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" }
    }

    Suponga que la aplicación tiene 100 000 registros de ese tipo y que la clave primaria tiene aproximadamente 20 bytes de tamaño. Además, suponga que hay consultas que leen registros utilizando un índice secundario. Por ejemplo, para buscar todos los registros que tengan un tamaño de pantalla de 13 pulgadas, Por lo tanto, se crea un índice en el campo screenSize.

    Se resume así:

    Tablas filas por tabla Columnas por tabla Tamaño de la clave en bytes Tamaño de valor en bytes (suma de todas las columnas) Índices Tamaño de clave de índice en bytes

    1

    100000

    2

    20

    1 KB

    1

    20

  2. Identifique la lista de operaciones (por lo general, operaciones de creación, lectura, actualización y supresión, y lecturas de índice) en la tabla y la velocidad prevista de estas.

    Operación Número de operaciones Ejemplo

    Crear Registros.

    3

    Para crear un producto.

    Leer registros mediante la clave primaria.

    200

    Para leer los detalles del producto mediante el ID de producto.

    Leer registros mediante el índice secundario.

    1

    Para recuperar todos los productos con un tamaño de pantalla de 13 pulgadas.

    Actualizar o agregar un atributo a un registro.

    5

    Para actualizar la descripción del producto de una cámara

    o bien,

    Para agregar información sobre el peso de una cámara.

    Suprimir Registro.

    5

    Para suprimir un producto existente.

  3. Determine el consumo de lectura y escritura en KB.

    Operación suposiciones (si las hay) Fórmula Consumo de lectura (KB) Consumo de escritura (KB) Notas/Explicación
    Crear Registros. Suponga que los registros se crean sin realizar ninguna comprobación de condición (si la hubiera). Record size (rounded to next KB) + 1 KB(index) * (number of indexes) 0 1 KB + 1 KB (1 ) = 2 KB

    El tamaño del registro es de 1 KB (0,8 KB para la columna JSON y 20 bytes para la columna clave) y hay un índice de tamaño 1 KB.

    Una operación de creación genera un costo unitario de lectura si ejecuta los comandos put con algunas opciones. Puesto que necesita garantizar que está leyendo la versión más reciente de la fila, se utilizan lecturas consistentes absolutas. En estos casos, se utiliza el multiplicador 2 en la fórmula de unidad de lectura. Estas son las diferentes opciones para determinar los costos unitarios de lectura:
    • Si se utiliza Option.IfAbsent o Option.IfPresent, Consumo de lectura = 2
    • Si se utiliza setReturnRow, Consumo de lectura = 2 * Tamaño de registro
    • Si se utilizan Option.IfAbsent y setReturnRow, Consumo de lectura = 2 * Tamaño de registro
    Leer registros mediante la clave primaria.   Record size round up to KB Tamaño del registro = 1 KB 0 El tamaño de registro es de 1 KB
    Leer registros mediante el índice secundario. Imagine que se devuelven 100 registros. record_size * number_of_records_matched

    11 KB *100 = 100 KB

    100 KB + 10 KB = 110 KB

    0

    No hay ningún cargo por el índice secundario. El tamaño de registro es de 1 KB. Para 100 registros es de 100 KB.

    10 KB adicionales representan la sobrecarga variable que se puede producir según el número de lotes devueltos y el límite de tamaño definido para la consulta.

    Los gastos generales son el costo de leer la última clave de un lote. Se trata de una variable que depende de maxReadKB y del tamaño del registro. La sobrecarga es de hasta (numBatches - 1) * costo de lectura de clave (1 KB).

    Actualizar registros existentes Suponga que el registro actualizado tiene el mismo tamaño que el registro antiguo (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

    Cuando las filas se actualizan mediante una consulta (sentencia SQL), se consumen las unidades de lectura y escritura. Según la actualización, puede que necesite leer la clave primaria, la clave secundaria o incluso el propio registro. Se necesitan lecturas consistentes absolutas para garantizar que estamos leyendo el registro más reciente. Las lecturas de consistencia absoluta son el doble del costo de las lecturas de consistencia final. Esta es la razón de multiplicar por 2 en la fórmula.

    Consumo de lectura: ningún cargo por índice y tamaño de registro es de 1 KB. Si se ejecuta con la opción setReturnRow, Consumo de lectura = 2 * Tamaño de registro

    Consumo de escritura: el tamaño de registro original y nuevo es de 1 KB y 1 KB para un índice.

    Suprimir 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

    Una supresión conlleva costos unitarios de lectura y escritura. Puesto que tiene que garantizar que está buscando la versión más actual de la fila, se utilizan lecturas consistentes absolutas, es decir, el motivo para utilizar el multiplicador 2 en la fórmula de unidad de lectura.

    Si se ejecuta con la opción setReturnRow, Consumo de lectura = 2 * Tamaño de registro. De lo contrario, Leer consumo= 1 KB para un índice

    Consumo de escritura: el tamaño del registro es 1 KB y 1 KB para el índice. El número de índice es 1.

    Con los pasos 2 y 3, determine las unidades de lectura y escritura para la carga de trabajo de aplicación.

    Operations Velocidad de las operaciones Lecturas por Segundo Escrituras por Segundo

    Crear Registros

    3

    0

    6

    Leer registros mediante la clave primaria

    300

    300

    0

    Leer registros mediante el índice secundario

    10

    1100

    0

    Actualizar un registro existente

    5

    10

    20

    Suprimir Registro

    1

    2

    2

    Total de unidades de lectura: 1412

    Total de unidades de escritura: 28

    Por lo tanto, se estima que la aplicación de comercio electrónico tiene una carga de trabajo de 1412 lecturas por segundo y 28 escrituras por segundo. Descarga el estimador de capacidad de Oracle Technology Network para introducir estos valores y calcular el rendimiento y el almacenamiento de la aplicación.

Note:

Los cálculos anteriores adoptan solicitudes de lectura finalmente coherentes. Para una solicitud de lectura absolutamente coherente, la operación consume el doble. Por lo tanto, las unidades de capacidad de lectura serían 4844 unidades de lectura.

Estimación del coste mensual

Descubra cómo calcular el costo mensual de su suscripción mensual de Oracle Cloud.

Cuando esté listo para realizar el pedido del servicio Oracle Cloud, Oracle le proporciona un estimador de costos para conocer el uso mensual y los costos antes de confirmar un modelo de suscripción o un importe.

El estimador de costos calcula automáticamente el costo mensual según las unidades de lectura, las unidades de escritura y el almacenamiento indicados. Para comprender cómo calcular las unidades de lectura y escritura para su aplicación, siga estos pasos:

  1. Paso1: vaya hasta el tema Estimación de la capacidad. Calcule la carga de trabajo de la aplicación con el ejemplo y las fórmulas que se describen en este tema.

    Paso 2: descargue y use el estimador de capacidad de Oracle Technology Network para estimar las unidades de escritura, las unidades de lectura y la capacidad de almacenamiento para su aplicación según los criterios de operaciones de base de datos y carga de trabajo de la aplicación.

  2. Paso 2: Acceda al estimador de costos en el sitio web de Oracle Cloud. Seleccione la casilla de control Gestión de datos. Vaya a Oracle NoSQL Database Cloud y haga clic en Agregar para agregar una entrada para Oracle NoSQL Database Cloud en Opciones de configuración. Expanda NoSQL Database para buscar las diferentes opciones de configuración y uso. Introduzca valores para los parámetros Utilización y configuración para estimar el costo del uso de Oracle NoSQL Database Cloud Service de sus suscripciones Oracle Cloud Pay-As-You-Go y Mensual flexible.

  3. Paso 3: Accede al estimador de costos en el sitio web de Oracle Cloud. En la lista desplegable, seleccione Data Management. Verá varias opciones que se muestran en Data Management. Vaya a Oracle NoSQL Database Cloud. Haga clic en Add para agregar una entrada a Oracle NoSQL Database Cloud en Configuration Options.

  4. Paso 4: Amplíe Database: NoSQL para buscar las diferentes opciones de configuración y uso. Tiene dos opciones en Configuración. Puede empezar con una opción "Always Free" o aprovisionar la instancia con la configuración que desee.
    • Paso 4a: si desea una opción Siempre gratis, en Configuración, amplíe Oracle NoSQL Database Cloud - Lectura, Oracle NoSQL Database Cloud Service - Almacenamiento y Oracle NoSQL Database Cloud Service - Escritura y cambie la capacidad de lectura, almacenamiento y escritura como 0. A continuación, la estimación de costo total se muestra como 0 y puede continuar con la opción Siempre gratis.
  5. Paso 5: de manera alternativa, si desea aprovisionar una capacidad de lectura, escritura y almacenamiento superior a la disponible en Siempre gratis, puede hacerlo introduciendo los valores de configuración en Database-NoSQL.
    • Paso 5a: en Utilización, no modifique los valores por defecto, ya que Oracle NoSQL Database Cloud Service no utiliza ninguno de estos valores.
    • Paso 5 b: En Configuración, agregue el número de unidades de lectura, unidades de escritura y capacidad de almacenamiento que estimó en el paso anterior. El costo se calcula en función de los valores de entrada y se muestra en la página.

Note:

Si utiliza la función de escala automática, se generará una factura de venta de fin de mes para el consumo real de unidades de lectura y escritura en tiempo real. Por lo tanto, es posible que desee recopilar sus propios logs de auditoría en la aplicación para verificar la facturación de fin de mes. Se recomienda registrar las unidades de lectura y escritura consumidas que devuelve el servicio NoSQL Database Cloud con cada llamada de API. Puede utilizar estos datos para correlacionarlos con los datos de facturación de fin de mes del sistema de medición y facturación de Oracle Cloud.

Para obtener un conocimiento detallado de los diferentes modelos de precios disponibles, consulte Precios de NoSQL Database Cloud Service.

Costo/facturación para tablas activas globales

El costo/facturación de una tabla activa global tiene dos componentes. El primer componente es el modelo de precios seguido de tablas únicas, que tiene en cuenta las unidades de lectura al mes, las unidades de escritura al mes y la capacidad de almacenamiento en GB al mes. El segundo componente es para las escrituras replicadas para cada réplica de tabla regional para la tabla Global Active. Las escrituras replicadas entrantes se cargan según las escrituras consumidas.