Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados do Databricks

Última atualização: Oct 10, 2026

Este tópico descreve os recursos e o suporte para sincronizar dados do Databricks com o DataWorks.

Notas de uso

  • Limites

    • Grupo de recursos: o Databricks Reader oferece suporte apenas a Serverless resource groups. Configure Internet NAT gateway e um EIP para a VPC vinculada ao grupo de recursos.

    • Modo de leitura: a sincronização de dados oferece suporte apenas à leitura por meio de JDBC.

    • Tipo de catálogo e limites de recursos: para testar a conectividade da fonte de dados ou configurar uma tarefa de sincronização no modo assistente, o DataWorks usa databricks-sdk para chamar a API REST do Databricks, que oferece suporte apenas ao Unity Catalog. Se o seu catálogo, como hive_metastore, não for o Unity Catalog, esses recursos ficarão indisponíveis. Escolha uma das seguintes opções:

      • Opção 1 (recomendada): migrar para o Unity Catalog. O Databricks recomenda a migração dos seus dados e metadados para o Unity Catalog para usar todos os recursos do DataWorks. Para obter instruções, consulte Migrar para o Unity Catalog.

      • Opção 2: usar o modo de script diretamente. Após configurar a fonte de dados no DataWorks, ignore Test Connectivity e use script mode para desenvolver a tarefa de sincronização.

  • Leituras simultâneas e consistência de dados

    O Databricks Reader usa splitPk para dividir os dados e iniciar tarefas simultâneas para uma sincronização mais rápida. Observe o seguinte:

    • As tarefas simultâneas não fazem parte da mesma transação de banco de dados e não começam exatamente ao mesmo tempo.

    • Se a fonte de dados ainda estiver recebendo gravações, as leituras simultâneas podem produzir um snapshot incompleto ou inconsistente.

    Soluções alternativas: limitações técnicas impedem um snapshot perfeitamente consistente em várias threads. Escolha uma destas abordagens com base na sua carga de trabalho:

    • Opção 1: use a sincronização de thread única sem divisão de dados (splitPk). Isso fornece consistência estrita, mas é mais lento.

    • Opção 2: mantenha a fonte de dados estática durante a sincronização, por exemplo, bloqueando a tabela, desativando temporariamente as gravações do aplicativo ou pausando a sincronização de réplicas. Isso é mais rápido, mas pode afetar o tráfego de produção.

  • Codificação

    O Databricks Reader extrai dados com JDBC, que detecta e converte automaticamente as codificações entre bancos de dados. Você não precisa configurar a codificação manualmente.

  • Sincronização incremental

    O Databricks Reader extrai dados ao executar uma instrução SELECT ... WHERE .... A sincronização incremental depende da construção da condição WHERE.

    1. Abordagem recomendada (campo de timestamp):

      1. Adicione um campo de timestamp, como modify_time, à tabela source.

      2. Sempre que o aplicativo inserir ou atualizar um registro, incluindo uma exclusão lógica, atualize também o campo de timestamp.

      3. Use o campo de timestamp na condição WHERE da tarefa para buscar alterações desde o último ponto de sincronização.

    2. Caso não compatível: se a tabela de negócios não tiver um campo que distinga registros inseridos ou atualizados, como um timestamp ou ID de incremento automático, o Databricks Reader não poderá sincronizar incrementalmente e deverá executar a sincronização completa.

Tipos de campo suportados

Para leituras offline, o Databricks Reader oferece suporte à maioria dos tipos do Databricks, mas alguns tipos não são compatíveis. Verifique os tipos dos seus campos.

A tabela a seguir lista as conversões de tipo suportadas pelo Databricks Reader.

Categoria de tipo

Tipo de dados do Databricks

Inteiro

TINYINT, SMALLINT, INT, BIGINT

Ponto flutuante

FLOAT, DOUBLE, DECIMAL

String

STRING

Data e hora

DATE, TIMESTAMP, TIMESTAMP_NTZ

Booleano

BOOLEAN

Tipo complexo

ARRAY, MAP, STRUCT

Outros tipos

INTERVAL, BINARY, GEOGRAPHY(srid), GEOMETRY(srid)

Crie uma fonte de dados

Antes de desenvolver uma tarefa de sincronização de dados, crie a fonte de dados correspondente no DataWorks. Para o procedimento, consulte Data source configuration.As explicações dos parâmetros de configuração estão disponíveis na interface de configuração..

Desenvolva uma tarefa de sincronização de dados

Consulte os guias a seguir para obter pontos de entrada. Configure a tarefa de sincronização seguindo as etapas comuns indicadas.

Guia de configuração de sincronização offline de tabela única

Perguntas frequentes

  • P: Uma leitura falha com [Databricks]JDBCDriver Error getting the data value from result set: Column13:[Databricks]JDBCDriver Error in fetching data rows: Timestamp Conversion has failed.

    R: Os valores TIMESTAMP do Databricks podem estar fora do intervalo suportado pelo Java Timestamp, causando um erro no driver JDBC. Modifique a configuração de column, por exemplo "column": ["CAST(col_timestamp AS STRING)"].

Apêndice: Script de exemplo e descrições de parâmetros

Configuração de script de tarefa offline

Se você usar o modo de script para uma tarefa offline, escreva os parâmetros necessários no formato de script padrão. Para obter detalhes, consulte Configure an offline synchronization task in script mode. A seguir, descrevemos os parâmetros da fonte de dados no modo de script.

Script do Reader de exemplo

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "databricks",
      "parameter": {
        "datasource": "databricks",
        "schema": "schema1",
        "table": "table1",
        "readMode": "jdbc",
        "where": "id>1",
        "splitPk": "id",
        "column": [
          "c1",
          "c2"
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  }
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Valor padrão

datasource

Nome da fonte de dados. O modo de script oferece suporte à adição de fontes de dados; este valor deve corresponder ao nome da fonte de dados adicionada.

Sim

Nenhum

column

Lista de nomes de colunas a serem sincronizadas da tabela configurada, expressa como um array JSON.

  • Há suporte para poda de colunas, permitindo exportar apenas algumas colunas.

  • Há suporte para reordenação de colunas, permitindo que a ordem de exportação seja diferente do esquema da tabela.

  • Há suporte para valores constantes se seguirem a sintaxe SQL do Databricks.

Por exemplo:"column":["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3" , "true"]

  • id é um nome de coluna comum.

  • 1 é uma constante inteira.

  • 'const name' é uma constante de string e deve estar entre aspas simples.

  • null é um valor nulo.

  • upper('abc_lower') é uma expressão de função.

  • 2.3 é um número de ponto flutuante.

  • true é um valor booleano.

Especifique explicitamente um conjunto não vazio de colunas em column.

Sim

Nenhum

splitPk

Especifique splitPk para que o Databricks Reader use o campo splitPk para dividir os dados e inicie tarefas de sincronização simultâneas para um melhor desempenho:

  • Recomendamos usar a chave primária da tabela como splitPk, pois as chaves primárias geralmente são distribuídas de forma bastante uniforme, reduzindo a distorção de dados nas divisões.

  • Atualmente, splitPk oferece suporte à divisão apenas em campos inteiros. Ponto flutuante, string, data e outros tipos não são compatíveis; especificá-los causa um erro.

Não

Nenhum

where

Condição de filtro. O Databricks Reader a combina com column, table e where especificados para formar a consulta completa e extrair dados. Para sincronizar os dados de hoje em uma carga de trabalho típica, defina where como gmt_create>${bizdate}. A condição where oferece suporte à sincronização incremental. Se deixada vazia, a tabela inteira será sincronizada.

Não

Nenhum

schema

Esquema que contém os dados a serem sincronizados.

Sim

Nenhum

table

Tabela selecionada para sincronização. Cada job oferece suporte a uma tabela.

Sim

Nenhum

readMode

Modo de leitura. Atualmente, apenas JDBC é suportado.

Não

jdbc