O Data Integration do DataWorks permite gravar dados no SelectDB por meio de sincronização offline de tabela única ou de banco de dados completo. Este tópico descreve os recursos de sincronização de dados compatíveis.
Versões compatíveis do SelectDB
O SelectDB Writer utiliza o MySQL Driver 5.1.47. Para obter mais informações sobre os recursos desse driver, consulte MySQL Connectors. O driver é compatível com as seguintes versões:
Versões padrão do SelectDB: 2.2.31 e 2.2.22.
Versões do SelectDB na Alibaba Cloud: 2,4, 3,0 e 4,0.
Limitações
Não há suporte para gravação de dados em campos dos tipos BITMAP, HLL (HyperLogLog) ou QUANTILE_STATE.
Tipos de campo compatíveis
Para obter a lista completa de tipos de campo de cada versão do SelectDB, consulte a documentação oficial do SelectDB. A tabela a seguir lista os tipos de campo compatíveis com o SelectDB 2.2.22 como exemplo.
|
Tipo de campo SelectDB |
Gravação offline (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 |
|
BITMATP |
Não compatível |
|
HLL (HyperLogLog) |
Não compatível |
|
QUANTILE_STATE |
Não compatível |
Preparações antes da sincronização de dados
Antes de sincronizar dados no DataWorks, prepare o ambiente de sincronização no lado do SelectDB conforme descrito neste tópico. Isso garante a configuração e execução corretas das tarefas de sincronização de dados do SelectDB no DataWorks. As seções a seguir detalham as preparações necessárias antes da sincronização com o SelectDB.
Preparação 1: Confirme a versão do SelectDB
O Data Integration possui requisitos de versão para o SelectDB. Para mais detalhes, consulte Versões compatíveis do SelectDB. Verifique se a instância do SelectDB a ser sincronizada atende aos requisitos de versão no console do SelectDB.
Preparação 2: Crie uma conta e configure permissões
Recomendamos criar uma conta dedicada no SelectDB para que o DataWorks acesse a fonte de dados. Caso prefira usar o usuário administrador padrão do data warehouse SelectDB para fazer login, defina uma senha para esse usuário.
Preparação 3: Configure a conexão de rede para o SelectDB
O SelectDB aceita conexões de rede privada e pública. O Data Integration permite conectar-se ao SelectDB por meio de rede privada ou pública.
Conexão de rede privada: Oferece maior largura de banda e conectividade mais estável, sendo a opção recomendada. Antes de utilizar essa conexão, crie um endpoint seguindo as instruções em Network Configuration. Após a criação do endpoint, quando seu status mudar de Creating para Available e o status da conexão alterar de Connecting para Connected, associe a VPC do endpoint à VPC do grupo de recursos. Para mais informações, consulte Configurar conectividade de rede.
Conexão de rede pública: Adicione os endereços EIP do grupo de recursos à lista de permissões do SelectDB. Para mais informações, consulte Adicionar lista de permissões.
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 Gerenciamento de fontes de dados. Consulte as descrições de parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.
A seção a seguir descreve os itens de configuração de uma fonte de dados SelectDB:
Mysql Connection Address: Insira a string de conexão JDBC. Copie a JDBC Connection String em no console do SelectDB. Há suporte para endereços IP públicos e privados.
HTTP Connection Address: Insira o endereço de acesso via protocolo HTTP. Copie o HTTP Protocol Access Address em no console do SelectDB. Há suporte para endereços IP públicos e privados.
Username: Insira o nome de usuário do data warehouse SelectDB.
Password: Insira a senha do usuário correspondente do data warehouse SelectDB.
Desenvolvimento de 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 de configuração a seguir.
Guia de configuração de tarefa de sincronização em lote de tabela única
Para o procedimento, consulte Configurar uma tarefa de sincronização em lote no modo assistente e Configurar uma tarefa de sincronização em lote no modo script.
Para obter os parâmetros completos e um exemplo de script no modo script, consulte Apêndice: Exemplo de script SelectDB e descrição de parâmetros.
Guia de configuração de tarefa de sincronização em lote de banco de dados completo
Fontes de dados compatíveis: MySQL e PostgreSQL.
Para o procedimento, consulte Configurar uma tarefa de sincronização em lote de banco de dados completo.
Apêndice: Exemplo de script SelectDB e descrição de parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configurar uma tarefa de sincronização em lote com o editor de código, defina os parâmetros relevantes no script de acordo com os requisitos unificados de formato. Para mais informações, consulte Configuração no modo script. As informações a seguir descrevem os parâmetros obrigatórios para fontes de dados ao configurar uma tarefa de sincronização em lote pelo editor de código.
Exemplo de script do Writer
{ "stepType": "selectdb",//The plug-in name. "parameter": { "postSql"://The SQL statements that are executed after the data synchronization task is run. [], "preSql": [],//The SQL statements that are executed before the data synchronization task is run. "datasource":"selectdb_datasource",//The data source name. "table": "selectdb_table_name",//The table name. "column": [ "id", "table_id", "table_no", "table_name", "table_status" ], "loadProps":{ "format":"csv",//Specifies the CSV format. "column_separator": "\\x01",//Specifies the column delimiter. "line_delimiter": "\\x02"//Specifies the row delimiter. } }, "name": "Writer", "category": "writer" }
Parâmetros do script do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
datasource |
Nome da fonte de dados. O modo script permite adicionar fontes de dados. O valor deste parâmetro deve corresponder exatamente ao nome da fonte de dados adicionada. |
Sim |
N/A |
|
table |
Nome da tabela a ser sincronizada. |
Sim |
N/A |
|
column |
Colunas de destino onde os dados serão gravados. Separe os nomes das colunas por vírgulas (,). Exemplo: |
Sim |
N/A |
|
preSql |
Instruções SQL executadas antes do início da tarefa de sincronização. O modo assistente permite executar apenas uma instrução SQL, enquanto o modo script suporta múltiplas instruções. Por exemplo, limpe dados antigos da tabela antes da execução da tarefa. |
Não |
N/A |
|
postSql |
Instruções SQL executadas após a conclusão da tarefa de sincronização. O modo assistente permite executar apenas uma instrução SQL, enquanto o modo script suporta múltiplas instruções. Por exemplo, adicione um carimbo de data/hora. |
Não |
N/A |
|
maxBatchRows |
Número máximo de linhas a serem importadas por lote. Este parâmetro atua em conjunto com batchSize para controlar o volume de cada importação em lote. A importação é iniciada quando qualquer um dos limiares for atingido. |
Não |
500.000 |
|
batchSize |
Tamanho máximo de dados a serem importados por lote. Este parâmetro atua em conjunto com maxBatchRows para controlar o volume de cada importação em lote. A importação é iniciada quando qualquer um dos limiares for atingido. |
Não |
94.371.840 |
|
maxRetries |
Número de tentativas após falha na importação em lote. |
Não |
3 |
|
labelPrefix |
Prefixo do rótulo para cada upload em lote. O rótulo final é composto por |
Não |
datax_selectdb_writer_ |
|
loadProps |
Parâmetros de solicitação para COPY INTO, usados principalmente para configurar o formato dos dados de importação. Por padrão, os dados são importados no formato JSON. Se loadProps não estiver configurado ou for definido como
Para importar dados no formato CSV, especifique o formato e configure os delimitadores de linha e coluna conforme abaixo. Caso os delimitadores não sejam especificados, todos os dados de entrada serão convertidos em strings por padrão, utilizando
|
Não |
N/A |
|
clusterName |
Nome do cluster SelectDB Cloud. Visualize-o no console do SelectDB. |
Não |
N/A |
|
flushInterval |
Intervalo de tempo (em ms) entre lotes de gravação de dados. Se os parâmetros maxBatchRows e batchSize estiverem definidos com valores altos, o sistema poderá acionar a importação baseada no intervalo de tempo antes que o volume de dados especificado seja atingido. |
Não |
30.000 |