Você pode migrar dados do StarRocks para o ApsaraDB for SelectDB usando o recurso de migração de dados do ApsaraDB for SelectDB ou o Catalog. Escolha o método adequado com base no volume de dados e no cenário de negócios. Este tópico descreve os métodos disponíveis para migrar dados offline do StarRocks para o ApsaraDB for SelectDB e as regras para seleção do método. Você pode migrar dados do StarRocks para o ApsaraDB for SelectDB usando o recurso de migração de dados do ApsaraDB for SelectDB ou o Catalog. Escolha o método adequado com base no volume de dados e no cenário de negócios. Este tópico descreve como usar o Catalog para migrar dados offline do StarRocks para o ApsaraDB for SelectDB.
Você pode migrar dados do StarRocks para o
ApsaraDB for SelectDB
usando o recurso de migração de dados do
ApsaraDB for SelectDB
ou o
Catalog
. Escolha o método adequado com base no volume de dados e no cenário de negócios. Este tópico descreve os métodos disponíveis para migrar dados offline do StarRocks para o
ApsaraDB for SelectDB
e as regras para seleção do método.
Escolha do método de migração
Use a tabela a seguir para escolher o melhor método de migração para o seu cenário de negócios.
|
Método |
Casos de uso |
Benefícios |
Procedimento |
|
Usar o recurso de migração de dados do ApsaraDB for SelectDB (Recomendado) |
Aplicável a todos os cenários. |
|
|
|
catalog |
Para dados que já estão na Alibaba Cloud. Nota
Inclui cenários com clusters do Alibaba Cloud E-MapReduce. |
|
Este tópico usa um catalog como exemplo para descrever como migrar dados offline do StarRocks para o SelectDB.
Migração de dados usando um catalog
Pré-requisitos
-
Garanta a conectividade de rede entre a instância do StarRocks e a instância do ApsaraDB for SelectDB.
Todos os nós do cluster do SelectDB e a instância do ApsaraDB for SelectDB devem estar na mesma VPC. Se estiverem em VPCs diferentes, estabeleça primeiro a conectividade de rede. Para mais informações, consulte How do I establish network connectivity between an ApsaraDB for SelectDB instance and a data source?
Adicione o endereço IP da instância do StarRocks à lista de permissões do SelectDB da instância do ApsaraDB for SelectDB. Para mais informações, consulte Configure a whitelist.
-
Se a instância do StarRocks usar uma lista de permissões, adicione o bloco CIDR da VPC onde reside a instância do SelectDB à lista de permissões do StarRocks.
Para obter o intervalo de IPs da VPC onde reside a instância do SelectDB, consulte How do I find the IP CIDR block of the VPC where my ApsaraDB for SelectDB instance is located?
Para obter o endereço IP público da instância do SelectDB, use o comando
pingno endpoint público dela SelectDB.
Familiarize-se com catalogs e suas operações básicas. Para mais informações, consulte Lakehouse Data Processing.
Ambiente de exemplo
Este exemplo mostra como migrar dados da tabela SR_t no banco de dados starRocks_db do StarRocks para a tabela test_SR2SelectDB no banco de dados test_db do SelectDB. Ao realizar a migração, altere os parâmetros conforme necessário. O ambiente de exemplo é o seguinte:
Banco de dados de destino: test_db
Tabela de destino: test_SR2SelectDB
Banco de dados de origem: starRocks_db
Tabela de origem: SR_t
Exemplo: Preparar dados de origem
Faça login na instância StarRocks de origem e conclua as etapas a seguir.
-
Crie um banco de dados.
CREATE DATABASE starRocks_db; -
Crie uma tabela.
CREATE TABLE SR_t ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1"); -
Insira dados.
INSERT INTO SR_t VALUES (1, 'Alice', 25), (2, 'Bob', 30), (3, 'Charlie', 35), (4, 'David', 40), (5, 'Eve', 45);
Procedimento
-
Conecte-se à instância do SelectDB. Para mais informações, consulte Connect to an instance.
NotaO comando
SWITCHnão funciona quando você faz login usando o Data Management Service (DMS). Conecte-se usando um cliente MySQL. -
Crie um catalog JDBC do StarRocks. Para mais informações, consulte JDBC data source.
CREATE CATALOG starrocks_catalog PROPERTIES ( "type"="jdbc", "user"="root", "password"="123456", "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo", "driver_url" = "mysql-connector-java-8.0.25.jar", "driver_class" = "com.mysql.cj.jdbc.Driver", "checksum" = "fdf55dcef04b09f2eaf42b75e61ccc9a" )Parâmetros
Parâmetro
Obrigatório
Valor padrão
Descrição
user
Sim
Nenhum
Conta do banco de dados StarRocks.
password
Sim
Nenhum
Senha do banco de dados StarRocks.
jdbc_url
Sim
Nenhum
String de conexão JDBC. Deve conter o endereço de conexão do banco de dados StarRocks.
driver_url
Sim
Nenhum
Nome do pacote JAR do driver JDBC.
Nota-
Use
mysql-connector-java-8.0.25.jar. -
Para usar um pacote JAR diferente, abra um ticket para suporte.
driver_class
Sim
Nenhum
Nome da classe do driver JDBC.
Defina este parâmetro como
com.mysql.cj.jdbc.Driver.lower_case_table_names
(Renomeado para lower_case_meta_names na versão 4,0)
Não
"false"
Especifica se os nomes de bancos de dados e tabelas da fonte de dados JDBC externa devem ser sincronizados em letras minúsculas.
true: Permite consultar bancos de dados e tabelas com nomes que não estão em minúsculas, mantendo um mapeamento dos nomes em minúsculas para os nomes reais no sistema remoto. Nesse caso, os nomes de bancos de dados, tabelas e colunas são convertidos para minúsculas.
false: Não é possível consultar bancos de dados e tabelas com nomes que não estejam em minúsculas.
Importante-
Para o SelectDB 3.0:
-
Se o parâmetro
lower_case_table_namesdo FE estiver definido como1ou2, defina o parâmetrolower_case_table_namesdo catalog comotrue. -
Se o parâmetro
lower_case_table_namesdo FE estiver definido como0, o parâmetro do catalog pode ser definido comotrueoufalse.
-
-
Para o SelectDB 4,0:
-
Se o parâmetro
lower_case_table_namesdo FE estiver definido como0ou2, os nomes de bancos de dados, tabelas e colunas não são convertidos. -
Se o parâmetro
lower_case_table_namesdo FE estiver definido como1, os nomes das tabelas são convertidos para minúsculas, mas os nomes de bancos de dados e colunas não.
-
only_specified_database
Não
"false"
Especifica se apenas o banco de dados especificado deve ser sincronizado.
true: Sincroniza apenas o banco de dados especificado na URL JDBC.
false: Sincroniza todos os bancos de dados na URL JDBC.
include_database_list
Não
""
Quando
only_specified_database=true, especifica os bancos de dados a serem sincronizados. Separe vários bancos de dados com vírgulas (,). Os nomes dos bancos de dados diferenciam maiúsculas de minúsculas.exclude_database_list
Não
""
Quando
only_specified_database=true, especifica os bancos de dados a serem excluídos da sincronização. Separe vários bancos de dados com vírgulas (,). Os nomes dos bancos de dados diferenciam maiúsculas de minúsculas.meta_names_mapping
Não
""
Se a fonte de dados externa tiver nomes que diferem apenas em maiúsculas/minúsculas, como DORIS e doris, a consulta ao catalog pode causar um erro devido à ambiguidade. Nesse caso, configure o parâmetro
meta_names_mappingpara resolver o conflito.Para mais informações, consulte Configurações de diferenciação de maiúsculas e minúsculas.
ImportanteEste parâmetro aplica-se apenas ao SelectDB 4,0.
-
-
Visualize o catalog.
SHOW CATALOGS; -- Check if the catalog was created successfully.O resultado a seguir é retornado.
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ | CatalogId | CatalogName | Type | IsCurrent | CreateTime | LastUpdateTime | Comment | +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ | 436009309195 | SR_catalog | jdbc | | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 | | | 0 | internal | internal | yes | UNRECORDED | NULL | Doris internal catalog | +--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+ -
(Opcional) Alterne para o catalog externo SR_catalog.
Você pode visualizar e acessar os dados no catalog externo SR_catalog da mesma forma que em um catalog interno.
NotaAtualmente, o Alibaba Cloud SelectDB suporta apenas operações de leitura em dados de catalogs externos.
SWITCH SR_catalog; -
(Opcional) Alterne para o catalog interno.
Se você não executou a Etapa 4, pule esta etapa.
SWITCH internal; -
(Opcional) Crie um banco de dados.
Se você já criou o banco de dados de destino, pule esta etapa.
CREATE database test_db; -
Alterne para o banco de dados de destino.
USE test_db; -
Crie uma tabela.
Se você já tem uma tabela de destino, verifique se os tipos de coluna na tabela de destino correspondem aos tipos de coluna nos dados de origem do StarRocks.
Se você não tem uma tabela de destino, garanta que os tipos de coluna correspondam aos tipos de coluna nos dados de origem do StarRocks ao criar a tabela.
Para mais informações sobre mapeamento de colunas, consulte Type mapping.
CREATE TABLE test_SR2SelectDB ( id int, name string, age int ) DISTRIBUTED BY HASH(id) BUCKETS 4 PROPERTIES("replication_num" = "1"); -
Migre os dados.
INSERT INTO test_SR2SelectDB SELECT * FROM doris_catalog.SR_db.SR_t; -
Verifique o status da importação de dados.
SELECT * FROM test_SR2SelectDB;
Migrar dados incrementais
Os dados do StarRocks em um ambiente de produção incluem tanto dados offline quanto incrementais. Um caso de uso comum para migrar dados do StarRocks para o SelectDB é copiar dados para um data warehouse visando a aceleração de consultas. Para migrar dados incrementais, considere um dos seguintes métodos:
Ao produzir dados para o SelectDB, escreva simultaneamente uma cópia dos dados no SelectDB.
Leia periodicamente dados particionados do StarRocks e grave-os no SelectDB.