Conceitos Básicos do MySQL HeatWave na OCI

O MySQL HeatWave faz todo o sentido se você estiver executando cargas de trabalho transacionais e analíticas mistas em MySQL ou estiver movendo dados para um banco de dados separado para análise. Em vez de criar pipelines ETL complicados para mover dados, o HeatWave, um acelerador de consultas na memória integrado e de alto desempenho, acelera o desempenho do MySQL em ordens de magnitude para análises e cargas de trabalho mistas, sem alterações nas aplicações atuais. O serviço foi desenvolvido no MySQL Enterprise Edition, que permite aos desenvolvedores criar e implementar rapidamente aplicativos nativos em nuvem seguros usando o banco de dados de código aberto mais popular do mundo.

A Oracle projetou o MySQL HeatWave para que os desenvolvedores pudessem se concentrar em seus aplicativos. Você não precisa gerenciar dois bancos de dados para OLTP e OLAP, e pode obter análises seguras em tempo real sem a complexidade, a latência e o custo da duplicação ETL. O MySQL HeatWave é um serviço totalmente gerenciado que automatiza tarefas, como backup, recuperação e aplicação de patches em bancos de dados e sistemas operacionais. "Preocupe-se menos, esmague mais", como dizemos! O MySQL HeatWave é desenvolvido e suportado pela equipe de desenvolvimento da MySQL na Oracle.

Para começar a usar o OCI, criaremos uma VCN, implantaremos um Sistema de BD MySQL e criaremos um cluster HeatWave, extrairemos alguns dados e os analisaremos. Procurando começar a usar o MySQL HeatWave na AWS. Isso mostrará como você pode aproveitar o MySQL HeatWave em um cenário de várias nuvens. Que tempo para estar vivo!

Como estamos apenas começando, vamos começar realmente no início e criar uma VCN com o acesso adequado e, em seguida, ver como criar um cluster HeatWave no OCI.

Pré-requisitos

  • Uma conta do OCI e um nome de Conta do Oracle Cloud
  • Acesso de administrador
  • Um navegador compatível (Chrome 69+, Safari 12.1+ ou Firefox 62+ ou qualquer navegador aprovado pelo Oracle Jet)

Visão Geral

  1. Criar uma VCN e configurar para acesso ao banco de dados
  2. Criar usuários e grupos (se você ainda não tiver feito isso)
  3. Criar um Sistema de BD com forma compatível com HeatWave
  4. Estabelecer conexão com o Cloud Shell e usar o MySQL Shell
  5. Importar dados de amostra
  6. Adicionar Cluster HeatWave
  7. Executar consultas!

Em nosso exemplo, estamos usando uma abordagem simplificada para configurar as coisas para usar HeatWave.

Agora vamos começar com o básico!

Criar uma VCN e configurar para acesso ao banco de dados

Menu: Home > Redes > Redes Virtuais na Nuvem

Crie VCN e sub-redes usando Redes Virtuais na Nuvem > Assistente para Iniciar VCN > Criar uma VCN com Conectividade de Internet. Claro que você também terá uma sub-rede privada.

captura de tela do assistente de VCN

O assistente prático irá orientá-lo através da criação de um ambiente de rede para o seu sistema, embora existam muitas maneiras de configurar isso, não vamos nos distrair. Observe que escolhi o compartimento que configurei anteriormente, my_heatwave_testing – porque isso é importante!

captura de tela da configuração da VCN

Agora vamos configurar a lista de segurança da VCN para permitir tráfego por meio das portas do MySQL Database Service. Clique na Sub-rede Privada da VCN que você criou e clique na Lista de Segurança para ela.

captura de tela da lista de segurança

Agora clique na lista Adicionar segurança.

Vamos adicionar algumas regras de entrada necessárias para ativar as portas certas, 3306 e 33060. Aqui estão os detalhes:

Source CIDR: 0.0.0.0/0
Destination Port Range: 3306,33060
Description: MySQL Port

E clique em Add Ingress Rules.

captura de tela das regras de entrada

Parece bom até agora!

Criar usuários e grupos (se você ainda não tiver feito isso)

Se você já for o administrador, poderá pular para a próxima etapa, mas isso estará aqui caso esteja adicionando usuários à tenancy do OCI que também precisem de acesso para gerenciar o Sistema de BD. Precisaremos definir permissões e limitar um pouco o acesso, mesmo em nosso exemplo "simplificado", mas você pode ler tudo sobre gerenciamento de grupos aqui. Normalmente, criaremos um grupo, criaremos políticas e, em seguida, adicionaremos usuários ao grupo.

Vamos fazer amizade com as opções de Identidade e Segurança.

Crie um grupo para seus usuários; no meu exemplo, criei um grupo chamado MySQL Admins.

Adicione usuários ao grupo. No nosso exemplo, vamos adicionar-nos a este grupo.

É claro que, para um grupo, você primeiro criará todos os usuários necessários, os adicionará ao grupo que precisa de acesso nos níveis que determinar e terá certeza de que poderá soltá-los com os controles de acesso apropriados.

Permitimos o acesso definindo políticas, permitindo que um grupo tenha acesso total (admins) e um grupo com acesso limitado (usuários do banco de dados, por exemplo).

Exemplos de políticas:

Allow group MySQLAdmins to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in tenancy
Allow group MySQLAdmins to manage mysql-family in tenancy
Allow group MySQLAdmins to use tag-namespaces in tenancy

Isso só permite configurar e administrar nosso compartimento e define o escopo do acesso aplicado à instância do banco de dados.

Para obter mais informações sobre como adicionar usuários e definir políticas no OCI, consulte esta documentação.

Criar um Sistema de BD com a forma compatível com HeatWave

Menu > Bancos de Dados > Sistemas de BD

Criar Sistema de BD

Observe que o sistema avisa se você ainda não tiver configurado usuários, uma VCN etc. Isso é legal. Não se esqueça de verificar em qual compartimento você criará isso, novamente em List Scope à esquerda. Clique em Criar Sistema de BD.

captura de tela das informações do Sistema de BD

Verifique novamente o compartimento, dê um nome a ele e selecione HeatWave (claro).

captura de tela da criação de credenciais do administrador

Você criará credenciais de administrador. Certifique-se de salvar essas credenciais em algum lugar útil, mas seguro.

Em Configurar Rede, você usará a Rede Virtual na Nuvem criada anteriormente, mas usaremos a sub-rede privada. Deixe o Domínio de Disponibilidade padrão e vá para Configurar Hardware.

captura de tela da configuração do posicionamento

Confirme se, na seção Configurar Hardware, a forma selecionada é MySQL. HeatWave.VM.Standard.

Também:

  • Contagem de Núcleos de CPU: 16
  • Tamanho da memória: 512 GB
  • Tamanho do armazenamento de dados: 1024
captura de tela do hardware de configuração

Na seção Configurar Backup, você pode deixar a janela de backup padrão de sete dias.

captura de tela da configuração do plano de backup

Continue rolando e clique em Mostrar Opções Avançadas.

Vá para a guia Rede, no campo Nome do Host, digite o nome exato do seu Sistema de BD. Isso permitirá que seu cluster se registre no DNS e permitirá que você acesse o host por meio de um nome de domínio totalmente qualificado (FQDN).

captura de tela da configuração de rede

Certifique-se de que a configuração da porta corresponda ao seguinte:

  • MySQL Porta: 3306
  • MySQL Porta do Protocolo X: 33060

Para este exemplo, vamos importar dados automaticamente durante a criação de recursos usando dados armazenados em um bucket do Object Storage, disponibilizados por PAR (Pre-Authenticated Request, Solicitação pré-autenticada).

captura de tela da importação de dados

Se preferir carregar os dados usando o Shell MySQL, você poderá ignorar esta etapa.

Selecione a guia Importação de Dados. Você será solicitado a colar o URL da sua PAR aqui. O URL da PAR do objeto precisa ser um arquivo de manifesto que possa ser criado com a opção ociParaMifest do dump do Shell MySQL utilityHere. Você também pode usar uma PAR do Bucket do Object Storage ou Objetos com PAR do Prefixo.

Aqui está um link de amostra que você pode usar para importar Airport-DB para fins de avaliação.

https://objectstorage.us-ashburn-1.oraclecloud.com/p/zRBSs7nKURyZRcIoV4QlYhascC5gkZcJeQoBS8c2ssyEPID3PSDAnh73OMClQQH4/n/idazzjlcjqzj/b/airportdb-bucket-10282022/o/airportdb/@.manifest.json

Tudo definido... clique em Criar!

Desta vez, um hexágono amarelo aparecerá, eventualmente ficará verde e seu Sistema de BD estará ativo e em execução. Faça um pouco de chá ou pegue um copo de água, você fez muito.

Conectar e usar o Shell MySQL

Vamos usar o prático Cloud Shell para estabelecer conexão com MySQL e MySQL Shell. É um pequeno terminal Linux incorporado no painel da OCI (e é adorável). No canto superior direito, clique no ícone de prompt do Cloud Shell e uma linha de comando será aberta na parte inferior do navegador. Certifique-se de configurar a Configuração de Rede Privada para seu Cloud Shell, selecionando a VCN criada anteriormente.

captura de tela do shell mysql
captura de tela da configuração de rede privada do shell mysql

O legal é que o MySQL Shell já está instalado!

Depois de criarmos nosso Sistema de BD compatível com HeatWave, estabeleceremos conexão com ele usando o Shell MySQL.

mysqlsh --host <dbsystemendpointipaddress> -u <username> -p</username></dbsystemendpointipaddress>

Você pode saber mais sobre o MySQL Shell.

Mais sobre conexão de sistemas de banco de dados.

Importar dados

Se você optar por importar dados durante a criação do recurso usando a opção PAR, poderá ignorar esta etapa. Caso contrário, você pode continuar aqui para importar AirportDB (PDF).

No Cloud Shell:

wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz

Isso cria um único diretório chamado airport-db, que contém os arquivos de dados.

Inicie o shell MySQL e estabeleça conexão com o Ponto Final do Sistema de BD MySQL:

mysqlsh _Username@DBSystem_IP_Address_or_host_Name

Quando solicitado, informe a senha de administrador especificada anteriormente. Uma vez conectado, você usará o Utilitário de Carregamento de Dump para importar dados.

MySQL>JS> util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})

Deve levar alguns minutos para importar, então você está pronto para seguir em frente!

Adicionar Cluster HeatWave

HeatWave é realmente projetado para conjuntos de big data, precisando de análise rápida, portanto, mesmo que eu esteja importando um mero banco de dados de amostra, você pode carregar o quanto quiser (desde que tenha alocado o armazenamento para ele). Além disso, as consultas podem ser executadas no cluster sem descarregar para um banco de dados separado. Pode levar alguns minutos para que o cluster seja criado.

Para começar, vá para seu Sistema de BD na Console do OCI: Bancos de Dados > Sistemas de BD e clique em seu Sistema de BD criado recentemente.

Em Resources, você verá HeatWave (entre outros itens úteis), clique nisso.

captura de tela da guia recursos

É claro que você deseja Adicionar Cluster HeatWave (usando o botão à direita, no meio da página) ou clicar no menu Mais ações na parte superior e selecionar Adicionar cluster Heatwave. Aceite os padrões (16 núcleos de CPU com 512 GB de RAM e 1 nó) e clique no botão para Adicionar cluster HeatWave.

captura de tela para adicionar cluster
captura de tela de configuração do cluster de ondas de calor

Isso leva alguns minutos para que você possa reaquecer essa bebida enquanto o cluster gira.

Carregar dados para HeatWave e Executar Consultas

Finalmente, a parte divertida! Quando o Cluster HeatWave estiver em execução:

  1. Inicie o Shell MySQL e estabeleça conexão com o ponto final do Sistema de BD MySQL:
    $> mysqlsh Username@DBSystem_IP_Address_or_Host_Name
  2. Altere o modo de execução do Shell MySQL para SQL:
    MySQL>JS> \sql
  3. Alterar para a base de dados airportdb:
    MySQL>SQL> USE airportdb;  
    Default schema set to `airportdb`.Fetching table and column names from `airportdb` for auto-completion... Press ^C to stop.`
  4. Carregar dados de MySQL InnoDB para HeatWave
    MySQL>SQL> call sys.heatwave_load(JSON_ARRAY(“airportdb”), NULL);
  5. Use EXPLAIN para verificar se a consulta pode ser transferida para o Cluster HeatWave:
    captura de tela da consulta mysql 1
    Observação: Se a consulta puder ser descarregada, a coluna Extra na saída EXPLAIN reportará "Usando RAPID de mecanismo secundário".
  6. Depois de verificar se a consulta pode ser descarregada, execute a consulta e anote o tempo de execução.
    captura de tela da consulta mysql 2

Agora, vamos ver quanto tempo isso levaria usando o Sistema de BD MySQL "plain vanilla". Fazemos isso desativando a variável use_secondary_engine

captura de tela da consulta mysql 3

Resumo

O que fizemos até agora, tudo na OCI, é configurar uma Rede Virtual na Nuvem com portas para uso MySQL, configurar um banco de dados MySQL e adicionar um cluster HeatWave. Em seguida, importamos alguns dados de teste e executamos algumas consultas para ver a velocidade de HeatWave em relação ao Sistema de BD por conta própria.

Quer saber mais? Participe da discussão em nosso canal público do Slack!

Esta página foi traduzida automaticamente.

Oracle Chatbot
Disconnected