Este tópico descreve como migrar um cluster ClickHouse autogerenciado para o ApsaraDB for ClickHouse Enterprise Edition usando o console ou manualmente.
Pré-requisitos
Cluster autogerenciado: Crie uma conta e senha de banco de dados. A conta deve ter permissões de leitura em bancos de dados e tabelas e privilégios de execução de comandos SYSTEM. Para migrar tabelas externas que incluam credenciais de conta, a conta também precisa do privilégio displaySecretsInShowAndSelect.
Cluster de destino: Crie uma conta e senha de banco de dados e garanta que a conta tenha os privilégios máximos.
-
Conectividade de rede
-
Se o cluster autogerenciado e o cluster de destino estiverem na mesma VPC, adicione os endereços IP de todos os nós do cluster de destino e os blocos CIDR IPv4 dos vSwitches dos nós à lista de permissões do cluster autogerenciado.
Para saber como configurar uma lista de permissões para um cluster ApsaraDB for ClickHouse, consulte Configure a whitelist.
Para configurar a lista de permissões do cluster autogerenciado, consulte a documentação do product correspondente.
Execute o comando
SELECT * FROM system.clusters WHERE internal_replication = 1;para consultar os endereços IP de todos os nós no cluster ApsaraDB for ClickHouse.
-
Se o cluster autogerenciado e o cluster de destino estiverem em VPCs diferentes, ou se o cluster autogerenciado estiver em um IDC local ou hospedado por outro provedor de cloud, resolva primeiro quaisquer problemas de conectividade de rede. Para mais informações, consulte Establish network connectivity between the target cluster and the data source.
NotaNeste cenário, use o mapeamento de IP para evitar conflitos de blocos CIDR entre diferentes VPCs. Se utilizar o mapeamento de IP, adicione também os endereços IP mapeados às listas de permissões de ambos os clusters.
-
Validação da migração
Antes de iniciar a migração de dados, recomendamos fortemente criar um ambiente de teste para validar a compatibilidade, o desempenho e a viabilidade da migração. Execute a migração de dados no ambiente de produção somente após concluir essa validação. Esta etapa é crucial para identificar e resolver possíveis problemas antecipadamente, garantindo uma migração tranquila e protegendo seu ambiente de produção.
Crie uma tarefa de migração para executar a migração de dados.
Analise gargalos de desempenho e verifique a viabilidade da migração.
-
Para validar a compatibilidade com a nuvem, use um dos seguintes métodos:
Validação manual: Consulte Compatibility Analysis and Resolution.
Validação pelo console: Consulte (Optional) Check SQL compatibility.
Métodos de migração
Método de migração | Vantagens | Desvantagens | Casos de uso |
Migração pelo console | Oferece um fluxo de trabalho visual que automatiza a migração de metadados. | Limitada à migração completa e incremental de todo o cluster; não suporta a migração de bancos de dados e tabelas específicos ou de um subconjunto de dados históricos. | Migração de um cluster inteiro. |
Migração manual | Proporciona controle granular sobre quais bancos de dados e tabelas migrar. | Envolve um procedimento complexo e exige migração manual de metadados. |
|
Procedimento
Migração pelo console
Considerações
Durante a migração
-
O processo de merge é pausado no cluster de destino para os bancos de dados e tabelas em migração, mas continua no cluster autogerenciado.
NotaSe uma tarefa de migração demorar muito, pode haver acúmulo excessivo de metadados no cluster de destino. A duração recomendada para uma tarefa de migração é de no máximo 5 dias. O sistema cancela automaticamente tarefas que excedem esse limite.
O cluster de destino deve usar o cluster
default. Se o seu cluster autogerenciado usar um nome diferente, o sistema converterá automaticamente a definição do cluster em qualquer tabela distribuída paradefault.
Conteúdo suportado
O processo de migração converte as estruturas de banco de dados e tabelas para alguns engines. Para detalhes sobre as conversões de engine, consulte as tabelas abaixo.
-
Estrutura do banco de dados: A tabela a seguir lista os tipos de engine de banco de dados suportados.
Nome do engine
Descrição da conversão
AtomicSubstituído pelo engine
ReplicatedReplicatedSem alteração
OrdinarySubstituído pelo engine
Replicated -
Estrutura da tabela: A tabela a seguir lista os tipos de engine de tabela suportados.
Nome do engine
Descrição da conversão
MaterializedViewSem alteração
ViewGenerateRandomBufferURLNullMergeSharedMergeTreeSharedVersionedCollapsingMergeTreeSharedSummingMergeTreeSharedReplacingMergeTreeSharedAggregatingMergeTreeSharedCollapsingMergeTreeSharedGraphiteMergeTreeMergeTreeSubstituído por
SharedMergeTreeReplicatedMergeTreeVersionedCollapsingMergeTreeSubstituído por
SharedVersionedCollapsingMergeTreeReplicatedVersionedCollapsingMergeTreeSummingMergeTreeSubstituído por
SharedSummingMergeTreeReplicatedSummingMergeTreeReplacingMergeTreeSubstituído por
SharedReplacingMergeTreeReplicatedReplacingMergeTreeAggregatingMergeTreeSubstituído por
SharedAggregatingMergeTreeReplicatedAggregatingMergeTreeReplicatedCollapsingMergeTreeSubstituído por
SharedCollapsingMergeTreeCollapsingMergeTreeGraphiteMergeTreeSubstituído por
SharedGraphiteMergeTreeReplicatedGraphiteMergeTree Dados: A migração incremental é suportada para dados em tabelas da família
MergeTree.
O sistema pode migrar automaticamente as estruturas de banco de dados e tabelas listadas acima. Quaisquer outras estruturas devem ser tratadas manualmente com base nos avisos e erros encontrados durante a migração.
Se seus dados não atenderem a essas condições, realize uma migração manual.
Impacto no cluster
-
Cluster autogerenciado
A leitura de dados do cluster autogerenciado aumenta o uso de CPU e memória.
Operações DDL não são permitidas.
-
Cluster de destino
A gravação de dados no cluster de destino aumenta o uso de CPU e memória.
Operações DDL não são permitidas nos bancos de dados e tabelas incluídos na migração. Essa restrição não se aplica a bancos de dados e tabelas fora da migração.
O processo de merge é pausado para as tabelas e bancos de dados em migração. Isso não afeta outras tabelas e bancos de dados.
Após a conclusão da migração, o cluster executa operações frequentes de merge por um período. Isso aumenta a utilização de I/O e pode elevar a latência nas requisições de negócio. Para mitigar o impacto potencial, Calcule o tempo de merge após a migração e planeje adequadamente.
Etapa 1: Verificar o cluster e ativar tabelas de sistema
Antes de iniciar a migração de dados, configure o arquivo config.xml no seu cluster autogerenciado para habilitar a migração incremental. A configuração depende se as tabelas de sistema system.part_log e system.query_log já estão ativadas.
Se as tabelas de sistema não estiverem ativadas
Se você não tiver ativado system.part_log e system.query_log, adicione as seguintes configurações ao arquivo config.xml.
system.part_log
<part_log>
<database>system</database>
<table>part_log</table>
<partition_by>event_date</partition_by>
<order_by>event_time</order_by>
<ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</part_log>
system.query_log
<query_log>
<database>system</database>
<table>query_log</table>
<partition_by>event_date</partition_by>
<order_by>event_time</order_by>
<ttl>event_date + INTERVAL 15 DAY DELETE</ttl>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>
Se as tabelas de sistema estiverem ativadas
-
Garanta que as configurações de
system.part_logesystem.query_logno arquivo config.xml correspondam ao conteúdo a seguir. Inconsistências podem causar falha na migração de dados ou torná-la lenta.system.part_log
<part_log> <database>system</database> <table>part_log</table> <partition_by>event_date</partition_by> <order_by>event_time</order_by> <ttl>event_date + INTERVAL 15 DAY DELETE</ttl> <flush_interval_milliseconds>7500</flush_interval_milliseconds> </part_log>system.query_log
<query_log> <database>system</database> <table>query_log</table> <partition_by>event_date</partition_by> <order_by>event_time</order_by> <ttl>event_date + INTERVAL 15 DAY DELETE</ttl> <flush_interval_milliseconds>7500</flush_interval_milliseconds> </query_log> Após modificar a configuração, execute as instruções
drop table system.part_logedrop table system.query_log. A inserção de dados em uma tabela de negócio recria automaticamente as tabelassystem.part_logesystem.query_log.
Etapa 2: Configurar a compatibilidade do cluster
Para garantir que o cluster de destino seja o mais compatível possível com o cluster autogerenciado, conecte-se ao cluster de destino e modifique o parâmetro compatibility para corresponder à versão do seu cluster autogerenciado.
Definir a compatibilidade para uma versão anterior desativa alguns novos recursos, como ParallelReplica.
Por exemplo:
SELECT currentProfiles(); // Get the current profile name.
SELECT
profile_name,
setting_name,
value
FROM system.settings_profile_elements
WHERE (setting_name = 'compatibility') AND (profile_name = 'xxxx'); // Check the value of the compatibility setting.
ALTER PROFILE XXXX SETTINGS compatibility = '23.8'; // Set the compatibility value.
Etapa 3: Criar uma tarefa de migração
Faça login no console do ApsaraDB for ClickHouse. Na página Clusters, selecione Enterprise Edition Clusters e clique em ID do cluster de destino.
No painel de navegação, escolha .
Clique em Create Migration Task.
-
Selecione as instâncias de origem e de destino.
Parâmetro
Descrição
Exemplo
Task Name
Um nome único e sem distinção entre maiúsculas e minúsculas para a tarefa de migração. O nome pode conter apenas letras e dígitos.
MigrationTask1229
Source Cluster Name
Execute
SELECT * FROM system.clusters;para obter o nome do seu cluster autogerenciado.default
VPC IP Address
Os endereços IP e portas para cada shard no cluster, separados por vírgulas. Formato:
IP:PORT,IP:PORT,....Use a seguinte instrução SQL para obter os endereços IP e portas do seu cluster autogerenciado:
SELECT shard_num, replica_num, host_address as ip, port FROM system.clusters WHERE cluster = '<cluster_name>' and replica_num = 1;Descrição dos parâmetros:
cluster_name: O nome do seu cluster autogerenciado.
replica_num=1 seleciona o primeiro conjunto de réplicas. Você também pode selecionar outro conjunto de réplicas ou escolher manualmente uma réplica de cada shard.
ImportanteNão é possível usar o nome de domínio da VPC ou o endereço SLB do cluster ClickHouse.
Se você usar NAT para mapear endereços IP e portas para a Alibaba Cloud, configure os endereços IP e portas mapeados de acordo com sua configuração de rede.
192.168.0.5:9000,192.168.0.6:9000
Database Account
A conta de banco de dados para o cluster autogerenciado.
test
Database Password
A senha da conta de banco de dados do cluster autogerenciado.
test
Source Instance Kernel Version
Clique em Get Version.
22.8.5.29
-
Com base na versão da instância de origem, proceda da seguinte forma:
Se a versão da instância de origem for 22,10 ou posterior: Clique em Next.
Se a versão da instância de origem for anterior a 22,10: Insira as Destination Instance Information conforme solicitado e clique em Next.
Se a recuperação da versão falhar: Isso pode ocorrer se as informações da instância de origem estiverem incorretas ou se a rede estiver desconectada. Siga a instrução para resolver o problema e clique em Get Version novamente.
NotaDevido a incompatibilidades de parâmetros entre edições comunitárias anteriores e a Enterprise Edition, se a versão da instância de origem for anterior a 22,10, você deve sincronizar os dados enviando-os da origem para o destino. Neste cenário, é necessário mapear o endereço IP da instância de destino para a rede autogerenciada. Se a rede autogerenciada e a instância Enterprise Edition estiverem na mesma VPC, ou se estiverem conectadas através de uma VPC Peering Connection, use os endereços IP originais para a conexão.
-
Verifique a conectividade e as configurações.
-
Clique em Start Check.
Durante a verificação, clique em ícone
no canto superior direito para visualizar o progresso em tempo real.-
Após a conclusão da verificação, proceda com base nos resultados.
Selecione um Result level e um item de verificação, e clique em ícone
para visualizar os resultados correspondentes. Os níveis de resultado são descritos abaixo.Sucesso: Se todas as verificações forem aprovadas, clique em Next para continuar.
Aviso: São itens não bloqueantes. Confirme manualmente se o aviso afeta sua carga de trabalho ou a tarefa de migração. Ignore o aviso ou resolva o problema e clique em Start Check novamente.
-
Erro: São itens bloqueantes. Resolva o erro usando as informações fornecidas e clique em Start Check novamente.
Para informações sobre mensagens de erro e soluções, consulte FAQ.
-
-
Verifique as estruturas de banco de dados e tabelas.
Após a aprovação da verificação de conectividade e configuração, prossiga para verificar as estruturas de banco de dados e tabelas. Esta etapa consiste em três subetapas: Selecionar bancos de dados para migrar, Selecionar tabelas para migrar e Verificar estruturas de banco de dados e tabelas.
ImportanteAs subetapas Selecionar bancos de dados para migrar e Selecionar tabelas para migrar são opcionais. Se desejar migrar todos os bancos de dados e tabelas da instância de origem, pule essas duas subetapas e vá diretamente para a subetapa 3 (Verificar estruturas de banco de dados e tabelas).
Subetapa 1: Selecionar bancos de dados para migrar (Opcional)
Clique em Query Source. O sistema consulta automaticamente todos os bancos de dados na instância de origem.
Durante a consulta, clique em Query Results para visualizar os resultados em tempo real.
Após a conclusão da consulta, selecione os bancos de dados a serem migrados conforme suas necessidades de negócio. Após concluir a seleção, clique em Confirm.
Subetapa 2: Selecionar tabelas para migrar (Opcional)
Após selecionar os bancos de dados, a interface para seleção de tabelas será exibida. Clique em Query Source. O sistema consulta automaticamente todas as tabelas nos bancos de dados selecionados.
Durante a consulta, clique em Query Results para visualizar os resultados em tempo real.
Após a conclusão da consulta, selecione as tabelas a serem migradas conforme suas necessidades de negócio. Após concluir a seleção, clique em Confirm.
NotaPor padrão, todas as tabelas são selecionadas. Se precisar migrar apenas tabelas específicas, desmarque a caixa de seleção geral do banco de dados correspondente, expanda a lista suspensa e selecione as tabelas desejadas.
Subetapa 3: Verificar estruturas de banco de dados e tabelas
Clique em Start Check. O sistema verifica as estruturas de banco de dados, estruturas de tabelas e UDFs para identificar incompatibilidades entre as instâncias de origem e de destino.
Durante a verificação, filtre por Result Level e Check Item, e clique em ícone Refresh para visualizar resultados em tempo real.
-
Os resultados da verificação são classificados em três níveis: sucesso, aviso e erro.
Verificação bem-sucedida: Clique em Next para prosseguir com a migração.
-
Ocorrência de avisos durante a verificação
Defina o nível de resultado como Warning e localize os itens de verificação correspondentes para revisar os detalhes do aviso.
ImportanteItens de verificação de nível de aviso não são bloqueantes. Confirme se o aviso afeta sua carga de trabalho ou a tarefa de migração. Após a confirmação, você tem duas opções:
Ignore o aviso e clique em Next para continuar a migração.
Resolva o aviso com base nos detalhes fornecidos e clique em Start Check para reverificar as estruturas de banco de dados e tabelas. Para informações sobre mensagens de aviso e soluções, consulte a seção FAQ deste tópico.
-
Falha na verificação
Defina o nível de resultado como Error e localize os itens de verificação correspondentes para revisar os detalhes do erro.
ImportanteItens de verificação de nível de erro são bloqueantes. Resolva os erros com base nos detalhes fornecidos e clique em Start Check para reverificar as estruturas de banco de dados e tabelas. Para informações sobre mensagens de erro e soluções, consulte a seção FAQ deste tópico.
-
Migre as estruturas de banco de dados e tabelas.
Clique em Start Migration.
Durante a migração, clique em ícone
no canto superior direito para visualizar o progresso em tempo real.-
Após a conclusão da migração, proceda com base nos resultados.
Para informações sobre os resultados, consulte a Etapa 5.
-
(Opcional) Verifique a compatibilidade de SQL.
A verificação de compatibilidade de SQL reproduz instruções SQL da sua instância autogerenciada na instância de destino para validar a compatibilidade de sintaxe entre diferentes versões de kernel.
Para pular esta etapa, clique em skip.
-
Para realizar esta verificação, selecione um Request replay time e clique em Start Check. Se a verificação for aprovada, clique em Next. Se a verificação falhar, consulte a Etapa 5 para soluções.
ImportanteOs bancos de dados e tabelas da instância não contêm dados, portanto, esta verificação valida apenas a compatibilidade de sintaxe. Para testar com dados, migre alguns dados na próxima etapa.
Discrepâncias entre a versão do cliente usada para reprodução de SQL e a instância de destino podem causar falsos positivos. Se ocorrerem erros, execute as instruções SQL manualmente para verificar os resultados.
-
Registre e limpe as tabelas de engine Kafka/RabbitMQ.
Antes de iniciar a sincronização, registre as definições das tabelas de engine Kafka/RabbitMQ e suas materialized views dependentes no cluster autogerenciado, trate as tabelas implícitas e exclua essas tabelas para evitar exceções de migração.
-
Faça login no cluster autogerenciado e consulte todas as tabelas de engine Kafka e RabbitMQ juntamente com suas dependências downstream.
/* create_table_query: table definition dependencies_database: database of the downstream dependent table dependencies_table: name of the downstream dependent table From dependencies_database and dependencies_table, you can identify the materialized views that depend on the Kafka/RabbitMQ tables. */ SELECT * FROM system.tables WHERE engine IN ('RabbitMQ', 'Kafka'); -
Visualize as definições das materialized views e verifique se suas tabelas de destino são tabelas implícitas.
/* View the materialized view definition. If the target table of a materialized view is an implicit table, note the following: Dropping the materialized view also drops the implicit table, which causes data loss. Example: In CREATE MATERIALIZED VIEW [db.]table_name [TO[db.]name], if TO is not specified, the system automatically creates an implicit table, which may be in the format '.inner_id.<TABLE_UUID>' or '.inner.<TABLE>'. */ SELECT * FROM system.tables WHERE database='<DATABASE>' AND name = '<MATERIALIZED_VIEW_NAME>'; -
Se a tabela de destino de uma materialized view for uma tabela implícita, renomeie-a para evitar perda de dados quando a materialized view for excluída posteriormente.
-- Rename the implicit target table to preserve data RENAME TABLE <DATABASE>.`.inner_id.<TABLE_UUID>` TO <DATABASE>.<new_target_table_name>; -
Exclua as tabelas de engine Kafka/RabbitMQ e suas materialized views dependentes.
-- Drop the materialized views first DROP TABLE <DATABASE>.<MATERIALIZED_VIEW_NAME>; -- Then drop the Kafka/RabbitMQ engine tables DROP TABLE <DATABASE>.<KAFKA_OR_RABBITMQ_TABLE_NAME>;
ImportanteCertifique-se de salvar todas as instruções DDL registradas. Você precisará delas para recriar essas tabelas tanto no cluster autogerenciado quanto no cluster de destino posteriormente. Se realizou a operação RENAME, use a cláusula TO para apontar para a tabela de destino renomeada ao recriar as materialized views.
-
-
Inicie a sincronização.
Clique em Start Sync.
-
Durante a sincronização, clique em ícone
no canto superior direito para visualizar o progresso em tempo real. -
No cluster autogerenciado, use as instruções DDL salvas anteriormente para recriar as tabelas de engine Kafka/RabbitMQ e suas materialized views dependentes. Após a recriação, os dados incrementais voltam a fluir e são sincronizados automaticamente com o cluster de destino.
ImportanteSe você realizou a operação RENAME na tabela de destino implícita anteriormente, use a cláusula TO para apontar para a tabela de destino renomeada ao recriar as materialized views. Para mais informações, consulte CREATE MATERIALIZED VIEW.
CREATE MATERIALIZED VIEW [db.]table_name [TO[db.]name].
-- Recreate the Kafka/RabbitMQ engine table on the self-managed cluster CREATE TABLE <DATABASE>.<KAFKA_OR_RABBITMQ_TABLE_NAME> (...) ENGINE = Kafka/RabbitMQ SETTINGS ...; -- Recreate the materialized view (pointing to the renamed target table) CREATE MATERIALIZED VIEW <DATABASE>.<MATERIALIZED_VIEW_NAME> TO <DATABASE>.<new_target_table_name> AS SELECT ... FROM <DATABASE>.<KAFKA_OR_RABBITMQ_TABLE_NAME>; -
Quando o processo atingir a etapa Migrate data, mude para a aba Migrate data e clique em ícone
para visualizar o Migration Progress e o Estimated remaining time.ImportanteMonitore atentamente o Migration Progress. Com base no Estimated remaining time, pare proativamente as gravações no cluster autogerenciado e trate as tabelas que usam os engines Kafka e RabbitMQ.
O processo em segundo plano cancela automaticamente qualquer tarefa que dure mais de 5 dias. Se sua tarefa de migração exigir mais tempo, abra um ticket para solicitar um ajuste de limiar.
-
Quando o Migration Progress atingir 100% e você confirmar que as gravações na instância de origem foram interrompidas, clique em Stop para encerrar a migração de dados e prosseguir para as próximas etapas.
Clique em aba Migrate Data para visualizar os detalhes da migração. Clique em ícone de atualização no canto superior direito para atualizar o status da migração.
-
Após a conclusão da sincronização, clique em Completed.
ImportanteApós a conclusão da etapa Start Synchronization, a tarefa de migração fica bloqueada e você não pode modificar o processo de migração. Ainda é possível usar os botões Previous, Next ou Refresh para visualizar os resultados das etapas concluídas.
Etapa 4: Migrar dados para tabelas não-MergeTree
Durante uma tarefa de migração, tabelas não-MergeTree suportam apenas a migração da estrutura da tabela (por exemplo, tabelas MySQL) ou não suportam migração alguma (por exemplo, tabelas Log). Portanto, após a conclusão da tarefa de migração, o cluster de destino pode conter tabelas com estrutura, mas sem dados de negócio. Migre manualmente os dados de negócio da seguinte forma:
-
Faça login no cluster autogerenciado e identifique as tabelas não-MergeTree que requerem migração de dados.
SELECT `database` AS database_name, `name` AS table_name, `engine` FROM `system`.`tables` WHERE (`engine` NOT LIKE '%MergeTree%') AND (`engine` != 'Distributed') AND (`engine` != 'MaterializedView') AND (`engine` NOT IN ('Kafka', 'RabbitMQ')) AND (`database` NOT IN ('system', 'INFORMATION_SCHEMA', 'information_schema')) AND (`database` NOT IN ( SELECT `name` FROM `system`.`databases` WHERE `engine` IN ('MySQL', 'MaterializedMySQL', 'MaterializeMySQL', 'Lazy', 'PostgreSQL', 'MaterializedPostgreSQL', 'SQLite') )) Faça login no cluster de destino e use a função remote para migrar os dados.
Migração manual
Migrar de ClickHouse autogerenciado para Enterprise Edition
No ApsaraDB for ClickHouse Enterprise Edition, basta criar a tabela de destino correspondente, independentemente de sua tabela de origem ter shards ou réplicas. O sistema usa automaticamente o engine de tabela SharedMergeTree, permitindo omitir parâmetros complexos de engine na definição da tabela de destino. O cluster ApsaraDB for ClickHouse Enterprise Edition lida automaticamente com o dimensionamento vertical e horizontal, eliminando a necessidade de se preocupar com detalhes de implementação de replicação e sharding.
Visão geral
O procedimento a seguir descreve como migrar de um cluster ClickHouse autogerenciado para um cluster ApsaraDB for ClickHouse Enterprise Edition.
Adicione um usuário somente leitura ao cluster de origem.
Replique a estrutura da tabela de origem no cluster de destino.
Se o cluster de origem for acessível por uma rede externa, extraia (pull) os dados do cluster de origem para o cluster de destino. Caso contrário, envie (push) os dados do cluster de origem para o cluster de destino.
(Opcional) Remova o endereço IP do cluster de origem da lista de permissões do cluster de destino.
Remova o usuário somente leitura do cluster de origem.
Procedimento
-
Execute as seguintes operações no cluster de origem. Este procedimento pressupõe que a tabela de origem já contenha dados.
-
Adicione um usuário somente leitura para a tabela
db.table.CREATE USER exporter IDENTIFIED WITH SHA256_PASSWORD BY 'password-here' SETTINGS readonly = 1;GRANT SELECT ON db.table TO exporter; -
Copie a estrutura da tabela de origem.
SELECT create_table_query FROM system.tables WHERE database = 'db' and table = 'table'
-
-
Execute as seguintes operações no cluster de destino.
-
Crie um banco de dados.
CREATE DATABASE db -
Use a instrução
CREATE TABLEda tabela de origem para criar a tabela de destino.NotaAo executar a instrução
CREATE TABLE, altere oENGINEparaSharedMergeTreee omita quaisquer parâmetros. O cluster ApsaraDB for ClickHouse Enterprise Edition sempre replica a tabela e fornece os parâmetros corretos. As cláusulasORDER BY,PRIMARY KEY,PARTITION BY,SAMPLE BY,TTLeSETTINGSdefinem a estrutura e os metadados da tabela. Mantenha essas cláusulas para garantir que a tabela seja criada corretamente no cluster ApsaraDB for ClickHouse Enterprise Edition de destino.CREATE TABLE db.table ... -
Use a função
Remotepara extrair (pull) ou enviar (push) dados.NotaSe o servidor ClickHouse de origem não for acessível por uma rede externa, envie (push) os dados do cluster de origem em vez de extraí-los (pull) do cluster de destino. A função
Remotesuporta operações deSELECT(pull) eINSERT(push).-
No cluster de destino, use a função
Remotepara extrair dados da tabela de origem.
INSERT INTO db.table SELECT * FROM remote('source-hostname:9000', db, table, 'exporter', 'password-here') -
No cluster de origem, use a função
Remotepara enviar dados para o cluster de destino.
NotaAdicione os endereços IP do cluster de origem à lista de permissões do cluster de destino para permitir que a função
Remotese conecte ao seu cluster ApsaraDB for ClickHouse Enterprise Edition. Para mais informações, consulte Configure an allow list.INSERT INTO FUNCTION remote('target-hostname:9000', 'db.table', 'default', 'PASS') SELECT * FROM db.table
-
-
FAQ
Erros de conectividade e configuração
Mensagem de erro | Descrição | Solução |
| A conexão de rede com o cluster autogerenciado expirou. | Use a mensagem de erro para solucionar o problema de rede. |
| O cluster especificado na configuração da tarefa de migração não foi encontrado no cluster autogerenciado. | Consulte o cluster autogerenciado para obter o nome correto do cluster usando SQL e atualize a configuração da tarefa de migração. |
| Uma ou mais das seguintes tabelas de sistema estão ausentes no cluster autogerenciado: | Crie as tabelas de sistema ausentes no cluster autogerenciado. |
| O fuso horário do cluster autogerenciado não corresponde ao fuso horário do cluster de destino. | Alinhe as configurações de fuso horário dos clusters. |
| A configuração de | Ajuste a configuração de Importante Definir a compatibilidade para uma versão anterior desativa recursos como ParallelReplica. |
Erros de esquema de banco de dados e tabela
|
Mensagem de erro |
Descrição |
Solução |
|
|
Os esquemas de banco de dados e tabelas são inconsistentes entre os nós do cluster autogerenciado. |
Verifique os esquemas em cada nó do cluster autogerenciado e resolva quaisquer inconsistências. |
|
|
As senhas nos esquemas de banco de dados e tabelas estão ocultas. |
Defina o parâmetro Nota: Esta operação requer a permissão de conta displaySecretsInShowAndSelect. |
|
|
O processo de migração não suporta o engine de banco de dados do cluster autogerenciado. |
Altere o engine do banco de dados para um suportado pela instância de destino. |
|
|
O engine de banco de dados do cluster autogerenciado não é suportado para migração. |
Para contornar exceções de migração, o sistema substitui automaticamente o engine por um banco de dados Replicated. |
|
|
O engine de banco de dados do cluster autogerenciado não é suportado para migração. |
Use o Data Transmission Service (DTS) para sincronizar dados ou crie um banco de dados com o mesmo nome na instância de destino para contornar exceções de migração. |
|
|
A migração não é suportada para tabelas que usam certos engines. |
O processo de migração ignora automaticamente este engine. |
|
|
O uso do engine de tabela distribuída não é recomendado no ApsaraDB for ClickHouse Enterprise Edition. |
Exclua a tabela distribuída no cluster autogerenciado. Após a migração, consulte diretamente a tabela MergeTree subjacente. |
|
|
Este aviso sinaliza endereços IP potencialmente inacessíveis, mas não confirma um problema de acessibilidade. |
Garanta que a instância de destino possa alcançar os endereços IP referenciados. Caso contrário, estabeleça a conectividade e adicione os endereços IP à lista de permissões. |
|
|
Para tabelas que usam certos engines, apenas o esquema é migrado; a migração de dados não é suportada. |
Migre os dados manualmente, por exemplo, usando a função remote. |
|
|
A migração não é suportada para tabelas que usam certos engines. |
Crie uma tabela MergeTree com o mesmo nome na instância de destino e migre os dados manualmente. |
|
|
A migração não é suportada para tabelas que usam certos engines. |
Consulte a Etapa 4 na seção Procedimento. |
|
|
Para que a verificação de esquema seja bem-sucedida, a tabela correspondente na instância de destino deve estar vazia. |
Exclua os dados da tabela correspondente na instância de destino. |
|
|
Apenas funções definidas pelo usuário com |
Crie a função necessária manualmente na instância de destino. |
Outros
Para soluções de outros problemas de migração, consulte o FAQ.
