Todos os produtos
Search
Central de documentação

E-MapReduce:Conector MySQL

Última atualização: Jun 27, 2026

O conector MySQL permite que o Trino consulte e grave dados em um banco de dados MySQL externo. Utilize-o para executar consultas federadas que unem tabelas do MySQL a outras fontes de dados no seu cluster, como tabelas Hive ou Iceberg, ou para unir dados entre duas instâncias do MySQL.

Pré-requisitos

Antes de começar, verifique se você possui:

Limitações

  • Apenas clusters Hadoop ou Trino no E-MapReduce (EMR) V3.38.0 e versões posteriores oferecem suporte ao conector MySQL.

  • Versões compatíveis do MySQL: 5,7, 8,0 ou posterior (somente ApsaraDB RDS for MySQL).

  • O nó coordenador e todos os nós trabalhadores devem conseguir acessar o MySQL. A porta padrão é 3306.

  • As seguintes instruções SQL não são suportadas: DELETE, GRANT, REVOKE, SHOW GRANTS, SHOW ROLES, SHOW ROLE GRANTS.

Configure o conector MySQL

Para etapas gerais de configuração de conectores, consulte Configure um conector.

Configuração mínima necessária

Cada catálogo MySQL é definido por um arquivo .properties. A configuração mínima exige três propriedades:

connection-url=jdbc:mysql://rm-2ze5ipacsu8265q****.mysql.rds.aliyuncs.com:3306
connection-user=<your-username>
connection-password=<your-password>

Para encontrar sua connection-url, consulte Visualize e gerencie endpoints e portas da instância.

No console EMR, essas propriedades correspondem aos itens de configuração na aba mysql.properties, dentro da aba Configure do serviço Trino.

Item de configuração

Descrição

connection-url

A URL JDBC da sua instância do ApsaraDB RDS for MySQL.

connection-user

O nome de usuário para acesso ao banco de dados. A conta deve ter permissões de leitura (e escrita, se necessário) nas tabelas de destino.

connection-password

A senha da conta especificada em connection-user.

Conectar-se a várias instâncias do MySQL

Para conectar o Trino a mais de uma instância do MySQL, crie um arquivo .properties separado para cada instância no diretório etc/catalog. Cada nome de arquivo torna-se o nome do catálogo no Trino — por exemplo, sales.properties cria um catálogo chamado sales.

Os nomes dos arquivos devem ser únicos e terminar com .properties.

Para adicionar um segundo catálogo MySQL usando o console EMR:

  1. Na aba Configure do serviço Trino, clique em na aba mysql.properties. Defina connection-url, connection-user e connection-password para sua primeira instância do MySQL. Para adicionar propriedades não listadas por padrão, clique em Add Configuration Item na parte superior da aba. Para obter detalhes, consulte a seção Adicionar itens de configuração em "Gerencie itens de configuração".

  2. Clique em na aba connector[x].properties (onde x é um número inteiro começando em 1) para configurar catálogos MySQL adicionais. Repita o processo para cada instância adicional.

  3. Salve a configuração:

    1. Na parte inferior da aba Configure, clique em Save.

    2. Na caixa de diálogo, insira um motivo em Execution Reason e clique em Save.

  4. Reinicie o serviço Trino:

    1. No canto superior direito, escolha More > Restart.

    2. Insira um motivo em Execution Reason e clique em OK.

    3. Na caixa de diálogo Confirm, clique em OK.

Mapeamentos de tipos de dados

Tipo DECIMAL com precisão maior que 38

O tipo DECIMAL do MySQL suporta precisão de até 65, mas o tipo DECIMAL do Trino aceita uma precisão máxima de 38. Para mapear um DECIMAL(p, s) do MySQL onde p > 38, defina a propriedade de configuração decimal_mapping (ou a propriedade de sessão correspondente) como allow_overflow. O tipo Trino mapeado usa uma precisão fixa de 38; a escala é controlada por decimal-default-scale e o comportamento de arredondamento por decimal-rounding-mode.

Por padrão, qualquer valor que exija arredondamento ou truncamento durante o mapeamento causa uma falha em tempo de execução. Defina decimal-rounding-mode com um dos valores a seguir para alterar esse comportamento:

Valor

Comportamento

UNNECESSARY

Falha se o arredondamento for necessário (padrão)

UP

Arredonda para longe de zero

DOWN

Arredonda em direção a zero

CEILING

Arredonda em direção ao infinito positivo

FLOOR

Arredonda em direção ao infinito negativo

HALF_UP

Arredonda para o vizinho mais próximo; empates arredondam para cima

HALF_DOWN

Arredonda para o vizinho mais próximo; empates arredondam para baixo

HALF_EVEN

Arredonda para o vizinho mais próximo; empates arredondam para o par mais próximo

Propriedades gerais de configuração

Utilize as propriedades abaixo para controlar como tipos de dados não suportados são tratados e como os metadados são armazenados em cache.

Propriedade

Descrição

Padrão

unsupported-type-handling

Define o tratamento de colunas com tipos de dados não suportados. IGNORE torna essas colunas inacessíveis; CONVERT_TO_VARCHAR as converte para VARCHAR ilimitado.

IGNORE

jdbc-types-mapped-to-varchar

Força a conversão de tipos JDBC separados por vírgula para VARCHAR ilimitado.

case-insensitive-name-matching

Quando definida como true, a correspondência de nomes de bancos de dados e tabelas ignora maiúsculas e minúsculas.

false

case-insensitive-name-matching.cache-ttl

Tempo de retenção em cache para mapeamentos de nomes sem distinção entre maiúsculas e minúsculas.

1 minuto

metadata.cache-ttl

Duração do cache de estatísticas de tabelas e colunas. Defina como 0 para desativar o cache.

0 (desativado)

metadata.cache-missing

Se definida como true, a ausência de metadados (por exemplo, uma tabela inexistente) também é armazenada em cache.

false

Consultar dados do MySQL

O conector MySQL mapeia cada banco de dados MySQL para um schema do Trino. Todas as consultas usam o formato de nomenclatura de três níveis catalog.schema.table, onde catalog é o nome do seu arquivo .properties (por exemplo, mysql).

Etapa 1: Faça login no cluster via SSH. Consulte Fazer login em um cluster.

Etapa 2: Conecte-se à CLI do Trino.

Para um cluster DataLake:

trino --server master-1-1:9090 --catalog iceberg --schema default

Para um cluster Hadoop ou Trino:

trino --server emr-header-1:9090 --catalog iceberg --schema default

Etapa 3: Liste todos os bancos de dados MySQL disponíveis no catálogo.

SHOW SCHEMAS FROM mysql;

Etapa 4: Liste as tabelas em um banco de dados específico. Neste exemplo, web é o nome de um banco de dados do ApsaraDB RDS for MySQL.

SHOW TABLES FROM mysql.web;

Etapa 5: Inspecione as colunas de uma tabela.

DESCRIBE mysql.web.clicks;

Alternativamente:

SHOW COLUMNS FROM mysql.web.clicks;

Etapa 6: Consulte a tabela.

SELECT * FROM mysql.web.clicks;

Pushdown

O conector MySQL oferece suporte a pushdown para os seguintes operadores e funções. O pushdown transfere a computação para o lado do MySQL, reduzindo os dados transferidos para o Trino.

Importante

O pushdown é aplicado quando melhora o desempenho. Quando enviar uma operação via pushdown representar risco de resultados incorretos, o conector prioriza a exatidão e executa a operação no Trino.

Operadores:

  • Join

  • Limit

  • Top-N

Funções:

  • avg()

  • count()

  • max()

  • min()

  • sum()

  • stddev()

  • stddev_pop()

  • stddev_samp()

  • variance()

  • var_pop()

  • var_samp()

Para mais detalhes sobre como o pushdown funciona no Trino, consulte Pushdown na documentação do Trino.