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.
NotaDataWorks 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.
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.
NotaPara 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
Orígenes admitidos: Todos los orígenes de datos compatibles con Data Integration.
Para más información, consulte Codeless UI y Code Editor.
Para obtener una lista completa de parámetros y ejemplos de script para el Editor de código, consulte Appendix: Script samples and parameter descriptions.
Sincronización en tiempo real de tabla única
Origen admitido: Kafka
Guía de configuración: Configure a real-time data synchronization task
Sincronización por lotes de base de datos completa
Origen admitido: MySQL
Guía de configuración: Configure a batch data synchronization task
Sincronización en tiempo real de base de datos completa
Orígenes admitidos: MySQL, Oracle y PolarDB
Guía de configuración: Configure a real-time data synchronization task
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 |
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
|
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 {}:
Stream Load también admite la importación de datos JSON. Para ello, configure el siguiente parámetro:
Los siguientes parámetros están disponibles para el formato JSON:
|
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 |
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 |
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:
Valor predeterminado: |
No |
exit |