Configurar e utilizar o Azure Synapse Link para o Azure Cosmos DB

APLICA-SE A: NoSQL MongoDB Gremlin

O Azure Synapse Link for Azure Cosmos DB é um recurso de processamento analítico e transacional (HTAP) híbrido nativo da nuvem que permite executar análises quase em tempo real sobre dados operacionais no Azure Cosmos DB. O Synapse Link cria uma integração perfeita entre o Azure Cosmos DB e o Azure Synapse Analytics.

Importante

O espelhamento no Microsoft Fabric agora está disponível em visualização para a API NoSql. Esse recurso fornece todos os recursos do Azure Synapse Link com melhor desempenho analítico, capacidade de unificar seu patrimônio de dados com o Fabric OneLake e acesso aberto aos seus dados no OneLake com o formato Delta Parquet. Se você estiver considerando o Azure Synapse Link, recomendamos que tente espelhar para avaliar o ajuste geral para sua organização. Para começar a usar o espelhamento, clique aqui.

O Azure Synapse Link está disponível para a API SQL do Azure Cosmos DB ou para a API do Azure Cosmos DB para contas Mongo DB. E está em pré-visualização para Gremlin API, com ativação via comandos CLI. Use as seguintes etapas para executar consultas analíticas com o Azure Synapse Link for Azure Cosmos DB:

Você também pode verificar o módulo de treinamento sobre como configurar o Azure Synapse Link para o Azure Cosmos DB.

A primeira etapa para usar o Synapse Link é habilitá-lo para sua conta de banco de dados do Azure Cosmos DB.

Nota

Se quiser usar chaves gerenciadas pelo cliente com o Azure Synapse Link, você deve configurar a identidade gerenciada da sua conta na política de acesso do Cofre da Chave do Azure antes de habilitar o Synapse Link na sua conta. Para saber mais, consulte o artigo Como configurar chaves gerenciadas pelo cliente usando as identidades gerenciadas das contas do Azure Cosmos DB.

Nota

Se você quiser usar o Esquema de Fidelidade Total para API para contas NoSQL, não poderá usar o portal do Azure para habilitar o Synapse Link. Essa opção não pode ser alterada depois que o Synapse Link estiver habilitado em sua conta e, para defini-la, você deve usar a CLI do Azure ou o PowerShell. Para obter mais informações, consulte a documentação de representação do esquema de armazenamento analítico.

Nota

Você precisa da função de Colaborador para habilitar o Synapse Link no nível da conta. E você precisa de pelo menos Operador para ativar o Synapse Link em seus contêineres ou coleções.

Portal do Azure

  1. Inicie sessão no portal do Azure.

  2. Crie uma nova conta do Azure ou selecione uma conta do Azure Cosmos DB existente.

  3. Navegue até sua conta do Azure Cosmos DB e abra o Azure Synapse Link em Integrações no painel esquerdo.

  4. Selecione Ativar. Este processo pode demorar 1 a 5 minutos a concluir.

    Captura de tela mostrando como ativar o recurso Synapse Link.

  5. A conta está agora ativada para utilizar o Synapse Link. Em seguida, veja como criar contentores com capacidade de armazenamento analítico para começar a replicar automaticamente os dados operacionais do arquivo transacional para o arquivo analítico.

Nota

Ativar o Synapse Link não ativa automaticamente o arquivo analítico. Assim que ativar o Synapse Link na conta do Cosmos DB, ative o arquivo analítico em contentores para começar a utilizar o Synapse Link.

Nota

Você também pode habilitar o Synapse Link para sua conta usando o Power BI e o painel Synapse Link , na seção Integrações do menu de navegação esquerdo.

Ferramentas de Linha de Comandos

Ative o Synapse Link na API do Azure Cosmos DB para a conta NoSQL ou MongoDB com a CLI do Azure ou o PowerShell.

CLI do Azure

Use --enable-analytical-storage true para operações de criação ou atualização . Você também precisa escolher o tipo de esquema de representação. Para API para contas NoSQL, você pode usar --analytical-storage-schema-type com os valores FullFidelity ou WellDefined. Para contas da API para MongoDB, use --analytical-storage-schema-type FullFidelitysempre o .

Synapse Link for Gremlin API está agora em pré-visualização. Você pode habilitar o Synapse Link em seus gráficos novos ou existentes usando a CLI do Azure. Use o comando CLI abaixo para habilitar o Synapse Link para sua conta Gremlin API:

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

Para contas existentes da API Gremlin, substitua create por update.

PowerShell

Use EnableAnalyticalStorage true para operações de criação ou atualização . Você também precisa escolher o tipo de esquema de representação. Para API para contas NoSQL, você pode usar --analytical-storage-schema-type com os valores FullFidelity ou WellDefined. Para contas da API para MongoDB, use -AnalyticalStorageSchemaType FullFidelitysempre o .

Modelo Azure Resource Manager

Este modelo do Azure Resource Manager cria uma conta do Azure Cosmos DB habilitada para Synapse Link para API SQL. Este modelo cria uma conta de API Core (SQL) em uma região com um contêiner configurado com TTL analítico habilitado e uma opção para usar a taxa de transferência manual ou de dimensionamento automático. Para implantar esse modelo, clique em Implantar no Azure na página Leiame.

Habilitar o Azure Synapse Link para seus contêineres

O segundo passo é habilitar o Synapse Link para seus contêineres ou coleções. Isso é feito definindo a analytical TTL propriedade como -1 para retenção infinita, ou para um inteiro positivo, que é o número de segundos que você deseja manter no repositório analítico. Essa configuração pode ser alterada posteriormente. Para obter mais informações, consulte o artigo sobre valores suportados por TTL analítico.

Observe os seguintes detalhes ao habilitar o Azure Synapse Link em seus contêineres de API SQL existentes:

  • O mesmo isolamento de desempenho do processo de sincronização automática do repositório analítico se aplica à sincronização inicial e não há impacto no desempenho da carga de trabalho OLTP.
  • A sincronização inicial de um contêiner com o tempo total do repositório analítico variará dependendo do volume de dados e da complexidade dos documentos. Esse processo pode levar de alguns segundos a vários dias. Use o portal do Azure para monitorar o progresso da migração.
  • A taxa de transferência do seu contêiner, ou conta de banco de dados, também influencia o tempo total de sincronização inicial. Embora as RU/s não sejam usadas nessa migração, o total de RU/s disponíveis influencia o desempenho do processo. Você pode aumentar temporariamente as RUs disponíveis do seu ambiente para acelerar o processo.
  • Você não poderá consultar o armazenamento analítico de um contêiner existente enquanto o Synapse Link estiver sendo habilitado nesse contêiner. Sua carga de trabalho OLTP não é afetada e você pode continuar lendo dados normalmente. Os dados ingeridos após o início da sincronização inicial serão mesclados no repositório analítico pelo processo regular de sincronização automática do repositório analítico.

Nota

Agora você pode habilitar o Synapse Link em suas coleções de API do MongoDB existentes, usando a CLI do Azure ou o PowerShell.

Portal do Azure

Novo contentor

  1. Entre no portal do Azure ou no Azure Cosmos DB Explorer.

  2. Navegue até sua conta do Azure Cosmos DB e abra a guia Data Explorer .

  3. Selecione Novo Contêiner e insira um nome para seu banco de dados, contêiner, chave de partição e detalhes de taxa de transferência. Ative a opção Loja analítica . Depois de habilitar o repositório analítico, ele cria um contêiner com analytical TTL a propriedade definida como o valor padrão de -1 (retenção infinita). Este repositório analítico que retém todas as versões históricas dos registros e pode ser alterado posteriormente.

    Ativar o repositório analítico para o contêiner do Azure Cosmos DB

  4. Se você não tiver habilitado o Synapse Link anteriormente nessa conta, ele solicitará que você faça isso porque é um pré-requisito para criar um contêiner habilitado para armazenamento analítico. Se solicitado, selecione Ativar link sinapse. Este processo pode demorar 1 a 5 minutos a concluir.

  5. Selecione OK para criar um repositório analítico habilitado para o contêiner do Azure Cosmos DB.

  6. Depois que o contêiner for criado, verifique se o armazenamento analítico foi habilitado clicando em Configurações, logo abaixo de Documentos no Data Explorer, e verifique se a opção Tempo de Vida do Repositório Analítico está ativada.

Contentor existente

  1. Entre no portal do Azure ou no Azure Cosmos DB Explorer.

  2. Navegue até sua conta do Azure Cosmos DB e abra a guia Azure Synapse Link .

  3. Na seção Habilitar o Azure Synapse Link para seus contêineres, selecione o contêiner.

    Captura de tela mostrando como ativar o repositório analítico para um contêiner existente do Azure Cosmos DB.

  4. Após a ativação do contêiner, verifique se o armazenamento analítico foi habilitado clicando em Configurações, logo abaixo de Documentos no Data Explorer, e verifique se a opção Tempo de Vida do Repositório Analítico está ativada.

Nota

Você também pode habilitar o Synapse Link para sua conta usando o Power BI e o painel Synapse Link , na seção Integrações do menu de navegação esquerdo.

Ferramentas de Linha de Comandos

CLI do Azure

As opções a seguir habilitam o Synapse Link em um contêiner usando a CLI do Azure definindo a --analytical-storage-ttl propriedade.

Synapse Link for Gremlin API está agora em pré-visualização. Você pode habilitar o Synapse Link em seus gráficos novos ou existentes usando a CLI do Azure. Use o comando CLI abaixo para habilitar o Synapse Link para seus gráficos da API Gremlin:

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

Para gráficos existentes, substitua create por update.

PowerShell

As opções a seguir habilitam o Synapse Link em um contêiner usando a CLI do Azure definindo a -AnalyticalStorageTtl propriedade.

SDKs do Azure Cosmos DB - somente API SQL

SDK do .NET

O código .NET a seguir cria um contêiner habilitado para Synapse Link definindo a AnalyticalStoreTimeToLiveInSeconds propriedade. Para atualizar um contêiner existente, use o Container.ReplaceContainerAsync método.

CosmosClient cosmosClient = new CosmosClient(
    accountEndpoint: "<nosql-account-endpoint>",
    tokenCredential: new DefaultAzureCredential()
);
// 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,
};
await cosmosClient.GetDatabase("myDatabase").CreateContainerAsync(properties);

Java V4 SDK

O código Java a seguir cria um contêiner habilitado para Synapse Link definindo a setAnalyticalStoreTimeToLiveInSeconds propriedade. Para atualizar um contêiner existente, use a container.replace classe.

// 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();

Python V4 SDK

O código Python a seguir cria um contêiner habilitado para Synapse Link definindo a analytical_storage_ttl propriedade. Para atualizar um contêiner existente, use o replace_container método.

# 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')

Conectar-se a um espaço de trabalho do Synapse

Use as instruções em Connect to Azure Synapse Link sobre como acessar um banco de dados do Azure Cosmos DB do Azure Synapse Analytics Studio com o Azure Synapse Link.

Consultar repositório analítico usando o Azure Synapse Analytics

Repositório analítico de consulta usando o Apache Spark para Azure Synapse Analytics

Use as instruções no artigo Consultar o repositório analítico do Azure Cosmos DB usando o Spark 3 sobre como consultar com o Synapse Spark 3. Esse artigo dá alguns exemplos de como você pode interagir com o repositório analítico a partir dos gestos Sinapse. Esses gestos são visíveis quando você clica com o botão direito do mouse em um contêiner. Com gestos, você pode rapidamente gerar código e ajustá-lo às suas necessidades. Eles também são perfeitos para descobrir dados com um único clique.

Para integração do Spark 2, use as instruções no artigo Query Azure Cosmos DB analytical store using Spark 2 .

Consultar o repositório analítico usando o pool SQL sem servidor no Azure Synapse Analytics

O pool SQL sem servidor permite que você consulte e analise dados em seus contêineres do Azure Cosmos DB habilitados com o Azure Synapse Link. Você pode analisar dados quase em tempo real sem afetar o desempenho de suas cargas de trabalho transacionais. Ele oferece uma sintaxe T-SQL familiar para consultar dados do repositório analítico e conectividade integrada a uma ampla gama de ferramentas de consulta ad hoc e de BI por meio da interface T-SQL. Para saber mais, consulte o artigo Consultar repositório analítico usando pool SQL sem servidor.

Usar pool SQL sem servidor para analisar e visualizar dados no Power BI

Você pode usar a experiência de BI integrada no portal do Azure Cosmos DB para criar painéis de BI usando o Synapse Link com apenas alguns cliques. Para saber mais, veja como criar painéis de BI usando o Synapse Link. Essa experiência integrada criará exibições T-SQL simples em pools SQL sem servidor Synapse, para seus contêineres do Azure Cosmos DB. Você pode criar painéis de BI sobre essas exibições, que consultarão seus contêineres do Azure Cosmos DB em tempo real, usando o Direct Query, refletindo as alterações mais recentes em seus dados. Não há impacto no desempenho ou no custo de suas cargas de trabalho transacionais e não há complexidade no gerenciamento de pipelines de ETL.

Se você quiser usar exibições avançadas do T-SQL com junções em seus contêineres ou criar painéis do Power BI no modo de Importação, consulte Usar pool SQL sem servidor para analisar dados do Azure Cosmos DB com o Synapse Link.

Melhore o desempenho com práticas recomendadas

Particionamento personalizado

O particionamento personalizado permite particionar dados de armazenamento analítico em campos que são comumente usados como filtros em consultas analíticas, resultando em melhor desempenho de consulta. Para saber mais, consulte a introdução ao particionamento personalizado e como configurar artigos de particionamento personalizado.

Use essas práticas recomendadas obrigatórias para suas consultas sem servidor SQL.

Você pode encontrar exemplos para começar a usar o Azure Synapse Link no GitHub. Eles mostram soluções de ponta a ponta com cenários de IoT e varejo. Você também pode encontrar os exemplos correspondentes ao Azure Cosmos DB para MongoDB no mesmo repositório na pasta MongoDB .

Próximos passos

Para saber mais, consulte os seguintes documentos: