Share via


Início Rápido: Criar uma aplicação Cassandra com o SDK Node.js e o Azure Cosmos DB

APLICA-SE A: Cassandra

Neste início rápido, você cria uma conta do Azure Cosmos DB para Apache Cassandra e usa um aplicativo Cassandra Node.js clonado do GitHub para criar um banco de dados e um contêiner Cassandra. O Azure Cosmos DB é um serviço de banco de dados multimodelo que permite criar e consultar rapidamente bancos de dados de documentos, tabelas, chave-valor e gráficos com recursos de distribuição global e escala horizontal.

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar. Em alternativa, pode Experimentar o Azure Cosmos DB gratuitamente sem uma subscrição do Azure, sem encargos e compromissos.

Além disso, necessita:

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. A partir do menu do portal do Azure ou a partir da 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 seção Cassandra.

    A API determina o tipo de conta a criar. O Azure Cosmos DB fornece cinco APIs: NoSQL para bancos de dados de documentos, Gremlin para bancos de dados gráficos, MongoDB para bancos de dados de documentos, Tabela do Azure e Cassandra. Você deve criar uma conta separada para cada API.

    Selecione Cassandra, porque neste início rápido você está criando 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, insira as configuraçõ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 pretende utilizar para esta conta do Azure Cosmos DB.
    Grupo de Recursos Criar novas , e formulários de aplicação do

    Em seguida, insira o mesmo nome que Nome da conta
    Selecione Criar novo. Em seguida, insira um novo nome de grupo de recursos para sua conta. Para simplificar, use o mesmo nome que o nome da sua conta do Azure Cosmos DB.
    Nome da Conta Introduzir um nome exclusivo Introduza um nome exclusivo para identificar a sua conta do Azure Cosmos DB. O URI da sua conta será cassandra.cosmos.azure.com anexado ao seu nome de conta exclusivo.

    O nome da conta pode usar apenas letras minúsculas, números e hífenes (-), e deve ter entre 3 e 31 caracteres.
    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 Taxa de transferência provisionada ou sem servidor Selecione Taxa de transferência provisionada para criar uma conta no modo de taxa de transferência provisionada. Selecione Serverless para criar uma conta no modo serverless.
    Aplicar desconto de nível gratuito do Azure Cosmos DB Candidatar-se ou Não aplicar Com o nível gratuito do Azure Cosmos DB, você receberá os primeiros 1000 RU/s e 25 GB de armazenamento gratuitamente em uma conta. Saiba mais sobre o nível gratuito.
    Limitar a taxa de transferência total da conta Selecione esta opção para limitar a taxa de transferência da conta Isso é útil se você quiser limitar a taxa de transferência total da conta a um valor específico.

    Nota

    Você pode ter até uma conta gratuita do Azure Cosmos DB por assinatura do Azure e deve optar por participar ao criar a conta. Se você não vir a opção de aplicar o desconto de nível gratuito, isso significa que outra conta na assinatura já foi habilitada com o nível gratuito.

    The new account page for Azure Cosmos DB for Apache Cassandra

  6. Na guia Distribuição Global, configure os seguintes detalhes. Você pode deixar os valores padrão para a finalidade deste início rápido:

    Definição valor Descrição
    Georredundância Desativar Habilite ou desative a distribuição global em sua conta emparelhando sua região com uma região par. Pode adicionar mais regiões à sua conta mais tarde.
    Escritas de várias regiões Desativar O recurso de gravação em várias regiões permite que você aproveite a taxa de transferência provisionada para seus bancos de dados e contêineres em todo o mundo.
    Zonas de Disponibilidade Desativar As Zonas de Disponibilidade são locais isolados dentro de uma 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 estarão disponíveis se você selecionar Serverless como o modo de Capacidade:

    • Aplicar Desconto de Escalão Gratuito
    • Georredundância
    • Escritas de várias regiões
  7. Opcionalmente, você pode configurar detalhes adicionais nas seguintes guias:

    • Rede - Configure o acesso a partir de uma rede virtual.
    • Política de backup - Configure a política de backup periódico ou contínuo .
    • Criptografia - Use uma chave gerenciada pelo serviço ou uma chave gerenciada pelo cliente.
    • Tags - As tags são pares nome/valor que permitem categorizar recursos e exibir faturamento consolidado aplicando a mesma tag 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.

    The Azure portal Notifications pane

  10. Selecione Ir para recurso para aceder à página da conta do Azure Cosmos DB.

Clonar a aplicação de exemplo

Clone uma API para o aplicativo Cassandra do GitHub, defina a cadeia de conexão e execute-a.

  1. Abra uma janela da Linha de Comandos. Crie uma nova pasta com o nome git-samples. Em seguida, feche a janela.

    md "C:\git-samples"
    
  2. Abra uma janela de terminal do Git, como git bash. Utilize o comando cd para mudar para a nova pasta para 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-nodejs-getting-started.git
    
  4. Instale as dependências .js nó com npmo .

    npm install
    

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 uprofile.js na pasta C:\git-samples\azure-cosmos-db-cassandra-nodejs-getting-started. Caso contrário, avance para Atualizar a cadeia de ligação.

  • Os valores nome de utilizador e palavra-passe são definidos através da página da cadeia de ligação no portal do Azure.

    let authProvider = new cassandra.auth.PlainTextAuthProvider(
        config.username,
        config.password
    );
    
  • O client é inicializado com informações de contactPoint. O contactPoint é obtido a partir do portal do Azure.

    let client = new cassandra.Client({
        contactPoints: [`${config.contactPoint}:10350`],
        authProvider: authProvider,
        localDataCenter: config.localDataCenter,
        sslOptions: {
            secureProtocol: "TLSv1_2_method"
        },
    });
    
  • O client se conecta ao Azure Cosmos DB para Apache Cassandra.

    client.connect();
    
  • É criado um novo keyspace.

    var query =
        `CREATE KEYSPACE IF NOT EXISTS ${config.keySpace} WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter' : '1' }`;
    await client.execute(query);
    
  • É criada uma nova tabela.

    query =
        `CREATE TABLE IF NOT EXISTS ${config.keySpace}.user (user_id int PRIMARY KEY, user_name text, user_bcity text)`;
    await client.execute(query);
    
  • São introduzidas entidades de chave/valor.

    const arr = [
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (1, 'AdrianaS', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (2, 'JiriK', 'Toronto')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (3, 'IvanH', 'Mumbai')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (4, 'IvanH', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (5, 'IvanaV', 'Belgaum')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (6, 'LiliyaB', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (7, 'JindrichH', 'Buenos Aires')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (8, 'AdrianaS', 'Seattle')`,
        `INSERT INTO  ${config.keySpace}.user (user_id, user_name , user_bcity) VALUES (9, 'JozefM', 'Seattle')`,
    ];
    for (const element of arr) {
        await client.execute(element);
    }
    
  • Consulte para obter todas as chaves-valor.

    query = `SELECT * FROM ${config.keySpace}.user`;
    const resultSelect = await client.execute(query);
    
    for (const row of resultSelect.rows) {
        console.log(
            "Obtained row: %d | %s | %s ",
            row.user_id,
            row.user_name,
            row.user_bcity
        );
    }
    
  • Consulte para obter uma chave-valor.

    query = `SELECT * FROM ${config.keySpace}.user where user_id=1`;
    const resultSelectWhere = await client.execute(query);
    
    for (const row of resultSelectWhere.rows) {
        console.log(
            "Obtained row: %d | %s | %s ",
            row.user_id,
            row.user_name,
            row.user_bcity
        );
    }
    
  • Feche a conexão.

    client.shutdown();
    

Atualizar a cadeia de ligação

Vá para o portal do Azure para obter suas informações de cadeia de conexão e copiá-las para o aplicativo. 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 Conexão.

  2. Use o botão no lado direito da tela para copiar o valor superior, PONTO DE CONTATO.

    Screenshot showing how to view and copy the CONTACT POINT, USERNAME,and PASSWORD from the Connection String page.

  3. Abra o arquivo config.js .

  4. Cole o valor CONTACT POINT do portal sobre CONTACT-POINT a linha 9.

    A linha 9 agora deve ser semelhante a este valor:

    contactPoint: "cosmos-db-quickstarts.cassandra.cosmosdb.azure.com",

  5. Copie o valor USERNAME do portal e cole-o na <FillMEIN> linha 2.

    A linha 2 agora deve ser semelhante a este valor:

    username: 'cosmos-db-quickstart',

  6. Copie o valor PASSWORD do portal e cole-o na USERNAME linha 8.

    A linha 8 agora deve ser semelhante a este valor:

    password: '2Ggkr662ifxz2Mg==',

  7. Substitua REGION pela região do Azure na qual você criou este recurso.

  8. Salve o arquivo config.js .

Execute a aplicação Node.js

  1. Na janela do terminal bash, verifique se você está no diretório de exemplo clonado anteriormente:

    cd azure-cosmos-db-cassandra-nodejs-getting-started
    
  2. Execute seu aplicativo de nó:

    npm start
    
  3. Verifique os resultados como esperado na linha de comandos.

    Screenshot shows a Command Prompt window where you can view and verify the output.

    Pressione Ctrl+C para parar o programa e fechar a janela do console.

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

    Screenshot shows the Data Explorer page, where you can view the data.

Rever os SLAs no portal do Azure

O portal do Azure monitora a taxa de transferência, o armazenamento, a disponibilidade, a latência e a consistência da sua conta do Azure Cosmos DB. Os gráficos para métricas associadas a um SLA (Service Level Agreement, contrato de nível de serviço) do Azure Cosmos DB mostram o valor do SLA em comparação com o desempenho real. Esse conjunto de métricas torna o monitoramento de seus 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 uma guia, como Latência, e selecione um período à direita. Compare as linhas Real e SLA nos gráficos.

    Azure Cosmos DB metrics suite

  3. Analise as métricas nas outras guias.

Clean up resources (Limpar recursos)

Quando terminar de usar seu aplicativo e sua conta do Azure Cosmos DB, você poderá excluir os recursos do Azure criados para não incorrer em mais cobranças. Para eliminar os recursos:

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

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

    Select the resource group to delete

  3. Na página Visão geral do grupo de recursos, selecione Excluir grupo de recursos.

    Delete the resource group

  4. Na janela seguinte, introduza o nome do grupo de recursos a eliminar e, em seguida, selecione Eliminar.

Próximos passos

Neste início rápido, você aprendeu como criar uma conta do Azure Cosmos DB com a API para Cassandra e executar um aplicativo Cassandra Node.js que cria um banco de dados e um contêiner Cassandra. Agora você pode importar mais dados para sua conta do Azure Cosmos DB.