Início Rápido: Criar uma aplicação Cassandra com o SDK Python e o Azure Cosmos DB
APLICA-SE A: Cassandra
Neste início rápido, vai criar uma conta do Azure Cosmos DB para Apache Cassandra e utilizar uma aplicação Cassandra Python clonada a partir do GitHub para criar uma base de dados e um contentor do Cassandra. O Azure Cosmos DB é um serviço de base de dados com vários modelos que lhe permite criar e consultar rapidamente bases de dados de documentos, tabelas, chaves-valor e grafos com capacidades de distribuição global e dimensionamento horizontal.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma gratuitamente. Em alternativa, experimente o Azure Cosmos DB gratuitamente sem uma subscrição do Azure.
- Python 3.7 e superior.
- Git.
- Controlador Python para Apache Cassandra.
Criar uma conta de base de dados
Antes de poder criar uma base de dados de documentos, tem de criar uma conta do Cassandra com o Azure Cosmos DB.
No menu portal do Azure ou na Home page, selecione Criar um recurso.
Na página Novo , procure e selecione Azure Cosmos DB.
Na página Azure Cosmos DB , selecione Criar.
Na página API , selecione Criar na secção Cassandra .
A API determina o tipo de conta a criar. O Azure Cosmos DB fornece cinco APIs: NoSQL para bases de dados de documentos, Gremlin para bases de dados de gráficos, MongoDB para bases de dados de documentos, Tabela do Azure e Cassandra. Tem de criar uma conta separada para cada API.
Selecione Cassandra, porque neste início rápido está a criar uma tabela que funciona com a API para Cassandra.
Na página Criar Conta do Azure Cosmos DB , introduza as definições básicas para a nova conta do Azure Cosmos DB.
Definição Valor Descrição Subscrição A sua subscrição Selecione a subscrição do Azure que quer utilizar para esta conta do Azure Cosmos DB. Grupo de Recursos Criar novo
Em seguida, introduza o mesmo nome que Nome da ContaSelecione Criar novo. Em seguida, introduza um novo nome de grupo de recursos para a sua conta. Para simplificar, utilize o mesmo nome que o nome da sua conta do Azure Cosmos DB. Nome da Conta Introduza um nome exclusivo Introduza um nome exclusivo para identificar a sua conta do Azure Cosmos DB. O URI da conta será cassandra.cosmos.azure.com anexado ao nome exclusivo da sua conta.
O nome da conta só pode utilizar letras minúsculas, números e hífenes (-) e tem de ter entre 3 e 31 carateres de comprimento.Localização A região mais próxima dos seus utilizadores Selecione a localização geográfica para alojar a sua conta do Azure Cosmos DB. Utilize a localização mais próxima dos utilizadores para lhes dar o acesso mais rápido aos dados. Modo de capacidade Débito aprovisionado ou Sem servidor Selecione Débito aprovisionado para criar uma conta no modo de débito aprovisionado . Selecione Sem servidor para criar uma conta no modo sem servidor . Aplicar o desconto de escalão gratuito do Azure Cosmos DB Aplicar ou Não aplicar Com o escalão gratuito do Azure Cosmos DB, obterá as primeiras 1000 RU/s e 25 GB de armazenamento gratuitamente numa conta. Saiba mais sobre o escalão gratuito. Limitar débito total da conta Selecionar para limitar o débito da conta Isto é útil se quiser limitar o débito total da conta a um valor específico. Nota
Pode ter até uma conta do Azure Cosmos DB de escalão gratuito por subscrição do Azure e tem de optar ativamente por participar ao criar a conta. Se não vir a opção para aplicar o desconto de escalão gratuito, significa que já foi ativada outra conta na subscrição com o escalão gratuito.
No separador Distribuição Global , configure os seguintes detalhes. Pode deixar os valores predefinidos para efeitos deste início rápido:
Definição Valor Descrição Redundância Geográfica Desativar Ative ou desative a distribuição global na sua conta ao emparelhar a sua região com uma região de par. Pode adicionar mais regiões à sua conta mais tarde. Escritas de várias regiões Desativar A capacidade de escrita de várias regiões permite-lhe tirar partido do débito aprovisionado para as suas bases de dados e contentores em todo o mundo. Zonas de Disponibilidade Desativar Zonas de Disponibilidade são localizações isoladas numa região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, refrigeração e rede independentes. Nota
As seguintes opções não estão disponíveis se selecionar Sem servidor como modo de Capacidade:
- Aplicar Desconto de Escalão Gratuito
- Georredundância
- Escritas de várias regiões
Opcionalmente, pode configurar detalhes adicionais nos seguintes separadores:
- Rede – configure o acesso a partir de uma rede virtual.
- Política de Cópia de Segurança – configure uma política de cópia de segurança periódica ou contínua .
- Encriptação – utilize uma chave gerida pelo serviço ou uma chave gerida pelo cliente.
- Etiquetas – as etiquetas são pares nome/valor que lhe permitem categorizar recursos e ver a faturação consolidada ao aplicar a mesma etiqueta a vários recursos e grupos de recursos.
Selecione Rever + criar.
Reveja as definições da conta e, em seguida, selecione Criar. A criação da conta demora alguns minutos. Aguarde até que a página do portal apresente A implementação está concluída.
Selecione Ir para recurso para aceder à página da conta do Azure Cosmos DB.
Clonar a aplicação de exemplo
Agora, vamos clonar uma API para a aplicação Cassandra a partir do GitHub, definir a cadeia de ligação e executá-la. Verá como é fácil trabalhar com dados através de programação.
Abra uma linha de comandos. Crie uma nova pasta com o nome
git-samples
. Em seguida, feche a linha de comandos.md "C:\git-samples"
Abra uma janela de terminal do git, como o git bash e utilize o comando
cd
para alterar para uma nova pasta e instalar a aplicação de exemplo.cd "C:\git-samples"
Execute o seguinte comando para clonar o repositório de exemplo. Este comando cria uma cópia da aplicação de exemplo no seu computador.
git clone https://github.com/Azure-Samples/azure-cosmos-db-cassandra-python-getting-started.git
Rever o código
Este passo é opcional. Se estiver interessado em saber de que forma o código cria os recursos da base de dados, pode rever os fragmentos seguintes. Os fragmentos são todos retirados do ficheiro pyquickstart.py . Caso contrário, pode avançar diretamente para Update your connection string (Atualizar a cadeia de ligação).
O
cluster
é inicializado comcontactPoint
eport
as informações obtidas do portal do Azure. Emcluster
seguida, liga-se ao Azure Cosmos DB para Apache Cassandra com oconnect()
método . Uma ligação autorizada é estabelecida com o nome de utilizador, a palavra-passe e o certificado predefinido ou um certificado explícito se fornecer um no ficheiro de configuração.ssl_context = SSLContext(PROTOCOL_TLSv1_2) ssl_context.verify_mode = CERT_NONE auth_provider = PlainTextAuthProvider(username=cfg.config['username'], password=cfg.config['password']) cluster = Cluster([cfg.config['contactPoint']], port = cfg.config['port'], auth_provider=auth_provider,ssl_context=ssl_context) session = cluster.connect()
É criado um novo keyspace.
print ("\nCreating Keyspace") execute_command('CREATE KEYSPACE IF NOT EXISTS uprofile WITH replication = {\'class\': \'NetworkTopologyStrategy\', \'datacenter\' : \'1\' }');
É criada uma nova tabela.
print ("\nCreating Table") execute_command('CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)');
São introduzidas entidades de chave/valor.
execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [1,'Lybkov','Seattle']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [2,'Doniv','Dubai']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [3,'Keviv','Chennai']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [4,'Ehtevs','Pune']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [5,'Dnivog','Belgaum']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [6,'Ateegk','Narewadi']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [7,'KannabbuS','Yamkanmardi']) execute_command("INSERT INTO uprofile.user (user_id, user_name , user_bcity) VALUES (%s,%s,%s)", [8,'Jonas','Atlanta'])
Consulte para obter todas as chaves-valor.
print ("\nSelecting All") rows = session.execute('SELECT * FROM uprofile.user') PrintTable(rows)
Consulte para obter uma chave-valor.
print ("\nSelecting Id=1") rows = session.execute('SELECT * FROM uprofile.user where user_id=1') PrintTable(rows)
Atualizar a cadeia de ligação
Agora, regresse ao portal do Azure para obter as informações da cadeia de ligação e copie-as para a aplicação. A cadeia de ligação permite que a aplicação comunique com a base de dados alojada.
Na sua conta do Azure Cosmos DB no portal do Azure, selecione Cadeia de Ligação.
Utilize o botão no lado direito do ecrã para copiar o valor superior, o PONTO DE CONTACTO.
Abra o ficheiro config.py .
Cole o valor do PONTO DE CONTACTO do portal em
<FILLME>
na linha 10.A linha 10 deve ter agora um aspeto semelhante a
'contactPoint': 'cosmos-db-quickstarts.cassandra.cosmosdb.azure.com'
Cole o valor PORTA do portal
<FILLME>
na linha 12.A linha 12 deve agora ter um aspeto semelhante a
'port': 10350,
Copie o valor do NOME DE UTILIZADOR no portal e cole-o em
<FILLME>
na linha 6.A linha 6 deve ter agora um aspeto semelhante a
'username': 'cosmos-db-quickstart',
Copie o valor da PALAVRA-PASSE no portal e cole-o em
<FILLME>
na linha 8.A linha 8 deve ter agora um aspeto semelhante a
'password' = '2Ggkr662ifxz2Mg==
';`Guarde o ficheiro config.py .
Executar a aplicação Python
Utilize o comando cd do terminal do Git para mudar para a pasta
azure-cosmos-db-cassandra-python-getting-started
.Execute os comandos seguintes para instalar os módulos necessários:
python -m pip install cassandra-driver==3.20.2 python -m pip install prettytable python -m pip install requests python -m pip install pyopenssl
Nota
Recomendamos a versão 3.20.2 do controlador Python para utilização com a API para Cassandra. Versões superiores podem causar erros.
Execute o seguinte comando para iniciar a aplicação Python:
python pyquickstart.py
Verifique os resultados como esperado na linha de comandos.
Prima CTRL+C para parar a execução do programa e fechar a janela da consola.
No portal do Azure, abra o Data Explorer para consultar, modificar e trabalhar com estes dados novos.
Rever os SLAs no portal do Azure
O portal do Azure monitoriza o débito, armazenamento, disponibilidade, latência e consistência da conta do Azure Cosmos DB. Os gráficos para métricas associadas a um Contrato de Nível de Serviço (SLA) do Azure Cosmos DB mostram o valor SLA em comparação com o desempenho real. Este conjunto de métricas torna a monitorização dos SLAs transparente.
Para rever métricas e SLAs:
Selecione Métricas no menu de navegação da sua conta do Azure Cosmos DB.
Selecione um separador como Latência e selecione um período de tempo à direita. Compare as linhas Real e SLA nos gráficos.
Reveja as métricas nos outros separadores.
Limpar os recursos
Quando terminar a aplicação e a conta do Azure Cosmos DB, pode eliminar os recursos do Azure que criou para não incorrer em mais custos. Para eliminar os recursos:
Na barra de pesquisa portal do Azure, procure e selecione Grupos de recursos.
Na lista, selecione o grupo de recursos que criou para este início rápido.
Na página Descrição geral do grupo de recursos, selecione Eliminar grupo de recursos.
Na janela seguinte, introduza o nome do grupo de recursos a eliminar e, em seguida, selecione Eliminar.
Passos seguintes
Neste início rápido, aprendeu a criar uma conta do Azure Cosmos DB com a API para Cassandra e a executar uma aplicação Cassandra Python que cria uma base de dados e um contentor para Cassandra. Agora pode importar outros dados para a sua conta do Azure Cosmos DB.