Planificación del servicio

Tenga un tiempo para planificar su servicio de Oracle NoSQL Database Cloud Service antes de crearlo. Analice las cuestiones planteadas en esta sección y decida qué desea hacer antes de comenzar.

En este artículo se incluyen los siguientes temas:

Descripción general del desarrollador

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

Tareas de desarrollador de NDCS

Oracle NoSQL Database Cloud Service (NDCS) es un servicio totalmente de alta disponibilidad. Está diseñado para aplicaciones muy exigentes que requieren tiempos de respuesta de baja latencia, un modelo de datos flexible y una ampliación elástica 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 parches.
A continuación, se muestra la descripción de developer_overview.png

NoSQL SDK/controladores de la base de datos: estos SDK tienen licencia 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 funciones. Estos controladores también se pueden utilizar en aplicaciones que se ejecutan en clusters NoSQL de Oracle que se ejecutan en otros proveedores en la nube.
  1. NoSQL SDK para Java
  2. NoSQL SDK DE JavaScript
  3. NoSQL SDK DE Python
  4. NoSQL. SDK NETO
  5. NoSQL SDK de Go
  6. NoSQL SDK para datos de primavera

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 kits de desarrollo de software (SDK) para facilitar el desarrollo de soluciones personalizadas. Normalmente están bajo licencia UPL. Estos ofrecen una funcionalidad similar a 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 de Go
  7. SDK para Ruby

Límites de Oracle NoSQL Database Cloud Service

Límites aplicables actualmente a Oracle NoSQL Database Cloud Service.

Alcance Descripción Valor

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

Nombres de tabla

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

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, A-Z), dígitos (0-9) o caracteres de subrayado.

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.

Tabla

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

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

Arrendatario

Número de tablas con capacidad de On Demand.

3

Tabla

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

Solo se puede cambiar una vez al día.

Región

Número máximo de tablas.

30

Tabla

Número máximo de columnas.

50

Tabla

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

100

Tabla

Número máximo de índices.

5

Tabla

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

Oracle permite:

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

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

Nombres de í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, A-Z), dígitos (0-9) o caracteres de subrayado.

Solicitud

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

50

Solicitud

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

25 MB

Nombres de campo 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, A-Z), dígitos (0-9) o caracteres de subrayado.

Campo

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

64 bytes

Campo

Tamaño máximo de clave primaria.

64 bytes

Fila

Tamaño máximo de fila.

512 kB

Consulta

Longitud máxima de cadena de consulta.

10 kB

Región

Ratio máximo soportado de operaciones DDL.

4 por minuto

Región

Valores máximos 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. 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 siempre y cuando los datos de todas las tablas no superen el tamaño de almacenamiento máximo de 5 TB.

Estimación de la capacidad

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

Aspectos 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 al rendimiento de hasta 1 kilobyte (kB) de datos por segundo. Una operación de escritura es cualquier llamada de API de Oracle NoSQL Database Cloud Service que da como resultado 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 corresponde con 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 gigabyte (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.

Nota

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ímites de Oracle NoSQL Database Cloud Service para obtener más información.

Factores que afectan a la unidad de capacidad

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

  • Tamaño 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.

  • Índices secundarios: 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 aprovisionado 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.

  • Selecció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 equivale exactamente a 1 byte.

  • Patrón 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

Considere un ejemplo de aplicación de ecommerce para aprender a estimar las lecturas y escrituras 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. Identifique el modelo de datos (JSON o tabla fija), el tamaño de registro y el tamaño de clave para la aplicación.

    Supongamos 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), es el siguiente:

    {
      "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 a través de 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.

    Podría resumirse 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

    100 000

    2

    20

    1 KB

    1

    20

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

    Operación Número de operaciones (por segundo) 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 de clave) y hay un índice de tamaño 1 KB.

    Una operación de creación genera un costo de unidad de lectura si ejecuta los comandos put con algunas opciones. Puesto que necesita garantizar que está leyendo la versión más actual de la fila, se utilizan lecturas consistentes absolutas. En estos casos, se utiliza el multiplicador 2 en la fórmula de unidad de lectura. A continuación se muestran las diferentes opciones para determinar los costos de unidad de lectura:
    • Si se utiliza Option.IfAbsent o Option.IfPresent, consulte Consumo = 2
    • Si se utiliza setReturnRow, Consumo de lectura = 2 * Tamaño de registro
    • Si se utiliza 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 de registro = 1 kB 0 El tamaño del registro es de 1 KB
    Leer registros mediante el índice secundario. Suponga 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 del registro es de 1 KB. Para 100 registros, es de 100 KB.

    Otros 10 KB 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.

    La sobrecarga es el costo de la lectura de la última clave en un lote. Esta es una variable que depende del tamaño de registro y maxReadKB. 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 + 1 KB(1) *(2) = 4 KB

    Cuando las filas se actualizan mediante una consulta (sentencia SQL), se consumen tanto las unidades de lectura como las de 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 duplican el costo de las lecturas de consistencia eventuales. Es el motivo 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 tiene costos de unidad de lectura y escritura. Puesto que tiene que garantizar que está mirando la versión más actual de la fila, se utilizan lecturas consistentes absolutas, es decir, el motivo por el que se utiliza 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 de 1 KB y 1 KB para el índice. El número de índice es 1.

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

    Operaciones 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 e-commerce tiene una carga de trabajo de 1412 lecturas por segundo y 28 escrituras por segundo. Descargue el estimador de capacidad de Oracle Technology Network para introducir estos valores y calcular el rendimiento y el almacenamiento de la aplicación.

Nota

Los cálculos anteriores usan 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 de Oracle Cloud.

Cuando esté listo para tramitar 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. Desplácese hasta Oracle NoSQL Database Cloud y haga clic en Agregar para agregar una entrada para Oracle NoSQL Database Cloud en Opciones de configuración. Amplíe NoSQL Database para buscar las diferentes opciones de configuración y uso. Introduzca valores en los parámetros Uso y Configuración para calcular el coste del uso de Oracle NoSQL Database Cloud Service con las suscripciones Pago por consumo y Pago flexible mensual de Oracle Cloud.

  3. Paso 3: Acceda al estimador de costos en el sitio web de Oracle Cloud. En la lista desplegable, seleccione Data Management. Verá varias opciones mostradas en Data Management. Desplácese hasta Oracle NoSQL Database Cloud. Haga clic en Add para agregar una entrada para Oracle NoSQL Database Cloud en Configuration Options.

  4. Paso 4: amplíe la base de datos: NoSQL para buscar las diferentes opciones de configuración y uso. Tiene dos opciones en Configuration. Puede empezar por una opción "Siempre gratis" o puede aprovisionar su 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 - Escriba 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: Alternativamente, si desea aprovisionar una capacidad de lectura, escritura y almacenamiento superior a la que está disponible en Always Free, 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.
Nota

Si utiliza la función de escala automática, se generará una factura de venta al final del mes para el consumo real de unidades de lectura y escritura en tiempo real. Por lo tanto, puede 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 datos de facturación de fin de mes del sistema de medición y facturación de Oracle Cloud.