¿Qué es el almacén analítico de Azure Cosmos DB?What is Azure Cosmos DB analytical store?

SE APLICA A: SQL API Azure Cosmos DB API para MongoDB

El almacén analítico de Azure Cosmos DB es un almacén de columnas completamente aislado para habilitar el análisis a gran escala en los datos operativos de su instancia de Azure Cosmos DB, sin que ello afecte a las cargas de trabajo transaccionales.Azure Cosmos DB analytical store is a fully isolated column store for enabling large-scale analytics against operational data in your Azure Cosmos DB, without any impact to your transactional workloads.

El almacén transaccional de Azure Cosmos DB es independiente del esquema y le permite iterar las aplicaciones transaccionales sin tener que encargarse de la administración de esquemas o índices.Azure Cosmos DB transactional store is schema-agnostic, and it allows you to iterate on your transactional applications without having to deal with schema or index management. A diferencia de esto, el almacén analítico de Azure Cosmos DB está esquematizado para optimizar el rendimiento de las consultas analíticas.In contrast to this, Azure Cosmos DB analytical store is schematized to optimize for analytical query performance. En este artículo se describe detalladamente el almacenamiento analítico.This article describes in detailed about analytical storage.

Desafíos del análisis a gran escala de los datos operativosChallenges with large-scale analytics on operational data

Los datos operativos de varios modelos de un contenedor de Azure Cosmos DB se almacenan internamente en un "almacén transaccional" basado en filas indexado.The multi-model operational data in an Azure Cosmos DB container is internally stored in an indexed row-based "transactional store". El formato del almacén de filas está diseñado para permitir lecturas y escrituras transaccionales rápidas, con tiempos de respuesta en el orden de milisegundos, y consultas operativas.Row store format is designed to allow fast transactional reads and writes in the order-of-milliseconds response times, and operational queries. Si el conjunto de datos crece, las consultas analíticas complejas pueden ser costosas en términos de rendimiento aprovisionado en los datos almacenados en este formato.If your dataset grows large, complex analytical queries can be expensive in terms of provisioned throughput on the data stored in this format. El alto consumo de rendimiento aprovisionado, a su vez, afecta al rendimiento de las cargas de trabajo transaccionales utilizadas por las aplicaciones y los servicios en tiempo real.High consumption of provisioned throughput in turn, impacts the performance of transactional workloads that are used by your real-time applications and services.

Tradicionalmente, para analizar grandes cantidades de datos, los datos operativos se extraen del almacén transaccional de Azure Cosmos DB y se almacenan en una capa de datos independiente.Traditionally, to analyze large amounts of data, operational data is extracted from Azure Cosmos DB's transactional store and stored in a separate data layer. Por ejemplo, los datos se almacenan en un almacenamiento de datos o en un lago de datos con un formato adecuado.For example, the data is stored in a data warehouse or data lake in a suitable format. Más tarde, estos datos se usan para análisis a gran escala, y se analizan mediante un motor de proceso, como los clústeres de Apache Spark.This data is later used for large-scale analytics and analyzed using compute engine such as the Apache Spark clusters. Esta separación entre las capas de almacenamiento analítico y de proceso y los datos operativos produce latencia adicional, ya que las canalizaciones ETL (extracción, transformación y carga) se ejecutan con menos frecuencia para minimizar el posible impacto en las cargas de trabajo transaccionales.This separation of analytical storage and compute layers from operational data results in additional latency, because the ETL(Extract, Transform, Load) pipelines are run less frequently to minimize the potential impact on your transactional workloads.

Las canalizaciones ETL también se vuelven complejas al administrar las actualizaciones de los datos operativos en comparación con cuando se administran únicamente los datos operativos recién ingeridos.The ETL pipelines also become complex when handling updates to the operational data when compared to handling only newly ingested operational data.

Almacén analítico orientado a columnasColumn-oriented analytical store

El almacén analítico de Azure Cosmos DB aborda los desafíos de complejidad y latencia que se presentan con las canalizaciones ETL tradicionales.Azure Cosmos DB analytical store addresses the complexity and latency challenges that occur with the traditional ETL pipelines. El almacén analítico de Azure Cosmos DB puede sincronizar automáticamente los datos operativos en un almacén de columnas independiente.Azure Cosmos DB analytical store can automatically sync your operational data into a separate column store. El formato del almacén de columnas es adecuado para las consultas analíticas a gran escala que se van a realizar de forma optimizada, lo que aumenta la latencia de estas.Column store format is suitable for large-scale analytical queries to be performed in an optimized manner, resulting in improving the latency of such queries.

Con Azure Synapse Link, ahora puede compilar soluciones de HTAP sin ETL mediante la vinculación directa al almacén analítico de Azure Cosmos DB desde Azure Synapse Analytics.Using Azure Synapse Link, you can now build no-ETL HTAP solutions by directly linking to Azure Cosmos DB analytical store from Azure Synapse Analytics. Esto le permite ejecutar análisis a gran escala casi en tiempo real con los datos operativos.It enables you to run near real-time large-scale analytics on your operational data.

Características del almacén analíticoFeatures of analytical store

Cuando se habilita el almacén analítico en un contenedor de Azure Cosmos DB, se crea internamente un nuevo almacén de columnas en función de los datos operativos del contenedor.When you enable analytical store on an Azure Cosmos DB container, a new column-store is internally created based on the operational data in your container. Este almacén de columnas se conserva de forma independiente del almacén transaccional orientado a filas de ese contenedor.This column store is persisted separately from the row-oriented transactional store for that container. Las inserciones, actualizaciones y eliminaciones de los datos operativos se sincronizan automáticamente con el almacén analítico.The inserts, updates, and deletes to your operational data are automatically synced to analytical store. No necesita la fuente de cambios ni ETL para sincronizar los datos.You don't need the change feed or ETL to sync the data.

Almacén de columnas para cargas de trabajo analíticas en datos operativosColumn store for analytical workloads on operational data

En general, las cargas de trabajo analíticas implican agregaciones y exámenes secuenciales de los campos seleccionados.Analytical workloads typically involve aggregations and sequential scans of selected fields. Al almacenar los datos en un orden de columna principal, el almacén analítico permite serializar en conjunto un grupo de valores para cada campo.By storing the data in a column-major order, the analytical store allows a group of values for each field to be serialized together. Este formato reduce las IOPS necesarias para examinar o procesar las estadísticas de los campos específicos.This format reduces the IOPS required to scan or compute statistics over specific fields. Esto mejora drásticamente los tiempos de respuesta de las consultas para los exámenes en grandes conjuntos de datos.It dramatically improves the query response times for scans over large data sets.

Por ejemplo, si las tablas operativas se encuentran en el formato siguiente:For example, if your operational tables are in the following format:

Tabla operativa de ejemplo

El almacén de filas conserva los datos anteriores en un formato serializado, por fila, en el disco.The row store persists the above data in a serialized format, per row, on the disk. Este formato permite lecturas y escrituras transaccionales y consultas operativas más rápidas, como "Devolver información sobre Product1".This format allows for faster transactional reads, writes, and operational queries, such as, "Return information about Product1". Sin embargo, a medida que el conjunto de datos crece en gran medida y si desea ejecutar consultas analíticas complejas con los datos, esto puede ser caro.However, as the dataset grows large and if you want to run complex analytical queries on the data it can be expensive. Por ejemplo, si desea obtener "las tendencias de ventas de un producto en la categoría denominada 'Equipment' en diferentes unidades de negocio y meses", debe ejecutar una consulta compleja.For example, if you want to get "the sales trends for a product under the category named 'Equipment' across different business units and months", you need to run a complex query. Los análisis de gran tamaño de este conjunto de datos pueden resultar caros en cuanto al rendimiento aprovisionado, además de poder afectar al rendimiento de las cargas de trabajo transaccionales que potencian sus aplicaciones y servicios en tiempo real.Large scans on this dataset can get expensive in terms of provisioned throughput and can also impact the performance of the transactional workloads powering your real-time applications and services.

El almacén analítico, que es un almacén de columnas, es más adecuado para estas consultas, ya que serializa en conjunto los campos de datos similares y reduce las IOPS del disco.Analytical store, which is a column store, is better suited for such queries because it serializes similar fields of data together and reduces the disk IOPS.

En la imagen siguiente se muestra el almacén de filas transaccional frente el almacén de columnas analítico en Azure Cosmos DB:The following image shows transactional row store vs. analytical column store in Azure Cosmos DB:

Almacén de filas transaccional frente al almacén de columnas analítico en Azure Cosmos DB

Rendimiento desacoplado para cargas de trabajo analíticasDecoupled performance for analytical workloads

No hay ningún impacto en el rendimiento de las cargas de trabajo transaccionales debido a las consultas analíticas, ya que el almacén analítico es independiente del almacén transaccional.There is no impact on the performance of your transactional workloads due to analytical queries, as the analytical store is separate from the transactional store. El almacén analítico no necesita que se asignen Unidades de solicitud (RU) independientes.Analytical store does not need separate request units (RUs) to be allocated.

Sincronización automáticaAuto-Sync

La sincronización automática hace referencia a la funcionalidad totalmente administrada de Azure Cosmos DB donde las inserciones, las actualizaciones y las eliminaciones de datos operativos se sincronizan automáticamente entre el almacén transaccional y el almacén analítico casi en tiempo real.Auto-Sync refers to the fully managed capability of Azure Cosmos DB where the inserts, updates, deletes to operational data are automatically synced from transactional store to analytical store in near real time. La latencia de sincronización automática suele ser de menos de 2 minutos.Auto-sync latency is usually within 2 minutes. En los casos en los que una base de datos de rendimiento compartida cuente con un gran número de contenedores, la latencia de sincronización automática de contenedores individuales puede ser mayor y tardar hasta 5 minutos.In cases of shared throughput database with a large number of containers, auto-sync latency of individual containers could be higher and take up to 5 minutes. Nos gustaría obtener más información sobre cómo encaja esta latencia en sus escenarios.We would like to learn more how this latency fits your scenarios. Para ello, póngase en contacto con el equipo de Azure Cosmos DB.For that, please reach out to the Azure Cosmos DB team.

La funcionalidad de sincronización automática, junto con el almacén analítico, proporciona las siguientes ventajas clave:The auto-sync capability along with analytical store provides the following key benefits:

Escalabilidad y elasticidadScalability & elasticity

Mediante la creación de partición horizontal, el almacén transaccional de Azure Cosmos DB puede escalar elásticamente el almacenamiento y el rendimiento sin tiempo de inactividad.By using horizontal partitioning, Azure Cosmos DB transactional store can elastically scale the storage and throughput without any downtime. La creación de partición horizontal en el almacén transaccional proporciona escalabilidad y elasticidad en la sincronización automática para garantizar que los datos se sincronicen con el almacén analítico casi en tiempo real.Horizontal partitioning in the transactional store provides scalability & elasticity in auto-sync to ensure data is synced to the analytical store in near real time. La sincronización de datos se produce independientemente del rendimiento del tráfico transaccional, ya sean 1000 operaciones/s o 1 millón de operaciones/s, y no afecta al rendimiento aprovisionado en el almacén transaccional.The data sync happens regardless of the transactional traffic throughput, whether it is 1000 operations/sec or 1 million operations/sec, and it doesn't impact the provisioned throughput in the transactional store.

Control automático de las actualizaciones de esquemaAutomatically handle schema updates

El almacén transaccional de Azure Cosmos DB es independiente del esquema y le permite iterar las aplicaciones transaccionales sin tener que encargarse de la administración de esquemas o índices.Azure Cosmos DB transactional store is schema-agnostic, and it allows you to iterate on your transactional applications without having to deal with schema or index management. A diferencia de esto, el almacén analítico de Azure Cosmos DB está esquematizado para optimizar el rendimiento de las consultas analíticas.In contrast to this, Azure Cosmos DB analytical store is schematized to optimize for analytical query performance. Con la funcionalidad de sincronización automática, Azure Cosmos DB administra la inferencia de esquemas en las actualizaciones más recientes del almacén transaccional.With the auto-sync capability, Azure Cosmos DB manages the schema inference over the latest updates from the transactional store. También administra la representación del esquema en el almacén analítico de manera integrada, lo que incluye el control de los tipos de datos anidados.It also manages the schema representation in the analytical store out-of-the-box which, includes handling nested data types.

A medida que evoluciona el esquema, y se agregan propiedades nuevas con el tiempo, el almacén analítico presenta automáticamente un esquema unificado de todos los esquemas históricos del almacén de transacciones.As your schema evolves, and new properties are added over time, the analytical store automatically presents a unionized schema across all historical schemas in the transactional store.

Restricciones del esquemaSchema constraints

Las restricciones siguientes se aplican a los datos operativos de Azure Cosmos DB al habilitar el almacén analítico para que realice la inferencia automáticamente y represente el esquema correctamente:The following constraints are applicable on the operational data in Azure Cosmos DB when you enable analytical store to automatically infer and represent the schema correctly:

  • Puede tener 200 propiedades como máximo en cualquier nivel de anidamiento del esquema y una profundidad de anidamiento máxima de 5.You can have a maximum of 200 properties at any nesting level in the schema and a maximum nesting depth of 5.

    • Un elemento con 201 propiedades en el nivel superior no cumple esta restricción y, por lo tanto, no se representará en el almacén analítico.An item with 201 properties at the top level doesn’t satisfy this constraint and hence it will not be represented in the analytical store.

    • Un elemento con más de cinco niveles anidados en el esquema tampoco cumple esta restricción, por lo que tampoco se representaría en el almacén analítico.An item with more than five nested levels in the schema also doesn’t satisfy this constraint and hence it will not be represented in the analytical store. Por ejemplo, el elemento siguiente no cumple el requisito:For example, the following item doesn't satisfy the requirement:

      {"level1": {"level2":{"level3":{"level4":{"level5":{"too many":12}}}}}}

  • Los nombres de propiedad deben ser únicos al compararlos sin distinción de mayúsculas y minúsculas.Property names should be unique when compared case insensitively. Por ejemplo, los elementos siguientes no cumplen esta restricción y, por lo tanto, no se representarán en el almacén analítico:For example, the following items do not satisfy this constraint and hence will not be represented in the analytical store:

    {"Name": "fred"} {"name": "john"}: "Name" y "name" son iguales al compararlos sin hacer distinción de mayúsculas y minúsculas.{"Name": "fred"} {"name": "john"} – "Name" and "name" are the same when compared in a case insensitive manner.

Representación del esquemaSchema representation

En el almacén analítico hay dos maneras de representar el esquema.There are two modes of schema representation in the analytical store. Estos modos presentan ventajas e inconvenientes en relación con la simplicidad de la representación en columnas, el control de los esquemas polimórficos y la simplicidad de la experiencia de consulta:These modes have tradeoffs between the simplicity of a columnar representation, handling the polymorphic schemas, and simplicity of query experience:

  • Representación de esquemas bien definidaWell-defined schema representation
  • Representación de esquemas con fidelidad totalFull fidelity schema representation

Nota

En el caso de las cuentas de SQL (Core) API, cuando se habilita el almacén analítico, la representación de esquemas predeterminada en él es la representación bien definida.For SQL (Core) API accounts, when analytical store is enabled, the default schema representation in the analytical store is well-defined. Mientras que para las cuentas de Azure Cosmos DB API para MongoDB, la representación de esquemas predeterminada en el almacén analítico es la representación con fidelidad total.Whereas for Azure Cosmos DB API for MongoDB accounts, the default schema representation in the analytical store is a full fidelity schema representation. Si tiene escenarios que requieran una representación de esquemas diferente de la predeterminada para cada una de estas API, póngase en contacto con el equipo de Azure Cosmos DB para habilitarla.If you have scenarios requiring a different schema representation than the default offering for each of these APIs, reach out to the Azure Cosmos DB team to enable it.

Representación de esquemas bien definidaWell-defined schema representation

La representación de esquemas bien definida crea una representación tabular simple de los datos independientes del esquema en el almacén transaccional.The well-defined schema representation creates a simple tabular representation of the schema-agnostic data in the transactional store. La representación de esquemas bien definida tiene las siguientes características:The well-defined schema representation has the following considerations:

  • Las propiedades siempre tienen el mismo tipo en los distintos elementos.A property always has the same type across multiple items.

    • Por ejemplo, {"a":123} {"a": "str"} no tiene un esquema bien definido porque "a" a veces es una cadena y, a veces, un número.For example, {"a":123} {"a": "str"} does not have a well-defined schema because "a" is sometimes a string and sometimes a number. En este caso, el almacén analítico registra el tipo de datos de “a” como tipo de datos de “a” en el primer elemento durante la vigencia del contenedor.In this case, the analytical store registers the data type of “a” as the data type of “a” in the first-occurring item in the lifetime of the container. Los elementos en los que el tipo de datos de “a” difiere no se incluirán en el almacén analítico.Items where the data type of “a” differs will not be included in the analytical store.

      Esta condición no se aplica a las propiedades NULL.This condition does not apply for null properties. Por ejemplo, {"a":123} {"a":null} sigue estando bien definida.For example, {"a":123} {"a":null} is still well defined.

  • Los tipos de las matrices deben contener un único tipo repetido.Array types must contain a single repeated type.

    • Por ejemplo, {"a": ["str",12]} no es un esquema bien definido, porque la matriz contiene una mezcla de tipos enteros y de cadenas.For example, {"a": ["str",12]} is not a well-defined schema because the array contains a mix of integer and string types.

Nota

Si el almacén analítico de Azure Cosmos DB sigue la representación de esquemas bien definida y no se cumplen las especificaciones anteriores en determinados elementos, estos no se incluirán en el almacén analítico.If the Azure Cosmos DB analytical store follows the well-defined schema representation and the specification above is violated by certain items, those items will not be included in the analytical store.

Representación de esquemas con fidelidad totalFull fidelity schema representation

La representación de esquemas con fidelidad total está diseñada para administrar todos los esquemas polimórficos de los datos operativos independientes del esquema.The full fidelity schema representation is designed to handle the full breadth of polymorphic schemas in the schema-agnostic operational data. En esta representación de esquemas no se quita ningún elemento del almacén analítico aunque no se cumplan las restricciones de los esquemas bien definidos (es decir, que no haya campos ni matrices de tipos de datos mixtos).In this schema representation, no items are dropped from the analytical store even if the well-defined schema constraints (that is no mixed data type fields nor mixed data type arrays) are violated.

Para ello, se traducen las propiedades de hoja de los datos operativos del almacén analítico con columnas distintas según el tipo de datos de los valores de la propiedad.This is achieved by translating the leaf properties of the operational data into the analytical store with distinct columns based on the data type of values in the property. Los nombres de las propiedades de hoja se amplían con tipos de datos como sufijos en el esquema del almacén analítico, de modo que se pueden consultar sin ambigüedad.The leaf property names are extended with data types as a suffix in the analytical store schema such that they can be queries without ambiguity.

Por ejemplo, vamos a tomar el siguiente documento de ejemplo del almacén transaccional:For example, let’s take the following sample document in the transactional store:

{
name: "John Doe",
age: 32,
profession: "Doctor",
address: {
  streetNo: 15850,
  streetName: "NE 40th St.",
  zip: 98052
},
salary: 1000000
}

La propiedad de hoja streetNo del objeto anidado address se representará en el esquema del almacén analítico como columna address.object.streetNo.int32.The leaf property streetNo within the nested object address will be represented in the analytical store schema as a column address.object.streetNo.int32. El tipo de datos se agrega como sufijo a la columna.The datatype is added as a suffix to the column. De este modo, si se agrega otro documento al almacén transaccional donde el valor de la propiedad de hoja streetNo sea "123" (una cadena), el esquema del almacén analítico evoluciona automáticamente sin modificar el tipo de la columna escrita previamente.This way, if another document is added to the transactional store where the value of leaf property streetNo is "123" (note it’s a string), the schema of the analytical store automatically evolves without altering the type of a previously written column. Se agrega una columna nueva al almacén analítico, address.object.streetNo.string, donde se almacena este valor "123".A new column added to the analytical store as address.object.streetNo.string where this value of "123" is stored.

Asignación de un tipo de datos a un sufijoData type to suffix map

Esta es la asignación de los tipos de datos de propiedad y sus representaciones de sufijos en el almacén analítico:Here is a map of all the property data types and their suffix representations in the analytical store:

Tipo de datos originalOriginal data type SufijoSuffix EjemploExample
DobleDouble ".float64"".float64" 24.9924.99
ArrayArray ".array"".array" ["a", "b"]["a", "b"]
BinaryBinary ".binary"".binary" 00
BooleanBoolean ".bool"".bool" VerdaderoTrue
Int32Int32 ".int32"".int32" 123123
Int64Int64 ".int64"".int64" 255486129307255486129307
NullNull ".null"".null" nullnull
StringString ".string"".string" "ABC""ABC"
TimestampTimestamp ".timestamp"".timestamp" Timestamp(0, 0)Timestamp(0, 0)
DateTimeDateTime ".date"".date" ISODate("2020-08-21T07:43:07.375Z")ISODate("2020-08-21T07:43:07.375Z")
ObjectIdObjectId ".objectId"".objectId" ObjectId("5f3f7b59330ec25c132623a2")ObjectId("5f3f7b59330ec25c132623a2")
DocumentoDocument ".object"".object" {"a": "a"}{"a": "a"}

Archivado rentable de datos históricosCost-effective archival of historical data

La organización en capas de datos hace referencia a la separación de los datos entre las infraestructuras de almacenamiento optimizadas para los distintos escenarios.Data tiering refers to the separation of data between storage infrastructures optimized for different scenarios. Con lo que se mejora el rendimiento general y la rentabilidad de la pila de datos de un extremo a otro.Thereby improving the overall performance and cost-effectiveness of the end-to-end data stack. Con el almacén analítico, Azure Cosmos DB ahora admite la organización automática en capas de datos desde el almacén transaccional hacia el almacén analítico con diferentes diseños de datos.With analytical store, Azure Cosmos DB now supports automatic tiering of data from the transactional store to analytical store with different data layouts. Con el almacén analítico optimizado en cuanto al costo de almacenamiento en comparación con el almacén transaccional, usted puede conservar un horizonte mucho más largo de datos operativos para el análisis histórico.With analytical store optimized in terms of storage cost compared to the transactional store, allows you to retain much longer horizons of operational data for historical analysis.

Una vez que el almacén analítico esté habilitado, en función de las necesidades de retención de datos de las cargas de trabajo transaccionales, puede configurar la propiedad "Período de vida del almacén transaccional (TTL transaccional)" para que los registros se eliminen automáticamente del almacén transaccional después de un período de tiempo determinado.After the analytical store is enabled, based on the data retention needs of the transactional workloads, you can configure the 'Transactional Store Time to Live (Transactional TTL)' property to have records automatically deleted from the transactional store after a certain time period. Del mismo modo, el "Período de vida del almacén analítico (TTL analítico)" le permite administrar el ciclo de vida de los datos retenidos en el almacén analítico de manera independiente del almacén transaccional.Similarly, the 'Analytical Store Time To Live (Analytical TTL)' allows you to manage the lifecycle of data retained in the analytical store independent from the transactional store. Al habilitar el almacén analítico y configurar las propiedades TTL, puede establecer un nivel y definir sin problemas el período de retención de los datos para los dos almacenes.By enabling analytical store and configuring TTL properties, you can seamlessly tier and define the data retention period for the two stores.

Distribución globalGlobal Distribution

Si tiene una cuenta de Azure Cosmos DB distribuida globalmente, después de habilitar el almacén analítico para un contenedor, estará disponible en todas las regiones de dicha cuenta.If you have a globally distributed Azure Cosmos DB account, after you enable analytical store for a container, it will be available in all regions of that account. Los cambios en los datos operativos se replican globalmente en todas las regiones.Any changes to operational data are globally replicated in all regions. Puede ejecutar consultas analíticas de forma eficaz en la copia regional más cercana de los datos en Azure Cosmos DB.You can run analytical queries effectively against the nearest regional copy of your data in Azure Cosmos DB.

SeguridadSecurity

La autenticación con el almacén analítico es igual que en un almacén transaccional para una base de datos determinada.Authentication with the analytical store is the same as the transactional store for a given database. Puede usar claves principales o de solo lectura para la autenticación.You can use primary or read-only keys for authentication. Puede aprovechar el servicio vinculado en Synapse Studio para evitar pegar las claves de Azure Cosmos DB en los cuadernos de Spark.You can leverage linked service in Synapse Studio to prevent pasting the Azure Cosmos DB keys in the Spark notebooks. El acceso a este servicio vinculado está disponible para todos los usuarios que tengan acceso al área de trabajo.Access to this Linked Service is available to anyone who has access into the workspace.

Compatibilidad con varios runtimes de Azure Synapse AnalyticsSupport for multiple Azure Synapse Analytics runtimes

El almacén analítico está optimizado para proporcionar escalabilidad, elasticidad y rendimiento para las cargas de trabajo analíticas sin depender de los runtimes de proceso.The analytical store is optimized to provide scalability, elasticity, and performance for analytical workloads without any dependency on the compute run-times. La tecnología de almacenamiento se administra automáticamente para optimizar las cargas de trabajo analíticas sin esfuerzo manual.The storage technology is self-managed to optimize your analytics workloads without manual efforts.

Al desacoplar el sistema de almacenamiento analítico del sistema de proceso analítico, los datos en el almacén analítico de Azure Cosmos DB se pueden consultar simultáneamente desde los distintos runtimes analíticos admitidos por Azure Synapse Analytics.By decoupling the analytical storage system from the analytical compute system, data in Azure Cosmos DB analytical store can be queried simultaneously from the different analytics runtimes supported by Azure Synapse Analytics. En la actualidad, Azure Synapse Analytics admite Apache Spark y el grupo de SQL sin servidor con el almacén analítico de Azure Cosmos DB.As of today, Azure Synapse Analytics supports Apache Spark and serverless SQL pool with Azure Cosmos DB analytical store.

Nota

Solo puede leer desde el almacén analítico mediante el tiempo de ejecución de Azure Synapse Analytics.You can only read from analytical store using Azure Synapse Analytics run time. Puede volver a escribir los datos en el almacén transaccional como capa de servicio.You can write the data back to your transactional store as a serving layer.

PreciosPricing

El almacén analítico sigue un modelo de precios basado en el consumo, donde se le cobra del modo siguiente:Analytical store follows a consumption-based pricing model where you are charged for:

  • Almacenamiento: El volumen de los datos retenidos en el almacén analítico cada mes, incluidos los datos históricos, tal como se define en el TTL analítico.Storage: the volume of the data retained in the analytical store every month including historical data as defined by Analytical TTL.

  • Operaciones de escritura analíticas: Sincronización totalmente administrada de las actualizaciones de datos operativos en el almacén analítico desde el almacén transaccional (sincronización automática).Analytical write operations: the fully managed synchronization of operational data updates to the analytical store from the transactional store (auto-sync)

  • Operaciones de lectura analíticas: operaciones de lectura realizadas en el almacén analítico desde los tiempos de ejecución del grupo de SQL sin servidor y el grupo de Spark de Azure Synapse Analytics.Analytical read operations: the read operations performed against the analytical store from Azure Synapse Analytics Spark pool and serverless SQL pool run times.

Los precios del almacén analítico son independientes del modelo de precios del almacén transaccional.Analytical store pricing is separate from the transaction store pricing model. No hay ningún concepto de RU aprovisionadas en el almacén analítico.There is no concept of provisioned RUs in the analytical store. Consulte la página de precios de Azure Cosmos DB para obtener información completa sobre el modelo de precios del almacén analítico.See Azure Cosmos DB pricing page, for full details on the pricing model for analytical store.

Para obtener una estimación general del costo de habilitación del almacén analítico en un contenedor de Azure Cosmos DB, puede usar el planificador de capacidad de Azure Cosmos DB y obtener una estimación de los costos de almacenamiento analítico y de las operaciones de escritura.In order to get a high-level cost estimate to enable analytical store on an Azure Cosmos DB container, you can use the Azure Cosmos DB Capacity planner and get an estimate of your analytical storage and write operations costs. Los costos de las operaciones de lectura analíticas dependen de las características de la carga de trabajo analítica, pero como estimación general, el análisis de 1 TB de datos en el almacén analítico suele generar 130 000 operaciones de lectura analíticas, con un costo de 0,065 USD.Analytical read operations costs depends on the analytics workload characteristics but as a high-level estimate, scan of 1 TB of data in analytical store typically results in 130,000 analytical read operations, and results in a cost of $0.065.

Período de vida (TTL) analíticoAnalytical Time-to-Live (TTL)

El TTL analítico indica cuánto tiempo deben conservarse los datos en el almacén analítico para un contenedor dado.Analytical TTL indicates how long data should be retained in your analytical store, for a container.

Si el almacén analítico está habilitado, las inserciones, actualizaciones y eliminaciones de datos operativos se sincronizan automáticamente desde el almacén transaccional hacia el almacén analítico, independientemente de la configuración de TTL transaccional.If analytical store is enabled, inserts, updates, deletes to operational data are automatically synced from transactional store to analytical store, irrespective of the transactional TTL configuration. La retención de estos datos operativos en el almacén analítico puede controlarse mediante el valor de TTL analítico en el nivel de contenedor, tal como se especifica a continuación:The retention of this operational data in the analytical store can be controlled by the Analytical TTL value at the container level, as specified below:

El TTL analítico en un contenedor se establece mediante la propiedad AnalyticalStoreTimeToLiveInSeconds:Analytical TTL on a container is set using the AnalyticalStoreTimeToLiveInSeconds property:

  • Si el valor se establece en "0", falta (o se establece en NULL): el almacén analítico se deshabilita y no se replica ningún dato del almacén transaccional al almacén analítico.If the value is set to "0", missing (or set to null): the analytical store is disabled and no data is replicated from transactional store to analytical store

  • Si está presente y el valor se establece en "-1": el almacén analítico conserva todos los datos históricos, independientemente de la retención de los datos en el almacén transaccional.If present and the value is set to "-1": the analytical store retains all historical data, irrespective of the retention of the data in the transactional store. Este valor indica que el almacén analítico tiene una retención infinita de los datos operativos.This setting indicates that the analytical store has infinite retention of your operational data

  • Si está presente y el valor se establece en algún número positivo "n": los elementos expirarán del almacén analítico "n" segundos después de la hora de la última modificación en el almacén transaccional.If present and the value is set to some positive number "n": items will expire from the analytical store "n" seconds after their last modified time in the transactional store. Este valor se puede aprovechar si desea conservar los datos operativos durante un período de tiempo limitado en el almacén analítico, independientemente de la retención de los datos en el almacén transaccional.This setting can be leveraged if you want to retain your operational data for a limited period of time in the analytical store, irrespective of the retention of the data in the transactional store

Algunos puntos que se deben tener en cuenta:Some points to consider:

  • Después de habilitar el almacén analítico con un valor de TTL analítico, puede actualizarse a un valor válido diferente más tarde.After the analytical store is enabled with an analytical TTL value, it can be updated to a different valid value later.
  • Aunque el TTL transaccional se puede establecer a nivel de contenedor o de elemento, actualmente el TTL analítico solo se puede establecer a nivel de contenedor.While transactional TTL can be set at the container or item level, analytical TTL can only be set at the container level currently.
  • Puede lograr una retención más prolongada de los datos operativos en el almacén analítico si establece un TTL analítico >= TTL transaccional a nivel de contenedor.You can achieve longer retention of your operational data in the analytical store by setting analytical TTL >= transactional TTL at the container level.
  • Se puede hacer que el almacén analítico refleje el almacén transaccional si se establece lo siguiente: TTL analítico = TTL transaccional.The analytical store can be made to mirror the transactional store by setting analytical TTL = transactional TTL.

Al habilitar el almacén analítico en un contenedor:When you enable analytical store on a container:

  • En Azure Portal, la opción de análisis de TTL se establece en el valor predeterminado de -1.From the Azure portal, the analytical TTL option is set to the default value of -1. Puede cambiar este valor a "n" segundos; para ello, vaya a la configuración del contenedor en el Explorador de datos.You can change this value to 'n' seconds, by navigating to container settings under Data Explorer.

  • En el SDK, PowerShell o la CLI de Azure se puede habilitar la opción de análisis de TTL; para ello, establézcala en -1 o en "n".From the Azure SDK or PowerShell or CLI, the analytical TTL option can be enabled by setting it to either -1 or 'n'.

Para obtener más información, consulte Configuración del TTL analítico en un contenedor.To learn more, see how to configure analytical TTL on a container.

Pasos siguientesNext steps

Para obtener más información, consulte la siguiente documentación:To learn more, see the following docs: