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.
NotaO 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.
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.
NotaPara 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
Fontes compatíveis: Todas as fontes de dados compatíveis com o Data Integration.
Para mais informações, consulte Codeless UI e Code Editor.
Para a lista completa de parâmetros e exemplos de script do Code Editor, consulte 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 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 |
Sim |
Nenhum |
|
where |
Condição de filtro. Por exemplo, para sincronizar apenas dados gerados no dia atual, defina a condição where como
|
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 {}:
O Stream Load também aceita a 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 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 é |
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 |
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 |