Todos os produtos
Search
Central de documentação

DataWorks:Fonte de dados StarRocks

Última atualização: Aug 27, 2026

A fonte de dados StarRocks oferece canais bidirecionais de leitura e gravação para sincronizar dados com o StarRocks por meio do DataWorks.

Versões compatíveis

  • Compatível com todas as versões do EMR Serverless StarRocks.

  • Compatível com EMR on ECS: StarRocks version 2.1.

  • Compatível com a StarRocks Community Edition.

    Nota
    • O DataWorks conecta-se ao StarRocks exclusivamente via VPC. Portanto, implante a StarRocks Community Edition em um cluster EMR on ECS.

    • A StarRocks Community Edition é uma plataforma aberta. Em caso de problemas de compatibilidade, abra um ticket para obter suporte.

Limitações

  • Na sincronização em tempo real de banco de dados completo do MySQL para o StarRocks, a tabela de destino no StarRocks deve usar o modelo de chave primária.

  • A sincronização em tempo real de banco de dados completo do MySQL para o StarRocks não aceita operações de Linguagem de Definição de Dados (DDL), exceto TRUNCATE. Para outras operações DDL, ignore-as ou configure a tarefa para gerar erro.

Tipos de dados compatíveis

Somente campos dos tipos numérico, string e data são aceitos.

Conectividade de rede

EMR Serverless StarRocks

Para garantir a conectividade de rede, adicione os endereços IP do seu grupo de recursos do DataWorks à lista de permissões de endereços IP internos da instância EMR Serverless StarRocks.

  • Para obter o endereço IP do grupo de recursos do DataWorks, consulte Common configurations: Add a whitelist.

  • Para configurar as listas de permissões da instância EMR Serverless StarRocks:

    Na página de detalhes da instância, na seção Basic Information, clique em internal IP address whitelist ao lado de security group ID para configurar a lista de permissões de endereços IP internos. Na seção FE Details, clique em public whitelist ao lado de Public Endpoint para configurar a lista de permissões pública.

StarRocks autogerenciado

Certifique-se de que o grupo de recursos do DataWorks consiga acessar a query port, a FE port e a BE port da sua instância StarRocks. Geralmente, essas portas correspondem a 9030, 8030 e 8040.

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 durante a adição da fonte de dados.

Escolha o modo de conexão para o StarRocks conforme o seu ambiente de rede:

Cenário 1: Conexão VPC

A conexão VPC oferece baixa latência e segurança, sem necessidade de acesso à rede pública.

  • Caso de uso: Sua instância StarRocks e o grupo de recursos serverless estão na mesma VPC.

  • Modos compatíveis: Modo de instância Alibaba Cloud e modo de string de conexão:

    • Selecione ApsaraDB for RDS: Escolha diretamente a instância StarRocks na mesma VPC. O sistema recupera automaticamente as informações de conexão, eliminando a necessidade de configuração manual.

    • Selecione User-created Data Store with Public IP Addresses: Insira manualmente o endpoint de intranet, o endereço IP, a porta e a Load URL da instância.

Cenário 2: Conexão Internet

A transmissão de dados pela internet apresenta riscos de segurança. Utilize controles como listas de permissões e controle de acesso baseado em IP.

  • Caso de uso: Necessidade de acessar uma instância StarRocks pela internet, como entre regiões diferentes ou a partir de um ambiente local.

  • Modo compatível: modo de string de conexão (certifique-se de que o acesso à rede pública esteja habilitado na instância StarRocks):

    • Selecione User-created Data Store with Public IP Addresses: Insira manualmente o endpoint público, o endereço IP, a porta e a Load URL da instância.

Nota

Por padrão, grupos de recursos serverless não acessam a internet. Para conectar-se a uma instância StarRocks via endpoint público, configure um NAT gateway e um EIP para a VPC associada. Além disso, garanta que o grupo de recursos tenha acesso à query port, à FE port e à BE port da instância StarRocks, que normalmente correspondem às portas 9030, 8030 e 8040.

Se estiver utilizando o EMR Serverless StarRocks, defina o campo Host Address/IP Address como Internal Endpoint ou Public network address e utilize a query port como porta.

  • FE: Essas informações estão disponíveis na página de detalhes da instância.

    Na seção FE Details, localize o public endpoint e a query port (o padrão é 9030).

  • Database: Após conectar-se à instância pelo EMR StarRocks Manager, localize o banco de dados na visualização SQL Editor ou Metadata Management.

    Nota

    Para criar um banco de dados, execute instruções SQL diretamente no editor SQL.

Tarefas de sincronização de dados

Para detalhes sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias abaixo.

Sincronização em lote de tabela única

Sincronização em tempo real de tabela única

Sincronização em lote de banco de dados completo

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

Exemplos de script e parâmetros

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

Ao configurar uma tarefa de sincronização em lote pelo editor de código, defina os parâmetros relevantes no script seguindo os requisitos unificados de formato. Para mais detalhes, consulte Script mode configuration. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados nesse tipo de configuração.

Exemplo de script do Reader

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "datasource": "starrocks_datasource",
        "column": [
            "id",
            "name"
        ],
        "where": "id>100",
        "table": "table1",
        "splitPk": "id"
    },
    "name": "Reader",
    "category": "reader"
}

Parâmetros do script do Reader

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados StarRocks.

Sim

Nenhum

selectedDatabase

Nome do banco de dados StarRocks.

Não

Nome do banco de dados configurado na fonte de dados StarRocks.

column

Colunas da tabela de origem a serem sincronizadas. Para adicionar uma dica SET_VAR ao ler dados do StarRocks, inclua-a antes do primeiro nome de coluna no array. Por exemplo, para sincronizar a coluna id com a dica SET_VAR(enable_spill = true), defina o parâmetro column como [ "/+ SET_VAR(enable_spill = true)/ id"].

Sim

Nenhum

where

Condição de filtro. Por exemplo, para sincronizar apenas dados gerados no dia atual, defina a condição where como gmt_create>${bizdate}.

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

  • Se nenhuma cláusula where for fornecida ou se o parâmetro where estiver vazio, uma sincronização completa de dados será executada.

Não

Nenhum

table

Tabela de origem de onde os dados serão sincronizados.

Sim

Nenhum

splitPk

Coluna utilizada para fragmentação paralela de dados durante a sincronização. Especificar este parâmetro melhora o desempenho. Para melhores resultados, use a chave primária da tabela, pois uma chave bem distribuída ajuda a evitar pontos de congestionamento de dados.

Não

Nenhum

Exemplo de script do Writer

{
    "stepType": "starrocks",
    "parameter": {
        "selectedDatabase": "didb1",
        "loadProps": {
            "row_delimiter": "\\x02",
            "column_separator": "\\x01"
        },
        "datasource": "starrocks_public",
        "column": [
            "id",
            "name"
        ],
        "loadUrl": [
            "1.1.X.X:8030"
        ],
        "table": "table1",
        "preSql": [
            "truncate table table1"
        ],
        "postSql": [
        ],
        "maxBatchRows": 500000,
        "maxBatchSize": 5242880,
        "strategyOnError": "exit"
    },
    "name": "Writer",
    "category": "writer"
}

Parâmetros do script do Writer

Parâmetro

Descrição

Obrigatório

Padrão

datasource

Nome da fonte de dados StarRocks.

Sim

Nenhum

selectedDatabase

Nome do banco de dados StarRocks.

Não

Nome do banco de dados configurado na fonte de dados StarRocks.

loadProps

Nota

Ao gravar no StarRocks com Stream Load, a política de gravação (Upsert ou Append) é determinada pelo modelo da tabela de destino e não requer configuração. Tabelas com modelo de chave primária usam a política Upsert, enquanto outros modelos adotam a política Append por padrão.

Parâmetros de solicitação para o StarRocks Stream Load. Ao importar dados CSV, configure os seguintes parâmetros. Se nenhuma configuração especial for necessária, use {}:

  • column_separator: delimitador de coluna para importação CSV. Padrão: \t.

  • row_delimiter: delimitador de linha para importação CSV. Padrão: \n. Se seus dados contiverem \t ou \n, especifique outros caracteres como delimitadores.

  • session_variable: cabeçalho HTTP do StarRocks Stream Load que define variáveis de sessão durante o carregamento de dados. Separe múltiplas variáveis com vírgulas (,). Use este parâmetro para controlar o comportamento da sessão do StarRocks durante o carregamento, como o grupo de computação e o tempo limite.

    {"column_separator":"\\x01","row_delimiter":"\\x02","session_variable":"warehouse=qwe,query_timeout=600"}

    Todos os pares chave-valor configurados em loadProps são passados para a interface do StarRocks Stream Load como cabeçalhos HTTP. Portanto, é possível configurar qualquer parâmetro de cabeçalho aceito pelo StarRocks Stream Load, como session_variable, max_filter_ratio e timeout, dentro de loadProps.

O Stream Load também aceita a importação de dados JSON. Para isso, configure o seguinte parâmetro:

{
  "format": "json"
}

Os seguintes parâmetros estão disponíveis para o formato JSON:

  • strip_outer_array: especifica se a estrutura de array mais externa deve ser removida. Valores válidos: true e false. Valor padrão: false.

    Os dados JSON a serem importados podem estar envolvidos por colchetes externos ([]) que representam um array. Nesse caso, defina este parâmetro como true. O StarRocks então remove os colchetes externos ([]) e importa cada array interno como uma linha separada. Se definido como false, o StarRocks analisa todo o arquivo de dados JSON como um único array e o importa como uma única linha.

    [{"category":1,"author":2},{"category":3,"author":4}]
    
    • Se definido como true, o StarRocks analisa {"category":1,"author":2} e {"category":3,"author":4} como duas linhas distintas e as importa para a tabela StarRocks de destino.

    • Se definido como false, o StarRocks analisa todo o array JSON como uma única linha e o importa para a tabela StarRocks de destino.

  • ignore_json_size: especifica se o tamanho do corpo JSON em uma solicitação HTTP deve ser verificado.

    Nota

    Por padrão, o tamanho do corpo JSON em uma solicitação HTTP não pode exceder 100 MB. Se o tamanho do corpo JSON ultrapassar 100 MB, a seguinte mensagem de erro será retornada: The size of this batch exceed the max size [104857600] of json type data data [8617627793].Set ignore_json_size to skip check,although it may lead huge memory consuming. Para evitar esse erro, adicione ignore_json_size: true ao cabeçalho da solicitação HTTP para pular a verificação de tamanho do corpo JSON.

  • compression: especifica o algoritmo de compressão a ser usado durante a transmissão de dados do Stream Load. Algoritmos aceitos: GZIP, BZIP2, LZ4_FRAME e ZSTD.

  • strict_mode: especifica se o modo estrito deve ser ativado.

    Valores válidos:

    • true: Ativa o modo estrito. O StarRocks filtra linhas inválidas, importa apenas as válidas e retorna detalhes sobre os dados inválidos.

    • false: Desativa o modo estrito. O StarRocks converte campos com falha de conversão em valores NULL e importa as linhas contendo esses valores NULL juntamente com as linhas de dados válidas.

    Valor padrão: false.

Sim

Nenhum

column

Colunas de destino para as quais os dados serão sincronizados.

Sim

Nenhum

loadUrl

Endereço IP e porta HTTP do nó frontend (FE) do StarRocks. A porta padrão é 8030. Para múltiplos nós FE, especifique todos eles separados por vírgulas (,).

Sim

Nenhum

table

Tabela de destino para a qual os dados serão sincronizados.

Sim

Nenhum

preSql

Instruções SQL a serem executadas antes do início da tarefa de sincronização. Por exemplo, execute TRUNCATE TABLE tablename para limpar dados existentes na tabela de destino.

Não

Nenhum

postSql

Instruções SQL a serem executadas após a conclusão da tarefa de sincronização.

Não

Nenhum

maxBatchRows

Número máximo de linhas a serem gravadas por lote.

Não

500000

maxBatchSize

Tamanho máximo de dados a serem gravados por lote, em bytes.

Não

5242880

strategyOnError

Política para tratamento de erros ocorridos durante gravações em lote.

Valores válidos:

  • exit: Se ocorrer um erro de gravação, a tarefa falha e encerra.

  • batchDirtyData: Se ocorrer um erro de gravação, a tarefa registra o lote de dados atual como dados incorretos.

Valor padrão: exit.

Não

exit