Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Melhores práticas/ Recursos avançados/ Melhores práticas para gerenciamento automático de partições
Atualizado em 2024-05-09 GMT+08:00

Melhores práticas para gerenciamento automático de partições

Cenários

Para tabelas de partição cujas colunas de partição são tempo, a função de gerenciamento automático de partição pode ser adicionada para criar automaticamente partições e excluir partições expiradas, reduzindo os custos de manutenção da tabela de partição e melhorando o desempenho da consulta. Para facilitar a consulta e a manutenção de dados, a coluna de tempo é frequentemente usada como a coluna de partição de uma tabela particionada que armazena dados relacionados ao tempo, como informações de pedidos de comércio eletrônico e dados de IoT em tempo real. Quando os dados relacionados ao tempo são importados para uma tabela particionada, a tabela deve ter partições dos intervalos de tempo correspondentes. Tabelas de partições comuns não criam automaticamente novas partições nem excluem partições expiradas. Portanto, o pessoal de manutenção precisa criar periodicamente novas partições e excluir partições expiradas, levando ao aumento dos custos de O&M.

Para resolver isso, o GaussDB(DWS) introduz o recurso de gerenciamento automático de partições. Você pode definir os parâmetros de nível de tabela period e ttl para habilitar a função de gerenciamento automático de partição, que cria automaticamente partições e exclui partições expiradas, reduzindo os custos de manutenção da tabela de partição e melhorando o desempenho da consulta.

period: intervalo para criar partições automaticamente. O valor padrão é 1 dia. A faixa de valor é de 1 hora a 100 anos.

ttl: tempo para eliminar automaticamente as partições. A faixa de valor é de 1 hora a 100 anos. A política de eliminação de partição baseia-se na condição de nowtime - partition boundary > ttl. As partições que atendem a essa condição serão eliminadas.

  • Criação automática de partições

    Uma ou mais partições são criadas automaticamente no intervalo especificado por period para tornar o tempo máximo de limite de partição maior que nowTime + 30 x período. Enquanto houver uma partição criada automaticamente, os dados em tempo real não deixarão de ser importados nos próximos 30 períodos.

    Figura 1 Criação automática de partições
  • Exclusão automática de partições expiradas

    As partições cujo tempo limite é anterior a nowTime-ttl são consideradas partições expiradas. A função automática da gestão da divisória atravessa todas as divisórias e suprime divisórias expiradas após cada period. Se todas as partições forem partições expiradas, o sistema retém uma partição e trunca a tabela.

Restrições

Ao usar a função de gerenciamento de partição, certifique-se de que os seguintes requisitos sejam atendidos:
  • Ela não pode ser usada em servidores de médio porte, clusters de aceleração ou clusters autônomos.
  • Ela pode ser usada em clusters da versão 8.1.3 ou posterior.
  • Ela só pode ser usada para tabelas particionadas de intervalo de armazenamento de linha, tabelas particionadas de intervalo de armazenamento de coluna, tabelas de séries temporais e tabelas frias e quentes.
  • A chave de partição deve ser exclusiva e seu tipo deve ser timestamp, timestamptz ou date.
  • A partição maxvalue não é suportada.
  • O valor de (nowTime - boundaryTime)/período deve ser menor que o número máximo de partições. nowTime indica o horário atual e boundaryTime indica o horário de limite de partição mais anterior.
  • Os valores de period e ttl variam de 1 hora a 100 anos. Além disso, em um banco de dados compatível com Teradata ou MySQL, se o tipo de chave de partição é data, o valor do período não pode ser inferior a 1 dia.
  • O parâmetro de nível de tabela ttl não pode existir de forma independente. Você deve definir period com antecedência ou ao mesmo tempo, e o valor de ttl deve ser maior ou igual ao de period.
  • Durante a expansão de cluster online, as partições não podem ser adicionadas automaticamente. As partições reservadas cada vez que as partições são adicionadas garantirão que os serviços não sejam afetados.

Criar um ECS

Para obter detalhes, consulte Compra de um ECS. Após a compra de um ECS, faça logon no ECS consultando Efetuar logon em um ECS de Linux.

Ao criar um ECS, certifique-se de que o ECS esteja na mesma região, AZ e sub-rede da VPC que o armazém de dados de fluxo. Selecione o SO usado pelo cliente gsql (o CentOS 7.6 é usado como um exemplo) como o SO do ECS e selecione usar senhas para fazer logon.

Criação de um cluster

  1. Faça logon no console de gerenciamento da Huawei Cloud.
  2. Escolha Service List > Analytics > Data Warehouse Service. Na página exibida, clique em Create Cluster no canto superior direito.
  3. Configure parâmetros de acordo com Tabela 1.

    Tabela 1 Configuração de software

    Parâmetro

    Configuração

    Region

    Selecione CN-Hong Kong.

    NOTA:

    CN-Hong Kong é usada como exemplo. Você pode selecionar outras regiões, conforme necessário. Certifique-se de que todas as operações sejam realizadas na mesma região.

    AZ

    AZ2

    Product

    Standard data warehouse

    CPU Architecture

    X86

    Node Flavor

    dws2.m6.4xlarge.8 (16 vCPUs | 128 GB | 2000 GB SSD)

    NOTA:

    Se esse flavor estiver esgotado, selecione outras AZs ou flavors.

    Nodes

    3

    Cluster Name

    dws-demo

    Administrator Account

    dbadmin

    Administrator Password

    -

    Confirm Password

    -

    Database Port

    8000

    VPC

    vpc-default

    Subnet

    subnet-default(192.168.0.0/24)

    Security Group

    Automatic creation

    EIP

    Buy now

    Bandwidth

    1Mbit/s

    Advanced Settings

    Default

  4. Confirme as informações, clique em Next e, em seguida, clique em Submit.
  5. Espere cerca de 6 minutos. Depois que o cluster for criado, clique em ao lado do nome do cluster. Na página de informações do cluster exibida, registre o valor de Public Network Address, por exemplo, dws-demov.dws.huaweicloud.com.

Usar o cliente de CLI gsql para conectar-se a um cluster

  1. Faça logon remotamente no servidor Linux onde o gsql deve ser instalado como usuário root e execute o seguinte comando na janela de comando do Linux para fazer o download do cliente gsql:

    1
    wget https://obs.ap-southeast-1.myhuaweicloud.com/dws/download/dws_client_8.1.x_redhat_x64.zip --no-check-certificate
    

  2. Descompacte o cliente.

    1
    cd <Path_for_storing_the_client> unzip dws_client_8.1.x_redhat_x64.zip
    

    Onde,

    • <Path_for_storing_the_client>: Substitua-o pelo caminho real.
    • dws_client_8.1.x_redhat_x64.zip: Este é o nome do pacote de ferramentas cliente do RedHat x64. Substitua-o pelo nome real.

  3. Configure o cliente de GaussDB(DWS).

    1
    source gsql_env.sh
    

    Se as seguintes informações forem exibidas, o cliente gsql será configurado com êxito:

    1
    All things done.
    

  4. Use o cliente gsql para conectar-se a um banco de dados do GaussDB(DWS) (usando a senha você definiu ao criar o cluster).

    1
    gsql -d gaussdb -p 8000 -h 192.168.0.86 -U dbadmin -W password -r
    

    Se as informações a seguir forem exibidas, a conexão foi bem-sucedida.

    1
    gaussdb=>
    

Gerenciamento de partições automático

A função de gerenciamento de partição está vinculada aos parâmetros de nível de tabela period e ttl. A criação automática de partições é permitida com a habilitação de period, e a exclusão automática de partições é permitida com a habilitação de ttl. 30 segundos após period ou ttl é ajustado, a criação ou a exclusão automática de partições funciona pela primeira vez.

Você pode habilitar a função de gerenciamento de partições de uma das seguintes maneiras:

  • Especifique period e ttl ao criar uma tabela.

    Essa maneira é aplicável quando você cria uma tabela de gerenciamento de partição. Há duas sintaxes para criar uma tabela de gerenciamento de partição. Uma especifica partições e a outra não.

    Se as partições forem especificadas quando uma tabela de gerenciamento de partição for criada, as regras de sintaxe serão as mesmas para a criação de uma tabela de partição comum. A única diferença é que a sintaxe especifica os parâmetros de nível de tabela period e ttl.

    O exemplo a seguir mostra como criar uma tabela de gerenciamento de partições CPU1 e especificar partições.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    CREATE TABLE CPU1(
        id integer,
        IP text,
        time timestamp
    ) with (TTL='7 days',PERIOD='1 day')
    partition by range(time)
    (
        PARTITION P1 VALUES LESS THAN('2023-02-13 16:32:45'),
        PARTITION P2 VALUES LESS THAN('2023-02-15 16:48:12')
    );
    

    Ao criar uma tabela de gerenciamento de partição, você pode especificar apenas a chave de partição, mas não partições. Nesse caso, duas partições padrão serão criadas com period como o intervalo de tempo da partição. A hora limite da primeira partição padrão é a primeira hora, dia, semana, mês ou ano após a hora atual. A unidade de tempo é selecionada com base na unidade máxima de PERIOD. O tempo limite da segunda partição padrão é o tempo limite da primeira partição mais o PERIOD. Suponha que a hora atual é 2023-02-17 16:32:45 e o limite da primeira partição padrão é descrito na tabela a seguir.

    Tabela 2 Descrição do parâmetro período

    Período

    Unidade do PERIOD máximo

    Limite da primeira partição padrão

    1 hora

    hora

    2023-02-17 17:00:00

    1 dia

    Dia

    18/02/2023 00:00:00

    1 mês

    Mês

    01/03/2023 00:00:00

    13 meses

    Ano

    01/01/2024 00:00:00

    Execute o seguinte comando para criar a tabela de gerenciamento de partições CPU2 sem partições especificadas:

    1
    2
    3
    4
    5
    6
    CREATE TABLE CPU2(
        id integer,
        IP text,
        time timestamp
    ) with (TTL='7 days',PERIOD='1 day')
    partition by range(time);
    
  • Execute o comando ALTER TABLE RESET para definir period e ttl.

    Esse método é usado para adicionar a função de gerenciamento de partição a uma tabela particionada comum que atenda às restrições de gerenciamento de partição.

    • Execute o seguinte comando para criar uma tabela de partição comum CPU3:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      CREATE TABLE CPU3(
          id integer,
          IP text,
          time timestamp
      ) 
      partition by range(time)
      (
          PARTITION P1 VALUES LESS THAN('2023-02-14 16:32:45'),
          PARTITION P2 VALUES LESS THAN('2023-02-15 16:56:12')
      );
      
    • Para ativar as funções automáticas de criação e exclusão de partições, execute o seguinte comando:
      1
      ALTER TABLE CPU3 SET (PERIOD='1 day',TTL='7 days');
      
    • Para ativar apenas a função de criação automática de partição, execute o seguinte comando:
      1
      ALTER TABLE CPU3 SET (PERIOD='1 day');
      
    • Para ativar apenas a função de exclusão automática de partição, execute o seguinte comando (Se a criação automática de partição não estiver ativada antecipadamente, a operação falhará):
      1
      ALTER TABLE CPU3 SET (TTL='7 days');
      
    • Modifique os parâmetros period e ttl para alterar a função de gerenciamento de partição.
      1
      ALTER TABLE CPU3 SET (TTL='10 days',PERIOD='2 days');
      
  • Desativar a função de gerenciamento de partição

    Você pode executar o comando ALTER TABLE RESET para excluir os parâmetros de nível de tabela period e ttl para desativar a função de gerenciamento de partição.

    • O period não pode ser excluído separadamente com TTL.
    • A tabela de séries temporais não suporta ALTER TABLE RESET. ​
    • Execute o seguinte comando para desabilitar as funções automáticas de criação e exclusão de partições:
      1
      ALTER TABLE CPU1 RESET (PERIOD,TTL);
      
    • Para desabilitar apenas a exclusão automática de partição, execute o seguinte comando:
      1
      ALTER TABLE CPU3 RESET (TTL);
      
    • Para desabilitar apenas a função de criação automática de partições, execute o seguinte comando (Se a tabela contiver o parâmetro ttl, a operação falhará):
      1
      ALTER TABLE CPU3 RESET (PERIOD);