Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de StarRocks

Última actualización: Sep 04, 2026

El origen de datos de StarRocks proporciona canales bidireccionales de lectura y escritura para sincronizar datos con StarRocks mediante DataWorks.

Versiones compatibles

  • Admite todas las versiones de EMR Serverless StarRocks.

  • Admite EMR on ECS: StarRocks version 2.1.

  • Admite StarRocks Community Edition.

    Nota
    • DataWorks se conecta a StarRocks únicamente a través de una VPC. Por lo tanto, debe desplegar StarRocks Community Edition en un clúster de EMR on ECS.

    • StarRocks Community Edition es una plataforma abierta. Si encuentra problemas de compatibilidad, envíe un ticket para obtener soporte.

Limitaciones

  • Para la sincronización en tiempo real de base de datos completa de MySQL a StarRocks, la tabla de destino en StarRocks debe utilizar un modelo de clave primaria.

  • La sincronización en tiempo real de base de datos completa de MySQL a StarRocks no admite operaciones de lenguaje de definición de datos (DDL) distintas de TRUNCATE. Para otras operaciones DDL, puede elegir ignorarlas o configurar la tarea para que notifique un error.

Tipos de datos compatibles

Solo se admiten campos de tipos numéricos, de cadena y de fecha.

Conectividad de red

EMR Serverless StarRocks

Para garantizar la conectividad de red, agregue las direcciones IP de su resource group de DataWorks a la lista blanca de direcciones IP internas de la instancia de EMR Serverless StarRocks.

  • Para obtener la dirección IP del resource group de DataWorks, consulte Common configurations: Add a whitelist.

  • Para configurar las listas blancas de la instancia de EMR Serverless StarRocks:

    En la página de detalles de la instancia, en la sección Basic Information, haga clic en el enlace internal IP address whitelist junto a security group ID para configurar la lista blanca de direcciones IP internas. En la sección FE Details, haga clic en el enlace public whitelist junto al Public Endpoint para configurar la lista blanca pública.

StarRocks autogestionado

Asegúrese de que el resource group de DataWorks pueda acceder al query port, FE port y BE port de su instancia de StarRocks. Estos suelen ser los puertos 9030, 8030 y 8040.

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos requerido siguiendo las instrucciones en Data source configuration. Puede consultar las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.

Seleccione un modo de conexión para StarRocks según su entorno de red:

Escenario 1: Conexión VPC

Una conexión VPC ofrece baja latencia y seguridad, sin necesidad de acceso a la red pública.

  • Caso de uso: Su instancia de StarRocks y el resource group serverless se encuentran en la misma VPC.

  • Modos admitidos: modo de instancia de Alibaba Cloud y modo de cadena de conexión:

    • Seleccione ApsaraDB for RDS: Elija directamente la instancia de StarRocks en la misma VPC. El sistema recupera automáticamente la información de conexión, por lo que no se requiere configuración manual.

    • Seleccione User-created Data Store with Public IP Addresses: Introduzca manualmente el endpoint de intranet, la dirección IP, el puerto y la Load URL de la instancia.

Escenario 2: Conexión a Internet

La transmisión de datos a través de Internet conlleva riesgos de seguridad. Utilice controles de seguridad como listas blancas y control de acceso basado en IP.

  • Caso de uso: Necesita acceder a una instancia de StarRocks a través de Internet, por ejemplo, entre regiones o desde un entorno local.

  • Modo admitido: modo de cadena de conexión (asegúrese de que el acceso a la red pública esté habilitado para la instancia de StarRocks):

    • Seleccione User-created Data Store with Public IP Addresses: Introduzca manualmente el endpoint público, la dirección IP, el puerto y la Load URL de la instancia.

Nota

De forma predeterminada, los resource groups serverless no pueden acceder a Internet. Para conectarse a una instancia de StarRocks mediante un endpoint público, configure una NAT gateway y una EIP para la VPC asociada. También debe asegurarse de que el resource group pueda acceder al query port, FE port y BE port de la instancia de StarRocks, que normalmente son los puertos 9030, 8030 y 8040.

Si utiliza EMR Serverless StarRocks, establezca Host Address/IP Address en el Internal Endpoint o en la Public network address, y utilice el query port como puerto.

  • FE: Puede encontrar esta información en la página de detalles de la instancia.

    En la sección FE Details, localice el public endpoint y el query port (el valor predeterminado es 9030).

  • Base de datos: Después de conectarse a la instancia mediante el EMR StarRocks Manager, puede encontrar la base de datos en la vista SQL Editor o Metadata Management.

    Nota

    Para crear una base de datos, puede ejecutar sentencias SQL directamente en el editor SQL.

Tareas de sincronización de datos

Para obtener información sobre el punto de entrada y el procedimiento para configurar una tarea de sincronización, consulte las siguientes guías de configuración.

Sincronización por lotes de tabla única

Sincronización en tiempo real de tabla única

Sincronización por lotes de base de datos completa

Sincronización en tiempo real de base de datos completa

Ejemplos de script y parámetros

Configurar una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe configurar los parámetros relacionados en el script siguiendo los requisitos unificados de formato de script. Para más información, consulte Script mode configuration. La siguiente información describe los parámetros que debe configurar para los orígenes de datos al utilizar el editor de código.

Ejemplo de script de 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 del script de Reader

Parámetro

Descripción

Obligatorio

Predeterminado

datasource

El nombre del origen de datos de StarRocks.

Sí

Ninguna

selectedDatabase

El nombre de la base de datos de StarRocks.

No

El nombre de la base de datos configurado para el origen de datos de StarRocks.

column

Las columnas de la tabla de origen que se van a sincronizar. Para agregar una sugerencia SET_VAR al leer datos de StarRocks, añada la sugerencia antes del primer nombre de columna en el arreglo de columnas. Por ejemplo, para sincronizar la columna id con la sugerencia SET_VAR(enable_spill = true), establezca el parámetro column en [ "/+ SET_VAR(enable_spill = true)/ id"].

Sí

Ninguna

where

La condición de filtro. Por ejemplo, para sincronizar solo los datos generados en el día actual, establezca la condición where en gmt_create>${bizdate}.

  • La condición where permite la sincronización incremental de datos.

  • Si no proporciona una cláusula where o deja vacío el parámetro where, se realiza una sincronización completa de datos.

No

Ninguna

table

La tabla de origen desde la cual desea sincronizar datos.

Sí

Ninguna

splitPk

La columna utilizada para la fragmentación paralela de datos durante la sincronización. Especificar este parámetro mejora el rendimiento. Para obtener mejores resultados, utilice la clave primaria de la tabla, ya que una clave distribuida uniformemente ayuda a prevenir puntos críticos de datos.

No

Ninguna

Ejemplo de script de 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 del script de Writer

Parámetro

Descripción

Obligatorio

Predeterminado

datasource

El nombre del origen de datos de StarRocks.

Sí

Ninguna

selectedDatabase

El nombre de la base de datos de StarRocks.

No

El nombre de la base de datos configurado para el origen de datos de StarRocks.

loadProps

Nota

Al escribir en StarRocks con Stream Load, la política de escritura (Upsert o Append) la determina el modelo de la tabla de destino y no requiere configuración. Las tablas con modelo de clave primaria utilizan una política Upsert, mientras que otros modelos usan Append de forma predeterminada.

Los parámetros de solicitud para StarRocks Stream Load. Al importar datos CSV, puede configurar los siguientes parámetros. Si no se requiere ninguna configuración especial, utilice {}:

  • column_separator: el delimitador de columnas para la importación CSV. Predeterminado: \t.

  • row_delimiter: el delimitador de filas para la importación CSV. Predeterminado: \n. Si sus datos contienen \t o \n, debe especificar otros caracteres como delimitadores.

  • session_variable: un encabezado HTTP de StarRocks Stream Load que establece variables de sesión de StarRocks durante la carga de datos. Separe múltiples variables con comas (,). Utilice este parámetro para controlar el comportamiento de la sesión de StarRocks durante la carga, como el grupo de cómputo y el tiempo de espera.

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

    Todos los pares clave-valor configurados en loadProps se pasan a la interfaz de StarRocks Stream Load como encabezados HTTP. Por lo tanto, puede configurar cualquier parámetro de encabezado admitido por StarRocks Stream Load, como session_variable, max_filter_ratio y timeout, en loadProps.

Stream Load también admite la importación de datos JSON. Para ello, configure el siguiente parámetro:

{
  "format": "json"
}

Los siguientes parámetros están disponibles para el formato JSON:

  • strip_outer_array: especifica si se debe recortar la estructura de arreglo más externa. Valores válidos: true y false. Valor predeterminado: false.

    Los datos JSON a importar pueden estar encerrados entre corchetes externos ([]) que representan un arreglo. En este caso, establezca este parámetro en true. StarRocks recortará los corchetes externos ([]) e importará cada arreglo interno como una fila separada. Si se establece en false, StarRocks analiza todo el archivo de datos JSON como un único arreglo y lo importa como una sola fila.

    [{"category":1,"author":2},{"category":3,"author":4}]
    
    • Si se establece en true, StarRocks analiza {"category":1,"author":2} y {"category":3,"author":4} como dos filas y las importa en la tabla de destino de StarRocks.

    • Si se establece en false, StarRocks analiza todo el arreglo JSON como una sola fila y lo importa en la tabla de destino de StarRocks.

  • ignore_json_size: especifica si se debe comprobar el tamaño del cuerpo JSON en una solicitud HTTP.

    Nota

    De forma predeterminada, el tamaño del cuerpo JSON en una solicitud HTTP no puede exceder 100 MB. Si el tamaño del cuerpo JSON supera 100 MB, se devuelve el siguiente mensaje de error: 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 este error, puede agregar ignore_json_size: true al encabezado de solicitud HTTP para omitir la comprobación de tamaño del cuerpo JSON.

  • compression: especifica el algoritmo de compresión que se utilizará durante la transmisión de datos de Stream Load. Algoritmos admitidos: GZIP, BZIP2, LZ4_FRAME y ZSTD.

  • strict_mode: especifica si se debe habilitar el modo estricto.

    Valores válidos:

    • true: Habilita el modo estricto. StarRocks filtra las filas no válidas, importa solo las filas válidas y devuelve detalles sobre los datos no válidos.

    • false: Deshabilita el modo estricto. StarRocks convierte los campos que fallan en la conversión a valores NULL e importa las filas que contienen estos valores NULL junto con las filas de datos válidas.

    Valor predeterminado: false.

Sí

Ninguna

column

Las columnas de destino a las cuales desea sincronizar los datos.

Sí

Ninguna

loadUrl

La dirección IP y el puerto HTTP del nodo frontend (FE) de StarRocks. El puerto predeterminado es 8030. Para múltiples nodos FE, especifíquelos todos separados por comas (,).

Sí

Ninguna

table

La tabla de destino a la cual desea sincronizar los datos.

Sí

Ninguna

preSql

Sentencias SQL para ejecutar antes de que comience la tarea de sincronización. Por ejemplo, ejecute TRUNCATE TABLE tablename para borrar los datos existentes de la tabla de destino.

No

Ninguna

postSql

Sentencias SQL para ejecutar después de que finalice la tarea de sincronización.

No

Ninguna

maxBatchRows

El número máximo de filas para escribir por lote.

No

500000

maxBatchSize

El tamaño máximo de datos para escribir por lote, en bytes.

No

5242880

strategyOnError

La política para manejar errores que ocurren durante escrituras por lotes.

Valores válidos:

  • exit: Si ocurre un error de escritura, la tarea falla y finaliza.

  • batchDirtyData: Si ocurre un error de escritura, la tarea registra el lote de datos actual como datos sucios.

Valor predeterminado: exit.

No

exit