Ir para conteúdo principal Pular para conteúdo complementar

MySQL

Este tópico explica como configurar a conectividade com um destino MySQL usando o conector de destino MySQL. O MySQL pode ser usado como banco de dados de destino apenas em uma tarefa de replicação. Antes de se conectar a um destino do MySQL você precisa configurar o Permissões necessárias no banco de dados. Se você estiver se conectando ao MySQL via Data Movement gateway, também precisará instalar o driver, conforme descrito em Configuração do driver.

Para obter informações sobre as limitações e considerações ao usar o conector do MySQL, consulte Limitações e considerações.

Configurando propriedades de conexão

Para configurar o conector, faça o seguinte:

  1. Em Conexões, clique em Criar conexão.

  2. Selecione o conector de destino do MySQL e forneça as seguintes configurações:

Destino de dados

  • Gateway de dados: Ao trabalhar com o Data Movement gateway, selecione o gateway de dados que será usado para testar a conexão com o destino MySQL. Deve ser o mesmo gateway usado para acessar a fonte de dados.

    Nota informativa
    • Este campo não está disponível com as assinaturas do Iniciante do Qlik Talend Cloud, pois o Data Movement gateway não é compatível com esse nível de assinatura.
    • Você também precisa instalar o driver apropriado na máquina do Data Movement gateway. Para detalhes, consulte Configuração do driver abaixo.

  • Provedor de nuvem: escolha um dos seguintes, conforme apropriado:

      • Para servidor flexível MySQL local, MariaDB, Amazon Aurora ou Microsoft Azure Database for MySQL.
      • Ao trabalhar sem o Data Movement gateway
    • Para o Amazon RDS for MariaDB ou Amazon RDS for MySQL.

    • Para o Google Cloud SQL for MySQL.

    • Para o Microsoft Azure Database for MySQL.

  • Servidor: o nome do host ou endereço IP do computador no qual o banco de dados MySQL está instalado.

  • Porta: A porta a ser usada ao conectar-se ao banco de dados. O padrão é 3306.

Propriedades da conta

Nome de usuário e Senha: o nome de usuário e a senha de um usuário autorizado a acessar o banco de dados MySQL Server.

Propriedades do banco de dados

  • Tipo de banco de dados de destino: Escolha um dos seguintes:
    • Banco de dados específico: Quando esta opção for selecionada, todos os esquemas de origem serão carregados no Banco de dados especificado.
    • Vários bancos de dados: Quando esta opção for selecionada, cada um dos esquemas de origem será carregado em seu banco de dados correspondente. Além disso, por padrão, todas as tabelas de controle serão replicadas para um novo esquema chamado attrep_control. Para obter mais informações sobre tabelas de controle, consulte Tabelas de controle.
  • Tamanho máximo de arquivo (KB): Selecione ou digite o tamanho máximo (em KB) de um arquivo CSV antes de carregá-lo no banco de dados de destino MySQL. O valor padrão é 32.000 KB.
  • Threads de carga paralela: Aumentar o número de threads pode melhorar o desempenho ao carregar dados no banco de dados de destino MySQL. Observe que definir um grande número de threads pode ter um efeito adverso no desempenho do banco de dados, pois é necessária uma conexão separada para cada thread.

Propriedades internas

Propriedades internas são para casos de uso especiais e, portanto, não são expostas na caixa de diálogo. Você só deve usá-las se instruído pelo Suporte da Qlik.

Use os botões Criar novo e Cancelar à direita dos campos para adicionar ou remover propriedades conforme necessário.

Nome

O nome de exibição da conexão.

Pré-requisitos

Permissões necessárias

O usuário especificado nas configurações do conector deve receber:

  • Acesso à conta do MySQL
  • Privilégios de leitura/gravação no banco de dados MySQL
  • As seguintes permissões para cada esquema de destino envolvido na replicação:
    • ALTER
    • CREATE
    • CREATE TEMPORARY TABLES
    • DELETE
    • DROP
    • INSERT
    • SELECT
    • UPDATE

Configuração do driver

Esta seção descreve como instalar o driver necessário. O processo envolve a execução de um script que baixará, instalará e configurará automaticamente os driver necessários. Você também pode executar scripts para atualizar e desinstalar o driver como necessário.

  • Certifique-se de que o Python 3.6.x ou mais recente esteja instalado no servidor de gateway do Movimentação de dados.

    O Python vem pré-instalado na maioria das distribuições do Linux. Você pode verificar qual versão do Python está instalada em seu sistema executando o seguinte comando:

    python3 --version

Para baixar e instalar o driver:

  1. Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:

    opt/qlik/gateway/movement/drivers/bin

  2. Execute o seguinte comando:

    Sintaxe:

    ./install mysql

    Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Movimentação de dados. Depois de fazer isso, execute o comando install mysql novamente.

    Caso contrário, o EULA do driver será exibido.

  3. Realize uma das seguintes ações:

    • Pressione [Enter] repetidamente para percorrer lentamente o EULA.
    • Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
    • Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.
  4. Realize uma das seguintes ações:

    • Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.
    • Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.
    • Digite "v" e pressione [Enter] para visualizar o EULA novamente.

  5. O driver será instalado.

Execute o comando de atualização se quiser desinstalar versões anteriores do driver antes de instalar o driver fornecido.

Para baixar e atualizar o driver:

  1. Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:

    opt/qlik/gateway/movement/drivers/bin

  2. Execute o seguinte comando:

    Sintaxe:

    ./update mysql

    Se o driver não puder ser baixado (devido a restrições de acesso ou problemas técnicos), uma mensagem será exibida informando onde baixar o driver e onde copiá-lo na máquina de gateway do Movimentação de dados. Depois de fazer isso, execute o comando update mysql novamente.

    Caso contrário, o EULA do driver será exibido.

  3. Realize uma das seguintes ações:

    • Pressione [Enter] repetidamente para percorrer lentamente o EULA.
    • Pressione a barra de espaço repetidamente para rolar rapidamente pelo EULA.
    • Pressione q para sair do texto da licença e ser apresentado às opções de aceitação do EULA.
  4. Realize uma das seguintes ações:

    • Digite "y" e pressione [Enter] para aceitar o EULA e iniciar a instalação.
    • Digite "n" e pressione [Enter] para rejeitar o EULA e sair da instalação.
    • Digite "v" e pressione [Enter] para revisar o EULA desde o início.
  5. O driver antigo será desinstalado, e o novo driver será instalado.

Execute o comando de desinstalação se quiser desinstalar o driver.

Para desinstalar o driver:

  1. Pare todas as tarefas configuradas para usar esse conector.

  2. Na máquina do gateway do Movimentação de dados, altere o diretório de trabalho para:

    opt/qlik/gateway/movement/drivers/bin

  3. Execute o seguinte comando:

    Sintaxe:

    ./uninstall mysql

    O driver será desinstalado.

Instalando o driver manualmente

Você só deve tentar instalar o driver manualmente se a instalação automática do driver não for concluída com êxito.

Após a instalação do Data Movement gateway, baixe o driver mysql-connector-odbc-<version>.x86_64.rpm. Você pode encontrar um link de download direto para a versão compatível em binary-artifacts em /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Assim que o download for concluído, copie o RPM para a máquina Data Movement gateway.

No servidor do Gateway Data Movement, abra um prompt de shell e faça o seguinte:

  1. Pare o serviço do Gateway Data Movement:

    sudo systemctl stop repagent

  2. Opcionalmente, confirme se o serviço foi interrompido:

    sudo systemctl status repagent

    O status deverá ser o seguinte:

    Active: inactive (dead) since <timestamp> ago

  3. Instale o driver na máquina do Gateway Data Movement.
  4. Altere o diretório de trabalho para <Gateway Data Movement-Install-Dir>/bin.

  5. Copie a localização do driver para o arquivo site_arep_login.sh:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh

    Isso adicionará o driver a "LD_LIBRARY_PATH" e atualizará a localização do driver no arquivo site_arep_login.sh.

  6. Opcionalmente, confirme se a localização do driver foi copiada:

    cat site_arep_login.sh
  7. Certifique-se de que o arquivo /etc/odbcinst.inicontenha uma entrada para o MySQL, como no exemplo a seguir:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. Inicie o serviço do Gateway Data Movement:

    sudo systemctl start repagent

  9. Opcionalmente, confirme se o serviço foi iniciado:

    sudo systemctl status repagent

    O status deverá ser o seguinte:

    Active: active (running) since <timestamp> ago

Limitações e considerações

As seguintes limitações se aplicam ao usar o MySQL como destino de replicação:

  • Ao replicar para o banco de dados de destino MariaDB, se o valor DATETIME estiver definido como zero, será necessário definir uma transformação que substitua DATETIME por valores válidos. Por exemplo:

    replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')

    Nota informativaEssa limitação não se aplica ao Banco de Dados do Microsoft Azure for MySQL.
  • Devido ao modo de operação de MySQL, ao carregar dados em um destino MySQL durante uma tarefa de Carregamento total, erros de chave duplicados não serão relatados nos logs.
  • Ao atualizar o valor de uma coluna para seu valor existente, zero linhas afetadas são retornadas do MySQL (ao contrário do Oracle e do Microsoft SQL Server que executam uma atualização de uma linha).

    Isso gera uma entrada em attrep_apply_exceptions Control Table e o seguinte aviso:

    Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.

  • Devido a um problema com o MySQL 5.7 (que foi resolvido na versão 8.0), caracteres multibyte não podem ser inseridos em colunas TEXT quando o Carregamento total usa arquivos CSV. Consequentemente, se o endpoint de destino for MySQL 5.7 e uma tabela replicada contiver colunas TEXT com caracteres multibyte UTF-8, a tabela de destino talvez esteja vazia.

     

    Solução alternativa:

    Nas configurações do conector, defina o parâmetro interno loadUsingCSV como FALSE. Observe que isso pode afetar o desempenho.

  • Se você precisar replicar caracteres de emoji de 4 bytes, o conjunto de caracteres do esquema de destino deverá ser definido como utf8mb4.

Tipos de dados

As informações do tipo de dados nativo são preservadas e exibidas na coluna Tipo de dados nativo nas visualizações do conjunto de dados. Se a coluna não estiver visível, será necessário abrir o seletor de colunas da visualização do conjunto de dados e selecionar a coluna Tipo de dados nativo.

Tipos de dados com suporte
Tipos de dados do Qlik Cloud Tipos de dados do MySQL

BOOL

BOOL

BYTES

Se o comprimento for => 1 e =< 8095, então:

VARBINARY (Length)

Se o comprimento for => 8096 e =< 65535, então:

BLOB

Se o comprimento for => 65536 e =< 16777215, então:

MEDIUMBLOB

Se o comprimento for => 16777216 e =< 2147483647, então:

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

Se a escala for => 0 e =< 6:

DECIMAL (p,s)

Se escala for => 7 e =< 12:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Se a escala for => 0 e =< 30, então:

DECIMAL (p,s)

Se a escala for => 31 e =< 100, então:

VARCHAR (45)

REAL4

FLOAT

REAL8

DOUBLE

STRING

Se o comprimento for => 1 e =< 8095, então:

VARCHAR (Length)

Se o comprimento for => 8096 e =< 65535, então:

TEXT

Se o comprimento for => 65536 e =< 16777215, então:

MEDIUMTEXT

Se o comprimento for => 16777216 e =< 2147483647, então:

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Se o comprimento for => 1 e =< 8095, então:

VARCHAR (Length)

Se o comprimento for => 8096 e =< 65535, então:

TEXT

Se o comprimento for => 65536 e =< 16777215, então:

MEDIUMTEXT

Se o comprimento for => 16777216 e =< 2147483647, então:

LONGTEXT

BLOB

Quando a opção Permitir tamanho ilimitado da LOB está habilitada:

  • LONGBLOB

Quando a opção Limitar tamanho da LOB a está habilitada:

  • Se o valor especificado i for 63 KB ou menor:

    BLOB

  • Se o valor especificado for 64 KB ou maior:

    LONGBLOB

Para obter informações sobre como limitar o tamanho da LOB, consulte Metadata.

NCLOB

Quando a opção Permitir tamanho ilimitado da LOB está habilitada:

  • TEXT

Quando a opção Limitar tamanho da LOB a está habilitada:

  • Se o valor especificado for 63 KB ou menor:

    TEXT

  • Se o valor especificado for 64 KB ou maior:

    LONGTEXT

Para obter informações sobre como limitar o tamanho da LOB, consulte Metadata.

CLOB

Quando a opção Permitir tamanho ilimitado da LOB está habilitada:

  • TEXT CHARACTER SET UTF-16

Quando a opção Limitar tamanho da LOB a está habilitada:

  • Se o valor especificado for 63 KB ou menor:

    TEXT CHARACTER SET UTF-16

  • Se o valor especificado for 64 KB ou maior:

    LONGTEXT CHARACTER SET UTF-16

Para obter informações sobre como limitar o tamanho da LOB, consulte Metadata.

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!