Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do ApsaraDB for OceanBase

Última atualização: Sep 09, 2026

A fonte de dados do ApsaraDB for OceanBase permite ler e gravar dados no ApsaraDB for OceanBase. Use esta fonte de dados para configurar tarefas de sincronização no DataWorks. Este tópico descreve os recursos disponíveis para sincronizar dados com o ApsaraDB for OceanBase.

Versões compatíveis

O ApsaraDB for OceanBase Reader e o ApsaraDB for OceanBase Writer são compatíveis com as seguintes versões do OceanBase para operações de leitura e gravação em lote:

  • OceanBase 2.x

  • OceanBase 3.x

  • OceanBase 4.x

Todas as versões listadas referem-se ao ApsaraDB for OceanBase, o service gerenciado da Alibaba Cloud. O OceanBase Community Edition (CE) não é compatível. Para sincronizar dados de uma instância auto-gerenciada do OceanBase Community Edition, use primeiro o Data Transmission Service (DTS) para migrar os dados para o ApsaraDB RDS for MySQL e, em seguida, use o DataWorks para sincronizar os dados com o AnalyticDB for MySQL.

Limitações

Leitura em lote

  • O ApsaraDB for OceanBase é compatível com os modos de tenant Oracle e MySQL. Ao configurar a cláusula where para filtragem de dados ou colunas de função no parâmetro column, garanta que a sintaxe esteja em conformidade com as restrições SQL do modo de tenant correspondente. Caso contrário, a instrução SQL poderá falhar.

  • É possível ler dados de uma view.

  • Durante uma leitura em lote, não modifique os dados em sincronização. Essa precaução evita problemas de qualidade, como duplicação ou perda de dados.

  • Se você configurar a fonte de dados para Read by Partition, a conta usada para acessar a fonte de dados exigirá permissões de system.

Gravação em lote

Nota

A tarefa de sincronização requer, no mínimo, permissões de insert into.... Outras permissões podem ser necessárias dependendo das instruções especificadas nos parâmetros preSql e postSql.

  • Recomendamos o uso do método batch para gravar dados. Esse método envia uma solicitação de gravação apenas quando o número de linhas acumuladas atinge um limiar predefinido.

  • O ApsaraDB for OceanBase é compatível com os modos de tenant Oracle e MySQL. Ao configurar os parâmetros preSql e postSql, assegure-se de que a sintaxe obedeça às restrições SQL do modo de tenant correspondente. Do contrário, a execução da instrução SQL pode resultar em erro.

Leitura em tempo real

  • Este recurso é compatível exclusivamente com o modo de tenant MySQL do OceanBase.

  • Para sincronizar dados em tempo real, ative o recurso de binlog. Para mais informações, consulte Binlog-related operations (Alibaba Cloud instances), Operações relacionadas ao Binlog (instâncias OB Cloud).

  • Tarefas de sincronização completa de banco de dados em tempo real não aceitam fontes de dados no modo de string de conexão.

  • Nas tarefas de sincronização completa de banco de dados em tempo real, a versão do banco de dados deve ser V3.0 ou superior.

  • O OceanBase é um banco de dados relacional distribuído capaz de integrar dados de vários bancos físicos distribuídos em um único banco lógico. No entanto, a sincronização em tempo real de dados do OceanBase para o AnalyticDB for MySQL atualmente aceita apenas dados de um único banco físico. A sincronização de dados de um banco lógico não é compatível.

Preparativos antes da sincronização de dados

Antes de sincronizar dados no DataWorks, prepare o ambiente do ApsaraDB for OceanBase conforme descrito neste tópico. Isso garante que as tarefas de sincronização de dados do ApsaraDB for OceanBase sejam configuradas e executadas corretamente no DataWorks. As seções a seguir detalham os preparativos necessários.

Configurar uma lista de permissões

Adicione o bloco CIDR da VPC do Serverless resource group ou do grupo de recursos exclusivo para Data Integration à lista de permissões do OceanBase. Para mais informações, consulte Add allowlist entries.

Criar uma conta e configurar permissões

Crie uma conta de banco de dados para as operações subsequentes. Essa conta deve possuir as permissões necessárias no OceanBase. Para mais detalhes, consulte Create an account and configure permissions.

Adicionar uma fonte de dados

Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Data source configuration. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar uma fonte de dados.

Desenvolver tarefas de sincronização de dados

Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias de configuração a seguir.

Sincronização em lote de tabela única

Sincronização em tempo real de tabela única

Sincronização completa de banco de dados em tempo real

Apêndice: Exemplos de scripts e descrições de parâmetros

Configurar uma tarefa de sincronização em lote usando o editor de código

Para configurar uma tarefa de sincronização em lote por meio do editor de código, defina os parâmetros relacionados no script respeitando os requisitos unificados de formato. Para mais informações, consulte Script mode configuration. As informações abaixo descrevem os parâmetros obrigatórios para fontes de dados ao utilizar o editor de código na configuração de tarefas de sincronização em lote.

Exemplo de script do Reader

{ "type": "job", "steps": [ { "stepType": "apsaradb_for_OceanBase", // The plug-in name. "parameter": { "datasource": "", // The data source name. "where": "", "column": [ // The columns. "id", "name" ], "splitPk": "" }, "name": "Reader", "category": "reader" }, { "stepType": "stream", "parameter": { "print": false, "fieldDelimiter": "," }, "name": "Writer", "category": "writer" } ], "version": "2.0", "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] }, "setting": { "errorLimit": { "record": "0" // The error count. }, "speed": { "throttle": true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent": 1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } } }

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Caso a edição do DataWorks em uso permita adicionar fontes de dados do ApsaraDB for OceanBase, referencie uma fonte já adicionada pelo nome.

Dois métodos de configuração estão disponíveis: jdbcUrl e username.

Sim

N/A

jdbcUrl

Informações de conexão JDBC do banco de dados de destino. Use um array JSON para a descrição. É possível especificar vários endereços de conexão para um único banco de dados.

Quando múltiplos endereços são configurados, o ApsaraDB for OceanBase Reader testa a conectividade de cada endereço IP sequencialmente até encontrar um válido.

Se todas as tentativas de conexão falharem, o ApsaraDB for OceanBase Reader reportará um erro.

Nota

O parâmetro jdbcUrl deve estar incluído na unidade de configuração connection.

Conforme a especificação oficial do ApsaraDB for OceanBase, o jdbcUrl pode incluir informações adicionais de controle de conexão. Por exemplo, jdbc:oceanbase://127.0.0.1:3306/database. Use este parâmetro ou o username, mas nunca ambos simultaneamente.

Não

N/A

username

Nome de usuário da fonte de dados.

Não

N/A

password

Senha correspondente ao nome de usuário especificado para a fonte de dados.

Não

N/A

table

Tabelas a serem sincronizadas. Use um array JSON para a descrição. A leitura de dados de várias tabelas simultaneamente é permitida.

Ao configurar múltiplas tabelas, certifique-se de que todas possuam o mesmo schema. O ApsaraDB for OceanBase Reader não valida a consistência de schema entre as tabelas.

Nota

O parâmetro table deve constar na unidade de configuração connection.

Sim

N/A

column

Colunas a serem sincronizadas das tabelas configuradas. Descreva as informações das colunas usando um array JSON. Por padrão, todas as colunas são utilizadas, por exemplo, [*].

  • Seleção de colunas compatível: exporte apenas colunas específicas.

  • Reordenação de colunas compatível: exporte as colunas em uma ordem diferente daquela definida no schema da tabela.

  • Configuração de constantes aceita. Exemplo: '123'.

  • Colunas de função aceitas. Exemplo: date('now').

  • O parâmetro column deve especificar explicitamente o conjunto de colunas a sincronizar e não pode ficar vazio.

Sim

N/A

splitPk

Ao especificar o splitPk durante a extração de dados pelo ApsaraDB for OceanBase Reader, os dados são divididos com base na coluna indicada por splitPk. O sistema de sincronização inicia então tarefas concorrentes para aumentar a eficiência.

  • Defina o splitPk como a chave primária da tabela. Chaves primárias geralmente possuem distribuição uniforme, o que ajuda a evitar hotspots de dados entre shards.

  • Atualmente, o splitPk é compatível apenas com divisão por tipos inteiros. Tipos string, ponto flutuante, data e outros não são aceitos. Especificar um tipo incompatível resultará em erro no ApsaraDB for OceanBase Reader.

  • Deixar o splitPk vazio indica que não se deseja dividir uma única tabela. Nesse cenário, a extração de dados utiliza um único canal.

Não

Vazio

where

O ApsaraDB for OceanBase Reader monta uma instrução SQL baseada nos parâmetros column, table e where especificados, utilizando-a posteriormente para extrair os dados.

Por exemplo, durante testes, defina a condição where como limit 10. Em cenários reais de negócio, sincronize dados gerados no dia atual definindo a condição where como gmt_create>$bizdate.

  • A condição where viabiliza a sincronização incremental de dados.

  • Sem a configuração da condição where ou com ela vazia, todos os dados da tabela serão sincronizados.

Não

N/A

querySql

Em certos cenários de negócio, o parâmetro where pode não ser suficiente para descrever as condições de filtro necessárias. Use este parâmetro para definir uma instrução SQL de filtro personalizada. Quando configurado, o sistema de sincronização ignora os parâmetros tables, columns e splitPk, aplicando a instrução SQL configurada para filtrar os dados.

Ao configurar o querySql, o ApsaraDB for OceanBase Reader desconsidera os parâmetros table, column, where e splitPk.

Não

N/A

fetchSize

Define a quantidade de linhas buscadas por lote entre o plug-in e o servidor de banco de dados. Esse valor determina o número de interações de rede entre o sistema de sincronização e o servidor, podendo melhorar significativamente o desempenho da extração de dados.

Nota

Um valor de fetchSize excessivamente alto (>2048) pode provocar erros de falta de memória (OOM) durante a sincronização.

Não

1.024

Exemplo de script do Writer

{ "type":"job", "version":"2.0", // The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"apsaradb_for_OceanBase", // The plug-in name. "parameter":{ "datasource": "Data source name", "column": [ // The columns. "id", "name" ], "table": "apsaradb_for_OceanBase_table", // The table name. "preSql": [ // The SQL statements to execute before the data synchronization task runs. "delete from @table where db_id = -1" ], "postSql": [ // The SQL statements to execute after the data synchronization task runs. "update @table set db_modify_time = now() where db_id = 1" ], "obWriteMode": "insert", }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0" // The error count. }, "speed":{ "throttle":true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled. "concurrent":1, // The concurrency. "mbps":"12" // The throttling rate. 1 mbps = 1 MB/s. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Caso a edição do DataWorks em uso permita adicionar fontes de dados do ApsaraDB for OceanBase, referencie uma fonte já adicionada pelo nome.

Dois métodos de configuração estão disponíveis: jdbcUrl e username.

Não

N/A

jdbcUrl

Informações de conexão JDBC do banco de dados de destino. O jdbcUrl integra a unidade de configuração connection.

  • Configure apenas um valor para cada banco de dados. Cenários onde o mesmo banco possui múltiplos nós primários (importação dual-primary) não são compatíveis.

  • O formato do jdbcUrl segue a especificação oficial do ApsaraDB for OceanBase e pode conter parâmetros adicionais de conexão. Exemplo: jdbc:oceanbase://127.0.0.1:3306/database.

Sim

N/A

username

Nome de usuário da fonte de dados.

Sim

N/A

password

Senha correspondente ao nome de usuário especificado para a fonte de dados.

Sim

N/A

table

Nome da tabela de destino para gravação dos dados. Use um array JSON para a descrição.

Nota

O parâmetro table deve estar presente na unidade de configuração connection.

Sim

N/A

column

Colunas da tabela de destino onde os dados serão gravados. Separe os nomes das colunas por vírgulas (,). Exemplo: "column": ["id", "name", "age"].

Nota

Especifique obrigatoriamente o parâmetro column; ele não pode permanecer vazio.

Sim

N/A

obWriteMode

Modo utilizado para gravar dados na tabela de destino. Parâmetro opcional.

  • insert: insert into ... Linhas conflitantes não são gravadas quando ocorre conflito de chave primária ou índice único.

  • update: ... on duplicate key update ... Aplicável ao modo de tenant MySQL. Linhas conflitantes são atualizadas mediante conflito.

  • merge: merge into ... matched then update ... Aplicável ao modo de tenant Oracle. Linhas conflitantes são atualizadas mediante conflito.

Não

insert

onClauseColumns

Nota

Utilizado no modo de tenant Oracle. Este parâmetro é obrigatório quando o obWriteMode está definido como merge. Sem essa configuração, a gravação de dados ocorre via insert.

Defina este parâmetro com colunas de chave primária ou de restrição única. Separe múltiplas colunas por vírgulas (,). Exemplo: ID,C1.

Não

N/A

obUpdateColumns

Nota

Este parâmetro entra em vigor quando o obWriteMode está definido como merge ou update.

Colunas a serem atualizadas caso ocorra conflito de gravação. Separe múltiplas colunas por vírgulas (,). Exemplo: c2,c3.

Não

Todas as colunas

preSql

Instruções SQL padrão a executar antes da gravação de dados na tabela de destino. Para referenciar o nome da tabela nas instruções SQL, use @table como placeholder. O sistema substitui essa variável pelo nome real da tabela durante a execução.

Não

N/A

postSql

Instruções SQL padrão a executar após a gravação de dados na tabela de destino.

Não

N/A

batchSize

Quantidade de registros enviados em cada lote. Esse valor reduz substancialmente as interações de rede entre o sistema de sincronização e o servidor, elevando o throughput geral.

Nota

Um valor de fetchSize excessivamente alto (>2048) pode provocar erros de falta de memória (OOM) durante a sincronização.

Não

1.024