A fonte de dados StarRocks permite ler e gravar no StarRocks. Este tópico descreve como sincronizar dados com o StarRocks usando o 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.
NotaO DataWorks conecta-se ao StarRocks apenas por meio de uma VPC. Portanto, implante a StarRocks Community Edition em um cluster EMR on ECS.
A StarRocks Community Edition é uma plataforma aberta. Se encontrar problemas de compatibilidade ao usar esta fonte de dados, envie 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 um modelo de chave primária.
A sincronização em tempo real de banco de dados completo do MySQL para o StarRocks não oferece suporte a operações de Linguagem de Definição de Dados (DDL), exceto TRUNCATE. Para outras operações DDL, ignore-as ou configure a tarefa para reportar erro.
Tipos de dados compatíveis
Somente campos dos tipos numérico, string e data são compatíveis.
Conectividade de rede
EMR Serverless StarRocks
Para garantir a conectividade de rede, adicione os endereços IP do grupo de recursos do DataWorks à lista de permissões de endereços IP internos da sua 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 sua instância EMR Serverless StarRocks, siga estas etapas:
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 do Public Endpoint para configurar a lista de permissões pública.
StarRocks autogerenciado
Garanta que o grupo de recursos do DataWorks possa 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 management. Consulte as descrições dos parâmetros no console do DataWorks para compreender o significado de cada parâmetro ao adicionar a fonte de dados.
Selecione um modo de conexão para o StarRocks com base no 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 via 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, por exemplo, entre regiões 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 para a 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.
Por padrão, grupos de recursos serverless não acessam a internet. Para conectar-se a uma instância StarRocks usando um endpoint público, configure um NAT gateway e um EIP para a VPC associada, habilitando assim o acesso à internet. Além disso, garanta que o grupo de recursos possa acessar a query port, a FE port e a BE port da instância StarRocks, que geralmente correspondem às portas 9030, 8030 e 8040.
Se estiver usando o EMR Serverless StarRocks, defina o campo Host Address/IP Address como o Internal Endpoint ou o 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.
NotaPara criar um banco de dados, execute instruções SQL diretamente no editor SQL.
Tarefas de sincronização de dados
Para informações 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
Fontes compatíveis: Todas as fontes de dados compatíveis com o Data Integration.
Para mais detalhes, consulte Codeless UI e Code Editor.
Para uma lista completa de parâmetros e exemplos de script para o Code Editor, visualize Appendix: Script samples and parameter descriptions.
Sincronização em tempo real de tabela única
Fonte compatível: Kafka
Guia de configuração: Configure a real-time data synchronization task
Sincronização em lote de banco de dados completo
Fonte compatível: MySQL
Guia de configuração: Configure a batch data synchronization task
Sincronização em tempo real de banco de dados completo
Fontes compatíveis: MySQL, Oracle e PolarDB
Guia de configuração: Configure a real-time data synchronization task
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 conforme os requisitos unificados de formato. Para mais informações, consulte Script mode configuration. As informações a seguir detalham os parâmetros obrigatórios para fontes de dados na configuração via editor de código.
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
|
Parameter |
Description |
Required |
Default |
|
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 durante a leitura de dados do StarRocks, insira a dica antes do primeiro nome de coluna no array. Por exemplo, para sincronizar a coluna |
Sim |
Nenhum |
|
where |
Condição de filtro. Em cenários típicos de sincronização de dados gerados no dia atual, defina a condição where como
|
Não |
Nenhum |
|
table |
Tabela de origem dos dados a serem sincronizados. |
Sim |
Nenhum |
|
splitPk |
Especificar o parâmetro splitPk permite a sincronização paralela de dados por meio de data sharding baseado na coluna indicada, melhorando o desempenho. Recomenda-se usar a chave primária da tabela para o parâmetro splitPk, pois chaves uniformemente distribuídas evitam pontos críticos 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
|
Parameter |
Description |
Required |
Default |
|
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 escrita (Upsert ou Append) depende do modelo da tabela de destino e não exige configuração. Tabelas com modelo de chave primária usam a política Upsert, enquanto outros modelos adotam Append por padrão. Parâmetros de requisição para o Stream Load do StarRocks. Ao importar dados CSV via Stream Load, é possível configurar parâmetros opcionais. Se não houver necessidade de configuração especial, use {}. Os parâmetros configuráveis incluem:
Caso seus dados contenham \t ou \n, especifique outros caracteres como delimitadores. Exemplo:
O Stream Load também oferece suporte à importação de dados JSON. Para isso, configure o seguinte parâmetro:
Os seguintes parâmetros estão disponíveis para o formato JSON:
|
Sim |
Nenhum |
|
column |
Colunas de destino para sincronização dos dados. |
Sim |
Nenhum |
|
loadUrl |
Endereço IP e porta HTTP do nó frontend (FE) do StarRocks. A porta padrão geralmente é |
Sim |
Nenhum |
|
table |
Tabela de destino para sincronização dos dados. |
Sim |
Nenhum |
|
preSql |
Instruções SQL a serem executadas antes do início da tarefa de sincronização. Por exemplo, execute |
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:
Valor padrão: |
Não |
exit |