Prepare MySQL para ingestão usando o script de objetos utilitários.
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.
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 .
- Baixe o script: mysql_setup.sql
- Abra o script no MySQL Workbench, DBeaver ou no seu cliente SQL preferido.
- Conecte-se à sua instância do MySQL como usuário root ou administrador.
- Certifique-se de estar conectado ao esquema desejado.
- execução do roteiro.
- Verificar instalação:
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:
CREATE USER 'cdc_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'your_secure_password';
Para MySQL 5.x:
CREATE USER 'cdc_user'@'%' IDENTIFIED WITH sha256_password BY 'your_secure_password';
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.
CALL lakeflow_cdc_setup();
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 = ROWebinlog_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.
-- 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:
-- 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:
CALL lakeflow_setup_cdc_user(
@User = 'username',
@Tables = 'table_list'
);
Parâmetros:
Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O nome de usuário do CDC (já deve existir) |
|
| Lista de tabelas/esquemas separados por vírgulas |
Formato da lista de tabelas:
Formato | Exemplo | Descrição |
|---|---|---|
Tabelas específicas |
| Concede permissões SELECT em tabelas específicas. |
Todas as tabelas no esquema |
| Concede permissão SELECT em todas as tabelas do esquema. |
Misto |
| Combinação de esquemas e tabelas específicas |
Somente replicação |
| Concede apenas privilégios de replicação, sem acesso à tabela. |
Privilégios concedidos:
Privilégio | Escopo | Propósito |
|---|---|---|
| Global ( | Necessário para ler logsbinários. |
| Global ( | Requerido para |
|
| É necessário ler as informações do plugin de autenticação. |
| 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:
- A versão do MySQL é 5.x ou 8.x.
- O usuário existe com
host = '%' - O usuário possui o plugin de autenticação correto para a versão do MySQL.
- Todos os esquemas especificados existem.
- 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:
CALL lakeflow_cdc_setup();
Parâmetros: Nenhum
Configuração aplicada:
Contexto | Valor | Propósito |
|---|---|---|
|
| Captura todas as alterações de coluna no log binário. |
|
| Registros completos de imagens de antes e depois |
Comportamento por versão do MySQL:
Versão | Comportamento |
|---|---|
MySQL 8.x | Usa |
MySQL 5.x | Usa |
Cenários comuns
Cenário 1: Somente tabelas específicas
-- 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
-- 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)
-- 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
-- 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`.*');
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:
- Abra
/etc/my.cnfcom privilégios de root:
sudo vi /etc/my.cnf
- Adicione na seção
[mysqld]:
[mysqld]
binlog_format=ROW
binlog_row_image=FULL
- Reinicie o MySQL:
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:
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 .