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:
- Habilitar o Azure Synapse Link para suas contas do Azure Cosmos DB
- Habilitar o Azure Synapse Link para seus contêineres
- Conectar seu banco de dados do Azure Cosmos DB a um espaço de trabalho do Azure Synapse
- Consultar repositório analítico usando o Azure Synapse Analytics
- Melhore o desempenho com as práticas recomendadas
- Usar o pool SQL sem servidor do Azure Synapse para analisar e visualizar dados no Power BI
Você também pode verificar o módulo de treinamento sobre como configurar o Azure Synapse Link para o Azure Cosmos DB.
Ativar o Azure Synapse Link para contas do 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
Inicie sessão no portal do Azure.
Crie uma nova conta do Azure ou selecione uma conta do Azure Cosmos DB existente.
Navegue até sua conta do Azure Cosmos DB e abra o Azure Synapse Link em Integrações no painel esquerdo.
Selecione Ativar. Este processo pode demorar 1 a 5 minutos a concluir.
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 FullFidelity
sempre o .
- Criar uma nova conta do Azure Cosmos DB com o Synapse Link habilitado
- Atualizar uma conta existente do Azure Cosmos DB para habilitar o Synapse Link
Use a CLI do Azure para habilitar o Synapse Link para a conta da API do Azure Synapse Link for Gremlin.
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 FullFidelity
sempre o .
- Criar uma nova conta do Azure Cosmos DB com o Synapse Link habilitado
- Atualizar uma conta existente do Azure Cosmos DB para habilitar o Synapse Link
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
Entre no portal do Azure ou no Azure Cosmos DB Explorer.
Navegue até sua conta do Azure Cosmos DB e abra a guia Data Explorer .
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.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.
Selecione OK para criar um repositório analítico habilitado para o contêiner do Azure Cosmos DB.
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
Entre no portal do Azure ou no Azure Cosmos DB Explorer.
Navegue até sua conta do Azure Cosmos DB e abra a guia Azure Synapse Link .
Na seção Habilitar o Azure Synapse Link para seus contêineres, selecione o contêiner.
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.
- Criar ou atualizar uma coleção MongoDB do Azure Cosmos DB
- Criar ou atualizar um contêiner da API SQL do Azure Cosmos DB
Usar a CLI do Azure para habilitar o Synapse Link for Azure Synapse Link for Gremlin API Graphs
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.
- Criar ou atualizar uma coleção MongoDB do Azure Cosmos DB
- Criar ou atualizar um contêiner da API SQL do Azure Cosmos DB
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.
Práticas recomendadas do Synapse SQL Serverless para o Azure Synapse Link for Cosmos DB
Use essas práticas recomendadas obrigatórias para suas consultas sem servidor SQL.
Introdução ao Azure Synapse Link - Exemplos
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:
- Verifique o módulo de treinamento sobre como configurar o Azure Synapse Link para o Azure Cosmos DB.
- Visão geral do repositório analítico do Azure Cosmos DB.
- Perguntas frequentes sobre o Synapse Link for Azure Cosmos DB.
- Apache Spark no Azure Synapse Analytics.
- Suporte ao tempo de execução do pool SQL sem servidor no Azure Synapse Analytics.