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

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.

  1. No menu portal do Azure ou na Home page, selecione Criar um recurso.

  2. Na página Novo , procure e selecione Azure Cosmos DB.

  3. Na página Azure Cosmos DB , selecione Criar.

  4. 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.

    Saiba mais sobre a API para Cassandra.

  5. 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 Conta
    Selecione 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.

    A nova página de conta do Azure Cosmos DB para Apache Cassandra

  6. 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
  7. 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.
  8. Selecione Rever + criar.

  9. 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.

    O painel Notificações do portal do Azure

  10. 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.

  1. 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"
    
  2. 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"
    
  3. 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 com contactPoint e port as informações obtidas do portal do Azure. Em cluster seguida, liga-se ao Azure Cosmos DB para Apache Cassandra com o connect() 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.

  1. Na sua conta do Azure Cosmos DB no portal do Azure, selecione Cadeia de Ligação.

  2. Utilize o botão no lado direito do ecrã para copiar o valor superior, o PONTO DE CONTACTO.

    Ver e copiar um nome de utilizador de acesso, palavra-passe e ponto de contacto no portal do Azure, painel da cadeia de ligação

  3. Abra o ficheiro config.py .

  4. 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'

  5. Cole o valor PORTA do portal <FILLME> na linha 12.

    A linha 12 deve agora ter um aspeto semelhante a

    'port': 10350,

  6. 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',

  7. 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==';`

  8. Guarde o ficheiro config.py .

Executar a aplicação Python

  1. Utilize o comando cd do terminal do Git para mudar para a pasta azure-cosmos-db-cassandra-python-getting-started.

  2. 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.

  3. Execute o seguinte comando para iniciar a aplicação Python:

    python pyquickstart.py
    
  4. 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.

    Ver e verificar a saída

  5. No portal do Azure, abra o Data Explorer para consultar, modificar e trabalhar com estes dados novos.

    Ver os dados no Data Explorer

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:

  1. Selecione Métricas no menu de navegação da sua conta do Azure Cosmos DB.

  2. Selecione um separador como Latência e selecione um período de tempo à direita. Compare as linhas Real e SLA nos gráficos.

    Conjunto de métricas do Azure Cosmos DB

  3. 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:

  1. Na barra de pesquisa portal do Azure, procure e selecione Grupos de recursos.

  2. Na lista, selecione o grupo de recursos que criou para este início rápido.

    Selecione o grupo de recursos a eliminar

  3. Na página Descrição geral do grupo de recursos, selecione Eliminar grupo de recursos.

    Eliminar o grupo de recursos

  4. 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.