Todos os produtos
Search
Central de documentação

ApsaraDB for ClickHouse:Importar dados do ApsaraDB RDS for MySQL

Última atualização: Jun 28, 2026

Para executar análises em tempo real sobre dados operacionais, utilize a função de tabela mysql(). Ela permite extrair dados diretamente do ApsaraDB RDS for MySQL para o ApsaraDB for ClickHouse em uma única instrução SQL. Este guia detalha todo o processo: preparação das tabelas em ambas as extremidades, execução da consulta de migração e verificação dos resultados.

Pré-requisitos

Antes de começar, certifique-se de que você possui:

  • Um cluster do ApsaraDB for ClickHouse. Caso ainda não tenha criado um, consulte Criar um cluster.

  • Uma conta de banco de dados com privilégios elevados para o cluster do ClickHouse. Consulte Criar uma conta.

  • A instância do ApsaraDB RDS for MySQL e o cluster do ApsaraDB for ClickHouse na mesma região e Virtual Private Cloud (VPC).

  • O endereço IP do cluster do ClickHouse adicionado à lista de permissões do RDS MySQL, e o endereço IP do RDS MySQL adicionado à lista de permissões do ClickHouse.

Nota

Execute SELECT * FROM system.clusters; no ClickHouse para obter o endereço IP do cluster. Para configurar a lista de permissões, consulte Configurar uma lista de permissões de endereços IP (ClickHouse) e Configurar lista de permissões de endereços IP (RDS MySQL). Se houver falha de conectividade, consulte o FAQ.

Etapa 1: Configurar a tabela source no ApsaraDB RDS for MySQL

Nota

Ignore esta etapa se a sua instância do RDS MySQL já contiver os dados que você deseja migrar.

  1. Conecte-se à instância do ApsaraDB RDS for MySQL usando o Data Management (DMS). Consulte Usar o DMS para fazer login em uma instância do ApsaraDB RDS for MySQL.

  2. Crie um banco de dados:

    CREATE DATABASE testdb;
  3. Crie a tabela source:

    CREATE TABLE testdb.mysql_test_table (
      v1 Int NOT NULL,
      v2 Int DEFAULT NULL,
      v3 Float DEFAULT NULL
    ) ENGINE=InnoDB;
  4. Insira dados de exemplo:

    INSERT INTO testdb.mysql_test_table VALUES (4,4,4.0),(1,1,2.0),(1,1,0.0),(4,1,2.0),(7,1,3.0);

Etapa 2: Criar uma tabela no ApsaraDB for ClickHouse

  1. Conecte-se ao cluster do ApsaraDB for ClickHouse usando o DMS. Consulte Conectar-se a um cluster do ClickHouse usando o DMS.

  2. Crie uma tabela local:

    Nota

    Mapeie cada tipo de coluna do MySQL para o tipo correspondente no ClickHouse. Colunas definidas sem NOT NULL no MySQL tornam-se Nullable no ClickHouse. Para o mapeamento completo, consulte Mapeamentos de tipos de dados.

    CREATE TABLE default.clickhouse_test_table ON CLUSTER default (
      v1 Int32,
      v2 Nullable(Int32),
      v3 Nullable(Float32)
    ) ENGINE = MergeTree ORDER BY v1;
  3. (Opcional) Crie uma tabela distribuída para clusters com múltiplos nós:

    CREATE TABLE clickhouse_test_table_distributed ON CLUSTER default
      AS clickhouse_test_table
    ENGINE = Distributed(default, default, clickhouse_test_table, rand());

    Tabelas distribuídas espalham os dados por todos os nós do cluster, permitindo leituras e gravações paralelas para maior throughput e disponibilidade. Recomendamos a criação de uma tabela distribuída para clusters com múltiplos nós.

Etapa 3: Importar dados do ApsaraDB RDS for MySQL

Conecte-se ao cluster do ApsaraDB for ClickHouse via DMS e execute uma instrução INSERT INTO ... SELECT utilizando a função de tabela mysql():

INSERT INTO <clickhouse_table>
SELECT * FROM mysql('<rds_endpoint>:<port>', '<database>', '<table>', '<user>', '<password>');

Parâmetros:

Parâmetro

Descrição

Exemplo

<clickhouse_table>

Nome da tabela de destino no ClickHouse

clickhouse_test_table_distributed

<rds_endpoint>

Endpoint interno da instância do RDS MySQL

rm-bp16t9h3999xb****.mysql.rds.aliyuncs.com

<port>

Porta da instância do RDS MySQL

3306

<database>

Nome do banco de dados de origem

testdb

<table>

Nome da tabela de origem

mysql_test_table

<user>

Conta do banco de dados do RDS MySQL

test

<password>

Senha da conta do banco de dados

123456Aa

Para obter o endpoint e a porta do RDS MySQL, consulte Visualize e gerencie endpoints e portas de instâncias.

Exemplo completo de importação:

INSERT INTO clickhouse_test_table_distributed
SELECT * FROM mysql('rm-bp16t9h3999xb****.mysql.rds.aliyuncs.com:3306', 'testdb', 'mysql_test_table', 'test', '123456Aa');

Etapa 4: Verificar os dados importados

Consulte a tabela de destino para confirmar que os dados foram importados corretamente:

SELECT * FROM clickhouse_test_table_distributed;

Clique em Execute(F8) no DMS para executar a consulta. O resultado deve corresponder aos dados inseridos na Etapa 1.

Nota

Se você importou para uma tabela local, substitua clickhouse_test_table_distributed por clickhouse_test_table na consulta.

Mapeamentos de tipos de dados

Ao criar a tabela no ClickHouse, utilize os seguintes mapeamentos de tipos. Caso os tipos de origem e destino não correspondam exatamente, o ClickHouse tentará realizar uma conversão automática.

Colunas que aceitam NULL no MySQL são mapeadas como Nullable no ClickHouse. Colunas definidas sem NOT NULL no MySQL tornam-se Nullable na tabela do ClickHouse.

Tipo no ApsaraDB RDS for MySQL / PolarDB for MySQL

Tipo no ApsaraDB for ClickHouse

Unsigned tinyint

UInt8

Tinyint

Int8

Unsigned smallint

UInt16

Smallint

Int16

Unsigned int, Unsigned mediumint

UInt32

Int, Mediumint

Int32

Unsigned bigint

UInt64

Bigint

Int64

Float

Float32

Double

Float64

Date

Date

Datetime, Timestamp

DateTime

Binary

FixedString

Outros

String