O DataWorks Data Integration permite gravar dados no SelectDB por meio de sincronização em lote de tabela única ou de banco de dados completo. Este tópico descreve as capacidades de sincronização de dados compatíveis com sources do SelectDB no DataWorks.
Versões compatíveis do SelectDB
O SelectDB Writer usa o MySQL Driver 5.1.47. Para obter mais informações sobre o driver, consulte MySQL Connectors. O driver é compatível com as seguintes versões do SelectDB:
Standard SelectDB: 2.2.31 e 2.2.22.
ApsaraDB for SelectDB: 2.4, 3.0 e 4.0.
Limites
Não há suporte para gravação de dados em colunas dos tipos BITMAP, HLL (HyperLogLog) ou QUANTILE_STATE.
Tipos de dados compatíveis
Para obter a lista completa de tipos de dados compatíveis com cada versão do SelectDB, consulte a documentação oficial do SelectDB. A tabela a seguir usa o SelectDB 2.2.22 como exemplo para descrever os tipos de dados compatíveis.
|
Tipo de dados do SelectDB |
Gravação em lote (SelectDB Writer) |
|
INT |
Compatível |
|
BIGINT |
Compatível |
|
LARGEINT |
Compatível |
|
SMALLINT |
Compatível |
|
TINYINT |
Compatível |
|
BOOLEAN |
Compatível |
|
DECIMAL |
Compatível |
|
DOUBLE |
Compatível |
|
FLOAT |
Compatível |
|
CHAR |
Compatível |
|
VARCHAR |
Compatível |
|
STRING |
Compatível |
|
DATE |
Compatível |
|
DATEV2 |
Compatível |
|
DATETIME |
Compatível |
|
DATETIMEV2 |
Compatível |
|
ARRAY |
Compatível |
|
JSONB |
Compatível |
|
BITMAP |
Não compatível |
|
HLL (HyperLogLog) |
Não compatível |
|
QUANTILE_STATE |
Não compatível |
Prepare para a sincronização de dados
Antes de sincronizar dados no DataWorks, prepare o ambiente do SelectDB conforme descrito nesta seção. Assim, você poderá configurar e executar tarefas de sincronização do SelectDB no DataWorks.
Etapa 1: Verifique a versão do SelectDB
O Data Integration é compatível com versões específicas do SelectDB. Para obter mais informações, consulte Versões compatíveis do SelectDB. No console do SelectDB, verifique se a instância do SelectDB que você deseja sincronizar atende aos requisitos de versão.
Etapa 2: Crie uma conta e configure permissões
Recomendamos que você planeje e crie uma conta dedicada do SelectDB para o DataWorks acessar a source. Se você usar a conta de administrador padrão do data warehouse do SelectDB para fazer login, defina uma senha para essa conta.
Etapa 3: Configure a conectividade de rede com o SelectDB
O SelectDB é compatível com conexões de rede privada e pública. O Data Integration permite que você se conecte ao SelectDB por meio de qualquer uma dessas redes.
Conexão de rede privada: Recomendamos o uso de conexão de rede privada devido à sua maior largura de banda e estabilidade. Antes de usar uma conexão de rede privada, crie um endpoint conforme descrito em Network configuration. Após criar o endpoint, o status dele muda de Creating para Available, e o status da conexão muda de Connecting... para Connected. Em seguida, associe a VPC que contém o endpoint à VPC que contém o grupo de recursos. Para obter mais informações, consulte Soluções de conectividade de rede.
Conexão de rede pública: Adicione o EIP do grupo de recursos à lista de permissões do SelectDB. Para obter mais informações, consulte Configurar uma lista de permissões.
Adicione uma source
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a source necessária ao DataWorks seguindo as instruções em Configuração de source. Visualize as descrições dos parâmetros no console do DataWorks para entender o significado dos parâmetros ao adicionar uma source.
A lista a seguir descreve alguns parâmetros de configuração para uma source do SelectDB:
MySQL connection address: Insira a string de conexão JDBC. No console do SelectDB, acesse e copie a JDBC connection string. Endereços IP públicos e privados são compatíveis.
HTTP connection address: Insira o endereço de acesso HTTP. No console do SelectDB, acesse e copie o HTTP access address. Endereços IP públicos e privados são compatíveis.
Username: Insira o nome de usuário da conta do data warehouse do SelectDB.
Password: Insira a senha da conta do data warehouse do SelectDB.
Desenvolva tarefas de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os seguintes guias de configuração.
Configure uma tarefa de sincronização em lote de tabela única
Para obter mais informações sobre o procedimento, consulte Configuração de interface sem código e Configuração de modo de script.
Para obter a lista completa de parâmetros e um script de exemplo para configurar uma tarefa no editor de código, consulte Apêndice: Parâmetros e scripts de exemplo do SelectDB.
Configure uma tarefa de sincronização em lote de banco de dados completo
Tipos de source compatíveis: MySQL e PostgreSQL.
Para obter mais informações sobre o procedimento, consulte Configuração de sincronização de banco de dados em lote.
Apêndice: Parâmetros e scripts de exemplo do SelectDB
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote por meio do editor de código, configure os parâmetros relacionados no script com base nos requisitos unificados de formato de script. Para obter mais informações, consulte Configuração de modo de script. As informações a seguir descrevem os parâmetros que você deve configurar para as sources ao configurar uma tarefa de sincronização em lote no editor de código.
Script de exemplo do Writer
{
"stepType": "selectdb",//Plug-in name.
"parameter":
{
"postSql"://SQL statements to execute after the synchronization task runs.
[],
"preSql":
[],//SQL statements to execute before the synchronization task runs.
"datasource":"selectdb_datasource",//Data source name.
"table": "selectdb_table_name",//Table name.
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
],
"loadProps":{
"format":"csv",//Use CSV format.
"column_separator": "\\x01",//Column delimiter.
"line_delimiter": "\\x02"//Row delimiter.
}
},
"name": "Writer",
"category": "writer"
}
Parâmetros do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
datasource |
O nome da source. Você pode adicionar uma source ao configurar uma tarefa no editor de código. O valor deve corresponder ao nome da source adicionada. |
Sim |
Nenhum |
|
table |
O nome da tabela para a qual você deseja sincronizar os dados. |
Sim |
Nenhum |
|
column |
As colunas na tabela de destino nas quais você deseja gravar dados, separadas por vírgulas (,). Exemplo: |
Sim |
Nenhum |
|
preSql |
Execute as instruções SQL antes da execução da tarefa de sincronização. A interface sem código suporta apenas uma instrução SQL, enquanto o editor de código suporta várias. Por exemplo, você pode limpar os dados existentes da tabela antes da execução da tarefa. |
Não |
Nenhum |
|
postSql |
Execute as instruções SQL após a execução da tarefa de sincronização. A interface sem código suporta apenas uma instrução SQL, enquanto o editor de código suporta várias. Por exemplo, você pode adicionar um carimbo de data/hora após a execução da tarefa. |
Não |
Nenhum |
|
maxBatchRows |
O número máximo de linhas a importar em cada lote. Este parâmetro e o batchSize controlam em conjunto a quantidade de dados importados em cada lote. Um lote é importado assim que qualquer um dos limiares é atingido. |
Não |
500000 |
|
batchSize |
A quantidade máxima de dados a importar em cada lote. Este parâmetro e o maxBatchRows controlam em conjunto a quantidade de dados importados em cada lote. Um lote é importado assim que qualquer um dos limiares é atingido. |
Não |
94371840 |
|
maxRetries |
O número de novas tentativas caso a importação de um lote falhe. |
Não |
3 |
|
labelPrefix |
O prefixo do rótulo para os arquivos enviados em cada lote. O rótulo final é gerado como |
Não |
datax_selectdb_writer_ |
|
loadProps |
Os parâmetros de solicitação para COPY INTO, usados principalmente para especificar o formato dos dados a importar. JSON é o formato padrão. Se o loadProps não for configurado ou for definido como
Para importar dados no formato CSV, especifique o formato e os delimitadores de linha e coluna conforme mostrado no exemplo a seguir. Se você não especificar os delimitadores, os dados de entrada serão convertidos em strings e combinados em um arquivo CSV para importação no SelectDB, com
|
Não |
Nenhum |
|
clusterName |
O nome do cluster do SelectDB Cloud. Visualize-o no console do SelectDB. |
Não |
Nenhum |
|
flushInterval |
O intervalo entre os lotes de gravação, em milissegundos. Se o maxBatchRows e o batchSize forem definidos com valores altos, o sistema poderá importar um lote quando esse intervalo expirar, antes que qualquer um dos limiares de volume de dados seja atingido. |
Não |
30000 |