O AnalyticDB for MySQL oferece cinco métodos de importação de dados: tabelas externas, DataWorks, Data Transmission Service (DTS), programas baseados em Java Database Connectivity (JDBC) e sincronização de dados. A escolha ideal depende da localização dos dados, do volume envolvido e da frequência de movimentação.
Escolha um método de importação
|
Fonte de dados |
Volume / frequência |
Método recomendado |
|
OSS, HDFS, MaxCompute, RDS, PolarDB |
Lotes grandes (GB–TB), única vez ou diariamente |
|
|
RDS for MySQL, Oracle, OSS, MaxCompute, HDFS |
Lotes pequenos, a cada minuto ou hora |
|
|
RDS for MySQL, PolarDB for MySQL, HBase |
Tempo real, em segundos |
|
|
Arquivos de log, dados on-premises, pipelines personalizados |
Qualquer volume, requer pré-processamento |
|
|
SLS, ApsaraMQ for Kafka, Hive, OSS |
Streaming ou orientado por metadados |
Use tabelas externas para importar dados
Tabelas externas mapeiam dados armazenados em sistemas externos (OSS, HDFS, MaxCompute e várias fontes RDS e PolarDB). O AnalyticDB for MySQL lê os dados simultaneamente em todos os nós do cluster e cria índices automaticamente ao concluir o job. Essa é a opção de maior throughput para grandes importações.
Comportamentos principais:
Os dados importados permanecem invisíveis durante a execução do job e tornam-se consultáveis apenas após a conclusão.
Se a partição de destino já existir, os dados serão sobrescritos.
A criação de índices ocorre automaticamente ao final do job para otimizar o desempenho das consultas.
Agende jobs grandes fora dos horários de pico para evitar contenção de recursos.
Importação regular vs. importação elástica
Por padrão, o AnalyticDB for MySQL utiliza a importação regular, que lê os dados de origem em grupos de recursos interativos (nós de computação residentes) e grava índices nos nós de armazenamento. Esse processo pode causar alta utilização de CPU e I/O nos nós de armazenamento durante a execução do job.
A importação elástica (disponível na V3.1.10.0 e posteriores) transfere tanto a leitura quanto a criação de índices para grupos de recursos de job (nós de computação dimensionados dinamicamente), mantendo os nós de armazenamento praticamente sem impacto. Utilize a importação elástica quando precisar de maior concorrência ou quiser proteger as cargas de trabalho interativas durante o carregamento de dados.
|
Importação regular |
Importação elástica |
|
|
Versão mínima |
Sem limite |
V3.1.10.0 e posteriores |
|
Jobs simultâneos |
Até 2 |
Até 32 |
|
Recursos consumidos |
Grupos de recursos interativos + nós de armazenamento |
Apenas grupos de recursos de job; impacto mínimo nos nós de armazenamento |
|
Ativado por padrão |
Sim |
Sim, na V3.1.10 e posteriores |
|
Fontes de dados suportadas |
MaxCompute, OSS, HDFS, ApsaraDB RDS for MySQL, ApsaraDB RDS for SQL Server, PolarDB-X, PolarDB for MySQL |
MaxCompute, OSS |
|
Duração mínima do job |
Variável |
~2–3 minutos |
|
Cenários de uso recomendados |
Importação de pequenos volumes de dados, sem requisitos rigorosos de velocidade ou concorrência |
Consumo reduzido de recursos dos nós de armazenamento para acelerar a importação; jobs envolvendo múltiplas tabelas; importação de grandes volumes de dados em tabelas particionadas |
Limites da importação elástica:
Suportada apenas no AnalyticDB for MySQL Data Lakehouse Edition (V3.0), baseada em tabelas externas usando
INSERT OVERWRITE INTO.Importa dados de apenas uma tabela — não há suporte para junções de tabelas.
Aceita somente as cláusulas
WHEREeLIMIT; não há suporte paraORDER BY. Na instruçãoSELECT, use asteriscos (*), nomes de colunas, valores padrão ou constantes nos campos de coluna e valor. Funções SQL não são suportadas.Destina-se exclusivamente a tabelas de fatos.
Tipos de dados suportados:
BOOLEAN,TINYINT,SMALLINT,INT,BIGINT,FLOAT,DOUBLE,DECIMAL,VARCHAR,DATE,TIME,DATETIME,TIMESTAMP.
A importação elástica requer pelo menos 2–3 minutos para conclusão. Para jobs que precisam terminar em menos de 3 minutos, utilize a importação regular.
Ajuste a concorrência da importação elástica
Para aumentar a concorrência além do padrão, defina o parâmetro adb.load.job.max.acu. O valor padrão é (number of shards) + 1. Defina-o como K × default value, onde K ≥ 1. Mantenha K igual ou inferior ao número de partições da tabela particionada de destino.
Consulte o número de shards no seu cluster:
SELECT count(1) FROM information_schema.kepler_meta_shards;
Para obter informações sobre a contagem de partições, consulte Análise de armazenamento.
Casos de uso
Inicialização de data warehouse: Carregue terabytes de dados históricos do OSS ou HDFS para o AnalyticDB for MySQL pela primeira vez. Agende essa operação fora dos horários de pico para evitar contenção de recursos.
Ingestão diária em lote: Importe diariamente de gigabytes a terabytes de dados processados do MaxCompute para o AnalyticDB for MySQL para acelerar as análises.
Otimização de desempenho
Para estratégias de otimização específicas de importações via tabelas externas, consulte Otimizar o desempenho de importação de dados — tabelas externas.
Use o DataWorks para importar dados
O DataWorks oferece uma interface visual e sem código para configurar jobs de sincronização de dados entre diversas fontes e o AnalyticDB for MySQL. Essa solução é adequada para importações frequentes de pequenos lotes e para cenários com múltiplas fontes heterogêneas.
Para importações de várias centenas de gigabytes ou mais, prefira tabelas externas. O DataWorks é otimizado para transferências menores e mais frequentes.
Casos de uso
Importações frequentes de pequenos lotes: Carregue pequenas quantidades de dados a cada minuto ou hora para viabilizar análises em tempo quase real.
Consolidação de múltiplas fontes: Centralize dados de origens como Tablestore, Redis e PostgreSQL em um único cluster do AnalyticDB for MySQL.
Primeiros passos
-
Configure a fonte de dados. Fontes suportadas:
Configure as conexões de origem e destino para o job de sincronização.
Otimização de desempenho
Para estratégias de otimização específicas de importações via DataWorks, consulte Otimizar o desempenho de importação de dados — DataWorks.
Use o DTS para importar dados
O Data Transmission Service (DTS) é um serviço de streaming de dados em tempo real que aceita bancos de dados relacionais (RDBMS), NoSQL e de processamento analítico online (OLAP) como fontes. O DTS captura dados de alteração continuamente e os replica para o AnalyticDB for MySQL em segundos. Essa é a escolha certa quando a análise precisa refletir o estado mais recente de um banco de dados operacional.
Casos de uso
Sincronização em tempo real: Transmita alterações do ApsaraDB RDS for MySQL ou PolarDB for MySQL para o AnalyticDB for MySQL em segundos.
Agregação de múltiplas fontes: Consolide dados de várias instâncias do RDS for MySQL ou clusters do PolarDB for MySQL em um único cluster do AnalyticDB for MySQL. Utilize o recurso de mesclagem de múltiplas tabelas do DTS para unificar várias tabelas de origem com o mesmo esquema em uma única tabela de destino.
Primeiros passos
Use um programa baseado em JDBC para importar dados
Um programa baseado em JDBC oferece controle total sobre o pipeline de importação. Adote este método quando os dados exigirem pré-processamento — como analisar arquivos de log, aplicar transformações ou lidar com formatos incompatíveis com tabelas externas — ou quando não for viável preparar os dados previamente no OSS, HDFS ou MaxCompute.
Casos de uso
Importação após pré-processamento de dados: Analise arquivos de log ou aplique transformações personalizadas antes de carregar os dados no AnalyticDB for MySQL em tempo real.
Importação de dados on-premises: Carregue dados locais que não possam ser preparados previamente no OSS, HDFS ou MaxCompute.
Observações de uso
Configure um driver JDBC apropriado antes de estabelecer a conexão. Consulte Versões suportadas do driver JDBC do MySQL.
Em importações grandes, configure um pool de conexões para reduzir a sobrecarga. Consulte Pool de conexões Druid.
Utilize inserções em lote e conexões simultâneas para maximizar o throughput.
Para dados em streaming (por exemplo, pipelines do Apache Flink), consulte Importar dados do Apache Flink.
Para dados on-premises não personalizados, consulte Usar LOAD DATA para importar dados para a Data Warehouse Edition e Usar a ferramenta de importação do AnalyticDB for MySQL para importar dados para a Data Warehouse Edition.
Otimização de desempenho
Para estratégias de otimização específicas de importações baseadas em JDBC, consulte Otimizar o desempenho de importação de dados — JDBC.
Use a sincronização de dados para importar dados
O AnalyticDB for MySQL inclui recursos integrados de sincronização de dados para ingestão em streaming, gerenciamento de metadados e migração de dados: AnalyticDB Pipeline Service (APS), descoberta de metadados e migração de dados do Hive.
Casos de uso
Ingestão de logs e mensagens de baixo custo: Utilize o APS para transmitir dados continuamente do Simple Log Service (SLS) e do ApsaraMQ for Kafka para o AnalyticDB for MySQL, garantindo armazenamento e análise econômicos.
Descoberta de metadados do OSS: Quando os dados no OSS não possuem metadados estruturados, o recurso de descoberta de metadados varre o OSS e constrói metadados de banco de dados, tabelas e partições — incluindo formatos de dados e definições de campos. Isso torna os dados acessíveis ao AnalyticDB for MySQL e a outros mecanismos de análise.
Migração de dados do Hive: Migre dados do Hive para o OSS utilizando o recurso de migração de dados do Hive. Em seguida, o AnalyticDB for MySQL organiza automaticamente os metadados para análises subsequentes.