Exercício - Criar tabelas no Azure Cosmos DB para PostgreSQL

Concluído

Neste exercício, você cria as tabelas para iniciar os desenvolvedores do Woodgrove Bank na criação de uma versão distribuída do banco de dados do aplicativo de pagamento do Woodgrove Bank:

Diagram of the relationships between users, events, merchants, and event types. payment_events' event_type field is now event_type_id, with a foreign key relationship to a new table named event_types. The event_types table contains the name and event_type_id, with the event_type_id as its primary key. The payment_events table also has a foreign key relationship to a new table named payment_merchants. The payment_merchants table has merchant_id, name, and url. The merchant_id is the primary key for payment_merchants.

Criar um banco de dados do Azure Cosmos DB para PostgreSQL

Crie um banco de dados do Azure Cosmos DB para PostgreSQL com um único nó coordenador (com quatro vCores e 0,5 TiB de armazenamento) e dois nós de trabalho (cada um com 4 vCores e 0,5 TiB de armazenamento).

Nota

Você precisará de sua própria assinatura do Azure para concluir os exercícios neste módulo. Se não tiver uma subscrição do Azure, pode inscrever-se numa conta gratuita do Azure. Certifique-se de limpar todos os recursos criados no final do módulo para evitar ser cobrado.

  1. Abra um navegador da Web e navegue até o portal do Azure.

  2. Em seguida, selecione Criar um recurso, Bancos de dados e Azure Cosmos DB. Você também pode usar a funcionalidade Pesquisar para localizar o recurso.

    Screenshot of Create an Azure Cosmos DB for PostgreSQL resource. Databases in the Categories navigation and Azure Cosmos DB in the Popular Azure services section are highlighted.

  3. Na tela de opção Selecionar API, selecione Criar no bloco do Azure Cosmos DB para PostgreSQL .

    Screenshot of the Azure Cosmos DB API options. The Azure Cosmos DB for PostgreSQL option is highlighted.

    Nota

    O portal exibirá uma tela de configuração do Azure Cosmos DB para PostgreSQL.

  4. No separador Informações Básicas, introduza as seguintes informações:

    Parâmetro Valor
    Detalhes do projeto
    Subscrição Escolher a sua subscrição do Azure
    Grupo de recursos Selecione Criar novo e nomeie seu grupo learn-cosmosdb-postgresqlde recursos .
    Detalhes do cluster
    Nome do cluster Insira um nome globalmente exclusivo, como learn-cosmosdb-postgresql.
    Localização Deixe o padrão ou use uma região próxima a você.
    Escala Consulte as definições de configuração na próxima etapa.
    Versão do PostgreSQL Deixe a versão padrão (15) selecionada.
    Conta de administrador
    Nome de utilizador de administrador Este nome de utilizador está definido como citus e não pode ser editado.
    Password Introduza e confirme uma palavra-passe forte.

    Screenshot of creating an Azure Cosmos DB for PostgreSQL in the Azure portal. The settings above are shown in the screenshot.

    Gorjeta

    Anote o nome do servidor e a senha para uso posterior.

  5. Para a configuração Escala , selecione Configurar e, na página de configuração do nó, defina o seguinte:

    Parâmetro Valor
    Nós
    Contagens de nós Escolha 2 nós.
    Computação por nó Selecione 4 vCores, 32 GiB RAM.
    Armazenamento por nó Selecione 512 GiB.
    Coordenador (talvez seja necessário expandir esta seção)
    Coordenador de computação Selecione 4 vCores, 16 GiB RAM.
    Coordenador de armazenamento Selecione 512 GiB.
    Elevada disponibilidade deixe esta opção desselecionada.

    Screenshot of the Azure Cosmos DB for PostgreSQL cluster configuration dialog. The settings above appear in the screenshot.

  6. Deixe todas as outras opções como padrão. Selecione Salvar na página de escala para retornar à configuração do cluster.

  7. Selecione o botão Next : Networking > para ir para a guia Rede da caixa de diálogo de configuração.

  8. Na guia Rede, defina o método Conectividade como Acesso público (endereços IP permitidos) e marque a caixa Permitir acesso público dos serviços e recursos do Azure no Azure para este cluster.

    Screenshot of Azure Cosmos DB for PostgreSQL networking configuration. Public access (allowed IP addresses) is highlighted for the Connectivity method. Allow public access from Azure services is checked and highlighted.

  9. Selecione o botão Rever + criar e, no ecrã de revisão, selecione Criar para criar o cluster do Azure Cosmos DB para PostgreSQL.

Conectar-se ao banco de dados usando psql no Azure Cloud Shell

  1. Depois que o cluster do Azure Cosmos DB para PostgreSQL for criado, navegue até o recurso no portal do Azure.

  2. Na navegação, em Configurações, selecione Cadeias de conexão. Copie a cadeia de conexão rotulada psql.

    Screenshot of the Connection strings page of the Azure Cosmos DB Cluster resource. The 'Connection strings' navigation is highlighted. The psql connection string is also highlighted.

  3. Abra o Azure Cloud Shell em um navegador da Web.

  4. Selecione Bash.

    Screenshot of Azure Cloud Shell welcome message with a prompt to choose an environment between Bash or PowerShell. Bash is selected.

  5. Se solicitado, selecione a assinatura usada para sua conta do Azure Cosmos DB para PostgreSQL e selecione Criar armazenamento.

    Screenshot of Azure Cloud Shell welcome wizard showing no storage mounted. Azure Subscription (the current subscription) is showing in the Subscription dropdown.

  6. Agora, use o utilitário de linha de comando psql para se conectar ao Azure Cosmos DB para PostgreSQL. Copie a cadeia de conexão da Etapa 2 e cole-a no Cloud Shell. Atualize a parte da cadeia de conexão para usar a password configuração de senha ao criar o cluster do Azure Cosmos DB para PostgreSQL. Em seguida, execute o comando.

Criar tabelas

Uma vez que a conta é criada, as tabelas podem ser adicionadas. Use psql no Azure Cloud Shell para interagir com o banco de dados.

Criar tabelas locais

Tabelas locais, tabelas de referência e tabelas de distribuição começam como uma tabela local no nó coordenador.

O código abaixo cria as event_typestabelas , , payment_eventspayment_userse com payment_merchants suas relações tradicionais de chave primária. As chaves estrangeiras para as tabelas distribuídas serão adicionadas mais tarde.

CREATE TABLE event_types 
(
    event_type_id bigint PRIMARY KEY,
    event_type text
);

CREATE TABLE payment_users
(
    user_id bigint,
    url text,
    login text,
    avatar_url text
);

CREATE TABLE payment_merchants
(
    merchant_id bigint PRIMARY KEY,
    name text,
    url text
);

CREATE TABLE payment_events
(
    event_id bigint,
    user_id bigint,
    event_type_id bigint REFERENCES event_types (event_type_id),
    merchant_id bigint REFERENCES payment_merchants (merchant_id),
    event_details jsonb,
    created_at timestamp
) PARTITION BY RANGE (created_at);

Confirme se as tabelas foram criadas e ainda não distribuídas

  1. Confirme se as tabelas foram criadas executando o seguinte comando:

    \dt
    

    Este resultado da consulta deve mostrar quatro linhas, uma linha para cada uma das tabelas.

                        List of relations
    Schema |       Name        |       Type        | Owner 
    --------+-------------------+-------------------+-------
    public | event_types       | table             | citus
    public | payment_events    | partitioned table | citus
    public | payment_merchants | table             | citus
    public | payment_users     | table             | citus
    
  2. Use o citus_tables modo de exibição para garantir que essas tabelas recém-criadas ainda não sejam distribuídas. Execute a seguinte consulta:

    SELECT * FROM citus_tables;
    

    Os resultados desta consulta devem mostrar zero linhas.

Agora que essas tabelas foram criadas, vamos examinar a escolha de colunas de distribuição para as tabelas que queremos distribuir.