Configuración y uso de Azure Synapse Link para Azure Cosmos DB (versión preliminar)

SE APLICA A: NoSQL MongoDB Gremlin

Azure Synapse Link para Azure Cosmos DB es una funcionalidad de procesamiento analítico y transaccional híbrido (HTAP) nativo de nube que permite ejecutar análisis casi en tiempo real de datos operativos en Azure Cosmos DB. Synapse Link crea una integración perfecta y sin contratiempos entre Azure Cosmos DB y Azure Synapse Analytics.

Azure Synapse Link está disponible para cuentas de API de SQL de Azure Cosmos DB o de API de Azure Cosmos DB para Mongo DB. Y está en versión preliminar para Gremlin API, con activación mediante comandos de la CLI. Siga estos pasos para ejecutar consultas analíticas con Azure Synapse Link para Azure Cosmos DB:

También puede consultar el módulo de formación sobre cómo configurar Azure Synapse Link para Azure Cosmos DB.

El primer paso para usar Synapse Link es habilitarlo para su cuenta de base de datos de Azure Cosmos DB.

Nota:

Si quiere usar claves administradas por el cliente con Azure Synapse Link, debe configurar la identidad administrada de la cuenta en la directiva de acceso de Azure Key Vault antes de habilitar Synapse Link en la cuenta. Para más información, consulte el artículo Configuración de claves administradas por el cliente para una cuenta de Azure Cosmos con Azure Key Vault.

Nota:

Si desea usar el esquema de fidelidad completa para las cuentas de API para NoSQL, no puede usar Azure Portal para habilitar Synapse Link. Esta opción no se puede cambiar después de habilitar Synapse Link en su cuenta y, para establecerla, debe usar la CLI de Azure o PowerShell. Para obtener más información, consulte la documentación de representación del esquema del almacén analítico.

Nota

Necesita el rol Colaborador para habilitar Synapse Link en el nivel de cuenta. Y necesita al menos el rol Operador para habilitar Synapse Link en los contenedores o recopilaciones.

Azure portal

  1. Inicie sesión en Azure Portal.

  2. Cree una cuenta de Azure, o bien seleccione una cuenta de Azure Cosmos DB ya existente.

  3. Vaya a la cuenta de Azure Cosmos DB y abra Azure Synapse Link dentro de Integraciones en el panel de la izquierda.

  4. Seleccione Habilitar. Este proceso puede tardar de 1 a 5 minutos en completarse.

    Screenshot showing how to enable Synapse Link feature.

  5. Ahora su cuenta está habilitada para usar Synapse Link. A continuación, consulte cómo crear contenedores habilitados para el almacén analítico para iniciar de forma automática la replicación de sus datos operativos desde el almacén transaccional hacia el almacén analítico.

Nota:

La activación de Synapse Link no activa automáticamente el almacén analítico. Una vez que habilite Synapse Link en la cuenta de Cosmos DB, habilite el almacén analítico en contenedores para empezar a usar Synapse Link.

Nota

También puede habilitar Synapse Link para su cuenta con Power BI y el panel de Synapse Link, en la sección Integraciones del menú de navegación izquierdo.

Herramientas de línea de comandos

Habilite Synapse Link en su cuenta de API de Azure Cosmos DB for NoSQL o MongoDB con la CLI de Azure o PowerShell.

Azure CLI

Use --enable-analytical-storage true para operaciones de creación o actualización. También debe elegir el tipo de esquema de representación. Para las cuentas que usan la API para bases de datos NoSQL, puede usar --analytical-storage-schema-type con los valores FullFidelity o WellDefined. Para las cuentas de API para MongoDB, use siempre --analytical-storage-schema-type FullFidelity.

Synapse Link para la API de Gremlin ya está en versión preliminar. Puede habilitar Synapse Link en grafos nuevos o que ya existían con la CLI de Azure. Use el siguiente comando de la CLI para habilitar Synapse Link para la cuenta de la API de Gremlin:

az cosmosdb create --capabilities EnableGremlin --name MyCosmosDBGremlinDatabaseAccount --resource-group MyResourceGroup --enable-analytical-storage true

En el caso de las cuentas de la API de Gremlin actuales, reemplace create por update.

PowerShell

Use EnableAnalyticalStorage true para operaciones de creación o actualización. También debe elegir el tipo de esquema de representación. Para las cuentas que usan la API para bases de datos NoSQL, puede usar --analytical-storage-schema-type con los valores FullFidelity o WellDefined. Para las cuentas de API para MongoDB, use siempre -AnalyticalStorageSchemaType FullFidelity.

Plantilla del Administrador de recursos de Azure

Esta plantilla de Azure Resource Manager crea una cuenta de Azure Cosmos DB habilitada para Synapse Link para la API de SQL. Esta plantilla crea una cuenta de Core (SQL) API en una región con un contenedor configurado con TTL analítico habilitado y una opción para usar la capacidad de proceso manual o de escalado automático. Para implementar esta plantilla, haga clic en Implementar en Azure en la página Léame.

Habilitación de Azure Synapse Link para contenedores

El segundo paso es habilitar Synapse Link para los contenedores o las colecciones. Esto se logra estableciendo la propiedad analytical TTL en -1 para la retención infinita, o en un entero positivo, es decir, el número de segundos que desea mantener los datos en el almacén analítico. Este valor se puede cambiar más adelante. Para más información, consulte el artículo Valores admitidos de TTL analítico.

Tenga en cuenta los siguientes detalles al habilitar Azure Synapse Link en los contenedores de API de SQL que ya existen:

  • El mismo aislamiento de rendimiento del proceso de sincronización automática del almacén analítico se aplica a la sincronización inicial, y no hay ningún impacto en el rendimiento en la carga de trabajo de OLTP.
  • La sincronización inicial de un contenedor con el tiempo total del almacén analítico varía en función del volumen de datos y de la complejidad de los documentos. Este proceso puede tardar desde unos segundos hasta varios días. Use Azure Portal para supervisar el progreso de la migración.
  • El rendimiento del contenedor, o la cuenta de base de datos, también influye en el tiempo total de sincronización inicial. Aunque las RU/s no se usan en esta migración, el total de RU/s disponibles influye en el rendimiento del proceso. Puede aumentar temporalmente las RU disponibles del entorno para acelerar el proceso.
  • No va a poder consultar el almacén analítico de un contenedor existente mientras Synapse Link se está habilitando en ese contenedor. La carga de trabajo de OLTP no se ve afectada, y puede seguir leyendo los datos con normalidad. Los datos ingeridos después del inicio de la sincronización inicial se combinan en el almacén analítico mediante el proceso de sincronización automática normal del almacén analítico.

Nota:

Ahora puede habilitar Synapse Link en las colecciones de API de MongoDB existentes mediante la CLI de Azure o PowerShell.

Azure portal

Nuevo contenedor

  1. Inicie sesión en Azure Portal o en el Explorador de Azure Cosmos DB.

  2. Vaya a la cuenta de Azure Cosmos DB y abra la pestaña Explorador de datos.

  3. Seleccione Nuevo contenedor y escriba un nombre para la base de datos, el contenedor, la clave de partición y los detalles de capacidad de proceso. Active la opción Analytical store (Almacén analítico). Después de habilitar el almacén analítico, se crea un contenedor con la propiedad analytical TTL establecida en el valor predeterminado de -1 (retención de datos infinita). Este almacén analítico conserva todas las versiones históricas de registros y se puede modificar más adelante.

    Turn on analytical store for Azure Cosmos DB container

  4. Si no ha habilitado Synapse Link anteriormente en esta cuenta, se le pedirá que lo haga, ya que se trata de un requisito previo para crear un contenedor habilitado para almacén analítico. Si se le solicita, seleccione Enable Synapse Link (Habilitar Synapse Link). Este proceso puede tardar de 1 a 5 minutos en completarse.

  5. Seleccione Aceptar para crear un contenedor de Azure Cosmos DB habilitado para el almacén analítico.

  6. Una vez creado el contenedor, compruebe que se ha habilitado el almacén analítico; para ello, haga clic en Configuración, justo debajo de Documentos en Data Explorer y compruebe si está activada la opción Período de vida del almacén analítico.

Contenedor existente

  1. Inicie sesión en Azure Portal o en el Explorador de Azure Cosmos DB.

  2. Vaya a la cuenta de Azure Cosmos DB y abra la pestaña Azure Synapse Link.

  3. Seleccione el contenedor en la sección Habilitar Azure Synapse Link para los contenedores.

    Screenshot showing how to turn on analytical store for an Azure Cosmos DB existing container.

  4. Una vez habilitado el contenedor, compruebe que se ha habilitado el almacén analítico; para ello, haga clic en Configuración, justo debajo de Documentos en Data Explorer y compruebe si está activada la opción Período de vida del almacén analítico.

Nota

También puede habilitar Synapse Link para su cuenta con Power BI y el panel de Synapse Link, en la sección Integraciones del menú de navegación izquierdo.

Herramientas de línea de comandos

Azure CLI

Las siguientes opciones habilitan Synapse Link en un contenedor con la CLI de Azure estableciendo la propiedad --analytical-storage-ttl.

Synapse Link para la API de Gremlin ya está en versión preliminar. Puede habilitar Synapse Link en grafos nuevos o ya creados con la CLI de Azure. Use el siguiente comando de la CLI para habilitar Synapse Link para los grafos de la API de Gremlin:

az cosmosdb gremlin graph create --g MyResourceGroup --a MyCosmosDBGremlinDatabaseAccount --d MyGremlinDB --n MyGraph --analytical-storage-ttl –1

Para los grafos actuales, reemplace create por update.

PowerShell

Las siguientes opciones habilitan Synapse Link en un contenedor con la CLI de Azure estableciendo la propiedad -AnalyticalStorageTtl.

SDK de Azure Cosmos DB: solo API de SQL

.NET SDK

El siguiente código de .NET crea un contenedor habilitado para Synapse Link estableciendo la propiedad AnalyticalStoreTimeToLiveInSeconds. Para actualizar un contenedor, use el método Container.ReplaceContainerAsync.

// Create a container with a partition key, and analytical TTL configured to -1 (infinite retention)
ContainerProperties properties = new ContainerProperties()
{
    Id = "myContainerId",
    PartitionKeyPath = "/id",
    AnalyticalStoreTimeToLiveInSeconds = -1,
};
CosmosClient cosmosClient = new CosmosClient("myConnectionString");
await cosmosClient.GetDatabase("myDatabase").CreateContainerAsync(properties);

SDK de Java V4

El siguiente código de Java crea un contenedor habilitado para Synapse Link estableciendo la propiedad setAnalyticalStoreTimeToLiveInSeconds. Para actualizar un contenedor, use la clase container.replace.

// Create a container with a partition key and  analytical TTL configured to  -1 (infinite retention) 
CosmosContainerProperties containerProperties = new CosmosContainerProperties("myContainer", "/myPartitionKey");

containerProperties.setAnalyticalStoreTimeToLiveInSeconds(-1);

container = database.createContainerIfNotExists(containerProperties, 400).block().getContainer();

SDK para Python v4

El siguiente código Python crea un contenedor habilitado para Synapse Link estableciendo la propiedad analytical_storage_ttl. Para actualizar un contenedor, use el método replace_container.

# Client
client = cosmos_client.CosmosClient(HOST,  KEY )

# Database client
try:
    db = client.create_database(DATABASE)

except exceptions.CosmosResourceExistsError:
    db = client.get_database_client(DATABASE)

# Creating the container with analytical store enabled
try:
    container = db.create_container(
        id=CONTAINER,
        partition_key=PartitionKey(path='/id', kind='Hash'),analytical_storage_ttl=-1
    )
    properties = container.read()
    print('Container with id \'{0}\' created'.format(container.id))
    print('Partition Key - \'{0}\''.format(properties['partitionKey']))

except exceptions.CosmosResourceExistsError:
    print('A container with already exists')

Conexión a un área de trabajo de Synapse

Siga las instrucciones del artículo Conexión a Azure Synapse Link sobre cómo acceder a una base de datos de Azure Cosmos DB desde Azure Synapse Analytics Studio con Azure Synapse Link.

Consulta del almacén analítico con Azure Synapse Analytics

Consulta del almacén analítico mediante Apache Spark para Azure Synapse Analytics

Siga las instrucciones que se indican en el artículo Consulta del almacén analítico de Azure Cosmos DB mediante Spark 3 para obtener información sobre cómo realizar consultas con Spark 3 en Synapse. En este artículo se ofrecen algunos ejemplos sobre cómo puede interactuar con el almacén analítico desde los gestos de Synapse. Dichos gestos se muestran cuando se hace clic con el botón secundario en un contenedor. Con ellos, puede generar código rápidamente y adaptarlo a sus necesidades. También son ideales para detectar datos con un solo clic.

Para la integración de Spark 2, use la instrucción del artículo Consulta del almacén analítico de Azure Cosmos DB mediante Spark 2.

Consultar el almacén analítico mediante un grupo de SQL sin servidor en Azure Synapse Analytics

El grupo de SQL sin servidor permite consultar y analizar los datos de los contenedores de Azure Cosmos DB que están habilitados con Azure Synapse Link. Se pueden analizar los datos casi en tiempo real sin que afecte al rendimiento de las cargas de trabajo transaccionales. Ofrece una sintaxis T-SQL familiar para consultar los datos del almacén analítico y la conectividad integrada en una amplia gama de herramientas de consulta ad hoc y de BI a través de la interfaz de T-SQL. Para obtener más información, vea el artículo Consulta del almacén analítico mediante un grupo de SQL sin servidor.

Uso de un grupo de SQL sin servidor para analizar datos en Power BI y visualizarlos

Puede usar la experiencia de BI integrada en el portal de Azure Cosmos DB para crear paneles de BI mediante Synapse Link con solo unos clics. Para más información, consulte cómo crear paneles de BI mediante Synapse Link. Esta experiencia integrada creará vistas de T-SQL sencillas en grupos de SQL sin servidor de Synapse para los contenedores de Azure Cosmos DB. Puede crear paneles de BI sobre estas vistas, que consultarán los contenedores de Azure Cosmos DB en tiempo real, mediante DirectQuery, lo que refleja los cambios más recientes en los datos. No hay ningún impacto en el rendimiento ni en el costo de las cargas de trabajo transaccionales y tampoco existe ninguna complejidad en la administración de canalizaciones de ETL.

Si quiere usar vistas avanzadas de T-SQL con combinaciones en los contenedores o crear paneles de Power BI en modo de importación, vea Uso del grupo de SQL sin servidor para analizar los datos de Azure Cosmos DB con Synapse Link.

Mejora del rendimiento con procedimientos recomendados

Creación de particiones personalizadas

La creación de particiones personalizadas permite crear particiones de los datos del almacén analítico en campos que se usan normalmente como filtros en consultas analíticas, lo que mejora el rendimiento de las consultas. Para más información, vea los artículos de introducción a la creación de particiones personalizadas y sobre cómo configurar la creación de particiones personalizadas.

Use estos procedimientos recomendados obligatorios para las consultas sin servidor de SQL.

Puede encontrar ejemplos para empezar a trabajar con Azure Synapse Link en GitHub. Estos presentan soluciones de un extremo a otro con escenarios de IoT y de venta minorista. También puede encontrar ejemplos de Azure Cosmos DB for MongoDB en el mismo repositorio, en la carpeta MongoDB.

Pasos siguientes

Para obtener más información, consulte la siguiente documentación: