Antes de arquivar dados frios, confirme o formato de arquivamento desejado e verifique se o cluster atende aos requisitos. Para mais informações, consulte Archive format comparison e Prerequisites.
Escopo de aplicação
-
Arquivamento no formato CSV
-
A edição do cluster é Cluster Edition:
-
Arquivar uma tabela padrão:
MySQL 8.0.1 com revisão 8.0.1.1.47 ou posterior.
MySQL 8.0.2 com revisão 8.0.2.2.10 ou posterior.
-
Arquivar uma tabela particionada:
MySQL 8.0.2 com revisão 8.0.2.2.34.1 ou posterior.
-
-
A edição do cluster é Multi-master Cluster (Limitless) Edition:
MySQL 8.0.1 com revisão 8.0.1.0.13 ou posterior.
-
-
Arquivamento no formato ORC
-
A edição do cluster é Cluster Edition:
Arquivar uma tabela padrão: MySQL 8.0.2 com revisão 8.0.2.2.30 ou posterior.
Arquivar uma tabela particionada: MySQL 8.0.2 com revisão 8.0.2.2.34.1 ou posterior.
A edição do cluster é Multi-master Cluster (Limitless) Edition: MySQL 8.0.2 com revisão 8.0.2.2.30 ou posterior.
-
-
Arquivamento no formato IBD
Basic Edition: MySQL 8.0.1 com revisão 8.0.1.1.51.2 ou posterior.
Advanced Edition: MySQL 8.0.2 com revisão 8.0.2.2.37 ou posterior. O tipo de armazenamento deve ser PSL4 ou PSL5. Discos cloud ESSD não são compatíveis.
-
Arquivamento no formato X-Engine
-
Arquivar uma tabela padrão:
MySQL 8.0.1 com revisão 8.0.1.1.31 ou posterior.
MySQL 8.0.2 com revisão 8.0.2.2.12 ou posterior.
Arquivar uma tabela particionada: MySQL 8.0.2 com revisão 8.0.2.2.12 ou posterior.
Arquivar em um(a) X-Engine column-store table: MySQL 8.0.2 com revisão 8.0.2.2.34.1 ou posterior.
-
Parâmetros
Ao utilizar o recurso de arquivamento de dados frios, você pode configure os parâmetros a seguir na página Parameters do seu cluster, de acordo com suas necessidades de negócio.
|
Parâmetro |
Nível |
Descrição |
|
|
Global |
Controle de ativação do recurso de arquivamento automático de dados frios (DLM). Valores válidos:
Nota
|
|
|
Global |
Controla a permissão para criar ou arquivar tabelas particionadas que contêm partições com mecanismos diferentes do InnoDB. Valores válidos:
Nota
|
|
|
Global / Session |
Controla se o gerenciamento de metadados (meta) do OSS está ativado para tabelas OSS. O parâmetro
|
|
|
Global / Session |
Controla se a filtragem em nível de arquivo (File Filter) está ativada ao consultar tabelas OSS. Esse recurso utiliza estatísticas min/max e filtros Bloom para ignorar arquivos de dados irrelevantes e reduzir a quantidade de dados do OSS verificados. Para funcionar, o parâmetro
|
|
|
Global / Session |
Controle de ativação da poda automática de partições OSS arquivadas pelo recurso Data Lifecycle Management (DLM). Quando operações DML (UPDATE/DELETE) são executadas, o sistema poda automaticamente as partições que estão em processo de arquivamento para o OSS (ORC/CSV) e as partições já arquivadas no OSS. Isso evita que operações DML sejam bloqueadas pelo arquivamento e resolve conflitos entre DML e DDL. Valores válidos:
|
|
|
Global / Session |
Controle de ativação da poda automática de consultas. Quando uma consulta SELECT é executada, o sistema poda automaticamente as partições OSS (ORC/CSV) para evitar consultas lentas causadas pelo acesso a dados frios. Valores válidos:
|
Arquivar dados frios
-
Arquivar no OSS: primeiro, você deve enable cold data archiving. Ao arquivar dados frios, é possível optar por arquivar tabelas comuns ou tabelas particionadas.
-
Tabelas comuns
-
Tabelas particionadas
Você pode arquivar manualmente partições específicas de uma tabela particionada no local ou arquivá-las em uma tabela externa do OSS. Para mais informações, consulte Archive partitions in place ou Archive partitions to an OSS external table.
Crie uma política de gerenciamento do ciclo de vida dos dados (DLM) para arquivar dados frios automaticamente. Para mais informações, consulte Automatically archive cold data.
-
-
Arquivar no X-Engine: primeiro, você deve enable cold data archiving e o high-compression engine (X-Engine). Ao arquivar dados frios, é possível optar por arquivar tabelas comuns ou tabelas particionadas.
-
Tabelas comuns
-
Tabelas particionadas
Você pode arquivar manualmente partições específicas de uma tabela particionada em partições X-Engine. Para mais informações, consulte Archive data to X-Engine.
Crie uma política de gerenciamento do ciclo de vida dos dados (DLM) para arquivar dados frios automaticamente. Para mais informações, consulte Archive partitioned tables to X-Engine.
-
Consultar dados frios
-
Tabelas comuns
Independentemente do formato de arquivamento escolhido, você pode consultar os dados arquivados sem alterar a forma de acesso à tabela.
-
Tabelas particionadas
Arquivar em uma tabela externa OSS: A consulta desses dados exige um método de acesso diferente: é necessário consultar a tabela de arquivamento especificada. Para mais informações, consulte Archive partitions to an OSS external table.
-
Arquivar partições no local: A tabela se torna uma tabela particionada híbrida após o arquivamento. Para mais informações, consulte Query hybrid partitions.
Existem três formas de consultar partições em diferentes mecanismos de armazenamento:
-
Defina o parâmetro
hybrid_partition_query_mix_engine_enabledcomo ON. As consultas retornarão dados das partições InnoDB, X-Engine e OSS. Exemplo:-- t1 is a hybrid partitioned table. SELECT * FROM t1; -
Defina o parâmetro
hybrid_partition_query_mix_engine_enabledcomo OFF. As consultas retornarão dados apenas das partições InnoDB e X-Engine. Exemplo:-- t1 is a hybrid partitioned table. SELECT * FROM t1; -
Consulte uma partição específica pelo nome. Essa abordagem recupera dados da partição especificada, independentemente do mecanismo de armazenamento. Exemplo:
-- t1 is a hybrid partitioned table, and p1 is the name of the partition to query. SELECT * FROM t1 partition (p1);
-
O sistema armazena os dados frios arquivados em um formato de múltiplos arquivos para cada tabela. Para otimizar o desempenho das consultas, utilize uma consulta paralela. Para mais informações, consulte Parallel query on cold data.
Modificar dados frios
Para modificar dados frios armazenados no Object Storage Service (OSS) com pouca frequência, utilize a instrução ALTER para movê-los de volta ao espaço de armazenamento do PolarDB. O sistema exclui automaticamente os dados do OSS. Após a modificação, você pode arquivar os dados da tabela no OSS novamente.
Tabelas comuns
Sintaxe
ALTER TABLE table_name ENGINE[=]engine_name;
Parâmetros
|
Parâmetro |
Descrição |
|
table_name |
Nome da tabela OSS a ser movida de volta ao espaço de armazenamento do PolarDB. |
|
engine_name |
Mecanismo de armazenamento a ser utilizado após a tabela ser movida de volta. |
Observações de uso
As tabelas OSS são somente leitura. Não é possível modificá-las com instruções INSERT,UPDATE ou DELETE. Para modificar dados frios arquivados, converta a tabela OSS em uma tabela de leitura e gravação, como uma tabela InnoDB. Ao tentar modificar uma tabela OSS somente leitura, o seguinte erro é retornado:
1036 - Table 't' is read only
Exemplo
Mova a tabela OSS t do banco de dados oss_test de volta ao espaço de armazenamento do PolarDB.
ALTER TABLE `oss_test`.`t` ENGINE = InnoDB;
Modifique os dados na tabela InnoDB t. Após concluir a modificação, arquive a tabela t do mecanismo InnoDB de volta ao OSS. Exemplo:
ALTER TABLE t ENGINE = CSV CONNECTION = 'default_oss_server';
ou
ALTER TABLE t ENGINE = CSV STORAGE OSS;
Tabelas particionadas
Para modificar dados frios em uma tabela particionada, o cluster PolarDB for MySQL deve ter a versão 8.0.2 com versão de revisão 8.0.2.2.34 ou posterior.
Sintaxe
ALTER TABLE table_name REORGANIZE PARTITION part_name INTO (partition_definition);
Parâmetros
|
Parâmetro |
Descrição |
|
table_name |
Nome da tabela OSS a ser movida de volta. |
|
part_name |
Nome da partição a ser movida de volta. |
|
partition_definition |
Deve ser consistente com a |
Exemplo
Mova os dados da partição p1 da tabela particionada t, arquivada no OSS, de volta ao espaço de armazenamento do PolarDB.
ALTER TABLE t REORGANIZE PARTITION p1 INTO(PARTITION p1 values less than(100));
Excluir dados frios
-
Este recurso é compatível apenas com clusters PolarDB for MySQL que executam as seguintes versões:
Versão 8.0.1, com versão secundária 8.0.1.1.42 ou posterior.
Versão 8.0.2, com versão secundária 8.0.2.2.23 ou posterior.
Se a versão secundária do seu cluster não atender aos requisitos acima, não será possível excluir os arquivos correspondentes no OSS. Atualize a versão secundária do cluster. Para mais informações, consulte minor version management.
Após excluir uma tabela no OSS ou importá-la de volta para o espaço de armazenamento do PolarDB, os arquivos no OSS não são excluídos automaticamente. Depois de confirmar que os dados não são mais necessários, exclua os arquivos correspondentes no OSS conforme descrito a seguir. Para mais informações, consulte Delete the corresponding files on OSS.
-
Tabelas comuns e tabelas externas do OSS
Use
DROP TABLEpara excluir a tabela arquivada. Em seguida, execute o comandoCALL dbms_oss.delete_table_file('database_name', 'table_name');para excluir os arquivos correspondentes no OSS. -
Tabelas particionadas
Execute o comando
CALL dbms_oss.delete_table_file('database_name', 'table_name');para excluir os arquivos correspondentes no OSS.
A operação de exclusão dos arquivos correspondentes no OSS é assíncrona. Os arquivos são completamente removidos somente quando todos os nós do cluster deixam de depender deles. Esse processo pode sofrer atrasos em períodos de tráfego intenso.
A opção FORCE STORAGE OSS
A opção FORCE STORAGE OSS para exclusão forçada de arquivos do OSS é compatível apenas com clusters PolarDB for MySQL 8.0.2 com versão secundária 8.0.2.2.29 ou posterior.
-
Tabelas comuns e tabelas externas do OSS
DROP TABLE table_name [FORCE STORAGE OSS];NotaA opção FORCE STORAGE OSS do comando DROP TABLE oferece um recurso de limpeza com um único clique. Ela exclui automaticamente os arquivos de armazenamento do OSS associados ao excluir a estrutura da tabela.
-
Tabelas particionadas
ALTER TABLE table_name DROP PARTITION part_name [FORCE STORAGE OSS];NotaA cláusula DROP PARTITION da instrução ALTER TABLE, quando utilizada com a opção FORCE STORAGE OSS, permite excluir de forma síncrona os metadados de uma tabela particionada e os arquivos de armazenamento correspondentes no OSS.
-
CHANGE PARTITION ENGINE
ALTER TABLE table_name CHANGE PARTITION part_name ENGINE = CSV|ORC [FORCE STORAGE OSS]NotaO recurso de arquivamento de dados frios do CHANGE PARTITION ENGINE fornece um mecanismo de sobrescrita forçada que substitui automaticamente arquivos com o mesmo nome.
Comparação de formatos de arquivamento
Ao arquivar dados frios, avalie e selecione o formato mais adequado com base na comparação a seguir.
O arquivamento de tabelas padrão, tabelas externas OSS e tabelas particionadas possui limitações específicas. Revise essas limitações antes de arquivar para evitar impactos no seu negócio.
Após o arquivamento dos dados frios, eles são armazenados no bucket padrão do Object Storage Service (OSS) fornecido pelo sistema, e não no seu próprio OSS. Atualmente, é possível visualizar a lista de dados arquivados apenas no console do PolarDB.
-
Métodos de arquivamento de tabelas particionadas:
Arquivar uma tabela particionada: Arquiva uma partição no local. Os dados permanecem na tabela original, mas o meio de armazenamento dessa partição muda de PolarDB (armazenamento quente) para OSS (armazenamento frio). A tabela se torna uma tabela particionada híbrida contendo partições quentes e frias.
Arquivar uma partição em uma tabela externa OSS: Move os dados de uma partição para fora da tabela e os armazena em uma nova tabela externa OSS independente. A partição original é excluída da tabela de origem.
|
Item de comparação |
CSV |
ORC |
IBD |
X-Engine |
|
Formato de código aberto |
Sim |
Sim |
Não |
Não |
|
Método de arquivamento |
|
Arquivamento manual: |
Arquivamento manual:
|
|
|
Velocidade de arquivamento |
Média Nota
Apenas arquivamento single-threaded é suportado. |
Lenta Nota
Apenas arquivamento single-threaded é suportado. |
Relativamente rápida Nota
O arquivamento single-threaded e multi-threaded paralelo são suportados. |
Rápida Nota
Os dados são arquivados no armazenamento PolarStore. |
|
Velocidade de consulta |
Nota
Leituras single-threaded e multi-threaded são suportadas. |
Nota
Apenas leituras single-threaded são suportadas. |
Relativamente rápida Nota
Leituras single-threaded e multi-threaded são suportadas. |
|
|
Suporte a transações |
Não |
Não |
Sim |
Sim |
|
Capacidade de indexação |
Não |
Não |
Sim |
Sim |
|
Como modificar dados arquivados |
Tabelas arquivadas no OSS são somente leitura. Para modificar os dados, é necessário importá-los de volta do OSS para o armazenamento do PolarDB. |
Tabelas arquivadas suportam operações DML. |
Tabelas arquivadas suportam operações DML. |
|
|
Uso de espaço de armazenamento |
Igual a uma tabela InnoDB sem índices. |
Para a mesma quantidade de dados, o ORC utiliza cerca de 45% do espaço de armazenamento do CSV. |
Igual a um arquivo IBD do InnoDB. |
Comprime os dados para 10%–50% do tamanho do InnoDB. A taxa real de compressão depende das características dos dados. |
|
Backup e recuperação |
Não suportado. Nota
|
Suportado. |
||
|
Impacto após o arquivamento |
|
|
|
Após o arquivamento, você pode consultar os dados arquivados sem alterar o método de acesso. |