Pular para o conteúdo principal

Prepare MySQL para ingestão usando o script de objetos utilitários.

info

Visualização

O conector MySQL está em versão prévia pública. Entre em contato com a equipe da sua account Databricks para solicitar acesso.

info

Esta página contém referências ao termo "escravo" , um termo que o Databricks não utiliza. Quando o termo for removido do software de terceiros, nós o removeremos desta página.

Conclua a tarefa de configuração do banco de dados MySQL para ingerir dados no Databricks usando LakeFlow Connect.

Requisitos

  • Versão do MySQL : 5.7.44 ou 8.0+
  • Usuário que executa o comando : Deve ser root ou ter privilégios administrativos completos (SUPER, TODOS OS PRIVILÉGIOS)
  • Usuário do CDC : Deve já existir com o plugin de autenticação apropriado antes de executar os procedimentos de configuração.
  • Esquemas/tabelas de destino : Devem existir previamente para que as permissões sejam concedidas.

o passo 1: Instalar objetos russos

Este passo instala os utilitários e procedimentos armazenados necessários para a configuração CDC MySQL .

  1. Baixe o script: mysql_setup.sql
  2. Abra o script no MySQL Workbench, DBeaver ou no seu cliente SQL preferido.
  3. Conecte-se à sua instância do MySQL como usuário root ou administrador.
  4. Certifique-se de estar conectado ao esquema desejado.
  5. execução do roteiro.
  6. Verificar instalação:
SQL
SELECT ROUTINE_NAME
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = '<schema-name>'
AND ROUTINE_TYPE = 'PROCEDURE'
AND ROUTINE_NAME IN ('lakeflow_cdc_setup', 'lakeflow_setup_cdc_user');

o passo 2: Crie o usuário CDC

Antes de executar os procedimentos de configuração, crie o usuário do CDC com o plugin de autenticação apropriado.

Para MySQL 8.x:

SQL
CREATE USER 'cdc_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'your_secure_password';

Para MySQL 5.x:

SQL
CREATE USER 'cdc_user'@'%' IDENTIFIED WITH sha256_password BY 'your_secure_password';
nota

O plugin de autenticação deve ser compatível com a sua versão do MySQL. Utilizar o plugin errado fará com que o procedimento de instalação falhe.

Passo 3: Habilitar registro binário (somente para MySQL independente)

Esta etapa define as configurações de log binário necessárias para operações CDC . Para mais detalhes, consulte lakeflow_setup_cdc_user na referência do procedimento abaixo.

SQL
CALL lakeflow_cdc_setup();
nota

Este procedimento funciona apenas em instâncias MySQL independentes. Para gerenciar serviços (Amazon RDS, Azure Database for MySQL, Google Cloud SQL), use as ferramentas de configuração específicas do serviço:

  • Amazon RDS : Use grupos de parâmetros para definir binlog_format = ROW e binlog_row_image = FULL
  • Azure MySQL : Usar parâmetros do servidor
  • Google Cloud SQL : Usar sinalizadores de banco de dados

o passo 4: Conceder permissões CDC

Este passo valida o usuário CDC e concede as permissões necessárias para a ingestão de dados. Para mais detalhes, consulte lakeflow_setup_cdc_user na referência do procedimento abaixo.

SQL
-- Grant permissions on specific tables
CALL lakeflow_setup_cdc_user('cdc_user', '`mydb`.`orders`, `mydb`.`customers`');

Opções alternativas:

  • Para todas as tabelas em esquemas específicos: 'mydb1.*,mydb2.*'
  • Para esquemas mistos (e tabelas específicas): 'mydb1.*,mydb2.pedidos'
  • Somente para permissões de replicação (sem acesso à tabela): 'NULL'

o passo 5: Verificar configuração

Execute as seguintes consultas para confirmar se o usuário CDC possui as permissões corretas:

SQL
-- Check user privileges
SHOW GRANTS FOR 'cdc_user'@'%';

-- Verify binary logging configuration
SHOW VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'binlog_row_image';

-- Verify user authentication plugin
SELECT user, host, plugin FROM mysql.user WHERE user = 'cdc_user';

Referência do procedimento

usuário lakeflow_setup_cdc

Valida se um usuário do CDC existe com o plugin de autenticação apropriado e concede os privilégios necessários para as operações do CDC.

Sintaxe:

SQL
CALL lakeflow_setup_cdc_user(
@User = 'username',
@Tables = 'table_list'
);

Parâmetros:

Parâmetro

Tipo

Descrição

@User

VARCHAR(255)

O nome de usuário do CDC (já deve existir)

@Tables

MEDIUMTEXT

Lista de tabelas/esquemas separados por vírgulas

Formato da lista de tabelas:

Formato

Exemplo

Descrição

Tabelas específicas

`schema`.`table1`, `schema`.`table2`

Concede permissões SELECT em tabelas específicas.

Todas as tabelas no esquema

`schema`.*

Concede permissão SELECT em todas as tabelas do esquema.

Misto

`schema1`.*, `schema2`.`table1`

Combinação de esquemas e tabelas específicas

Somente replicação

'NULL'

Concede apenas privilégios de replicação, sem acesso à tabela.

Privilégios concedidos:

Privilégio

Escopo

Propósito

REPLICATION SLAVE

Global (*.*)

Necessário para ler logsbinários.

REPLICATION CLIENT

Global (*.*)

Requerido para SHOW MASTER STATUS

SELECT (plugin, user)

mysql.user

É necessário ler as informações do plugin de autenticação.

SELECT

Tabelas especificadas

Necessário para a leitura dos dados do CDC.

Verificações de validação:

O procedimento realiza as seguintes validações antes de conceder privilégios:

  1. A versão do MySQL é 5.x ou 8.x.
  2. O usuário existe com host = '%'
  3. O usuário possui o plugin de autenticação correto para a versão do MySQL.
  4. Todos os esquemas especificados existem.
  5. Todas as tabelas especificadas existem (para entradas sem curinga).

configuração_cdc_de_fluxo_lago

Configura as definições de registo binário do MySQL necessárias para as operações de CDC.

Sintaxe:

SQL
CALL lakeflow_cdc_setup();

Parâmetros: Nenhum

Configuração aplicada:

Contexto

Valor

Propósito

binlog_format

ROW

Captura todas as alterações de coluna no log binário.

binlog_row_image

FULL

Registros completos de imagens de antes e depois

Comportamento por versão do MySQL:

Versão

Comportamento

MySQL 8.x

Usa SET PERSIST (sobrevive a reinicializações)

MySQL 5.x

Usa SET GLOBAL (requer persistência manual)

Cenários comuns

Cenário 1: Somente tabelas específicas

SQL
-- Create user
CREATE USER 'lakeflow_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'secure_password';

-- Setup binary logging
CALL lakeflow_cdc_setup();

-- Grant permissions on specific tables
CALL lakeflow_setup_cdc_user('lakeflow_user', '`sales`.`orders`, `sales`.`customers`, `inventory`.`products`');

Cenário 2: Todas as tabelas em esquemas específicos

SQL
-- Create user
CREATE USER 'lakeflow_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'secure_password';

-- Setup binary logging
CALL lakeflow_cdc_setup();

-- Grant permissions on all tables in schemas
CALL lakeflow_setup_cdc_user('lakeflow_user', '`sales`.*, `inventory`.*, `hr`.*');

Cenário 3: Abordagem híbrida (esquemas + tabelas específicas)

SQL
-- Create user
CREATE USER 'lakeflow_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'secure_password';

-- Setup binary logging
CALL lakeflow_cdc_setup();

-- Grant all tables in sales schema, but only specific tables in other schemas
CALL lakeflow_setup_cdc_user('lakeflow_user', '`sales`.*, `inventory`.`products`, `hr`.`employees`');

Cenário 4: Amazon RDS MySQL

SQL
-- Create user (binary logging configured via Parameter Groups)
CREATE USER 'lakeflow_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'secure_password';

-- Grant permissions (skip lakeflow_cdc_setup for managed services)
CALL lakeflow_setup_cdc_user('lakeflow_user', '`mydb`.*');
dica

Para o Amazon RDS, configure o registro binário usando um Grupo de Parâmetros personalizado com binlog_format = ROW e binlog_row_image = FULL.

Persistência MySQL 5.x

Ao usar lakeflow_cdc_setup() no MySQL 5.x, a configuração não é persistente após reinicializações. Para tornar isso permanente:

  1. Abra /etc/my.cnf com privilégios de root:
Bash
sudo vi /etc/my.cnf
  1. Adicione na seção [mysqld] :
ini
[mysqld]
binlog_format=ROW
binlog_row_image=FULL
  1. Reinicie o MySQL:
Bash
sudo systemctl restart mysqld

Solução de problemas

O usuário não existe.

Erro: User 'xxx'@'%' does NOT exist

Soluções: Crie o usuário antes de executar o procedimento de configuração. Veja o passo 2.

Plugin de autenticação incorreto

Erro: User exists with wrong plugin type. Expected: caching_sha2_password, Found: mysql_native_password

2: Recrie o usuário com o plugin de autenticação correto:

SQL
DROP USER 'cdc_user'@'%';
CREATE USER 'cdc_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'your_password';

O esquema não existe.

Erro: Catalog 'xxx' does NOT exist

Soluções: Crie o esquema ou corrija o nome do esquema na sua lista de tabelas.

A tabela não existe.

Erro: Table 'xxx.yyy' does NOT exist

Soluções: Crie a tabela ou corrija o nome da tabela na sua lista de tabelas.

serviço detectado

Erro: Cloud/managed service detected. Use parameter/server group tools for binlog setup.

soluções: Ignore lakeflow_cdc_setup() e configure o registro binário através do console de gerenciamento do seu provedor cloud .

Recursos adicionais