O DataWorks Data Integration permite gravar dados no OpenSearch com o OpenSearch Writer. Este tópico descreve como gravar dados offline do DataWorks no OpenSearch.
Versões suportadas
A V3 usa um pacote de segunda parte com a dependência do Maven com.aliyun.opensearch:aliyun-sdk-opensearch:2.1.3.
Para usar o plug-in do OpenSearch Writer, use o JDK 1.6-32 ou posterior. Execute
java -versionpara verificar a versão do Java.Edições comerciais suportadas do Alibaba Cloud OpenSearch: Industry Algorithm Edition, LLM Intelligent Q&A Edition, High-performance Search Edition, Vector Search Edition e Retrieval Engine Edition.
Limites
O OpenSearch Writer é compatível com Serverless resource groups (recommended) e exclusive resource groups for Data Integration, mas não é compatível com custom resource groups.
-
As colunas do OpenSearch não são ordenadas. Portanto, ao gravar dados, o OpenSearch Writer deve seguir a ordem das colunas especifique. Se você especifique menos colunas do que as existentes no OpenSearch, as colunas restantes usarão os valores padrão ou nulo.
Por exemplo, suponha que os campos a serem importados sejam b e c, e a tabela do OpenSearch tenha as colunas a, b e c. configure as colunas como "column":["c","b"]. Assim, a primeira e a segunda colunas do Reader são importadas para os campos c e b, e o campo a no registro recém-inserido é defina com o valor padrão ou nulo.
Atualmente, é possível gravar dados offline no OpenSearch apenas no modo de script.
Tipos de campo suportados
O OpenSearch Writer é compatível com a maioria dos tipos do OpenSearch. Verifique os tipos de dados. A tabela a seguir lista os mapeamentos de tipos do OpenSearch.
|
Categoria de tipo |
Tipo de dados do OpenSearch |
|
Inteiro |
INT |
|
Ponto flutuante |
DOUBLE e FLOAT |
|
String |
TEXT, LITERAL e SHORT_TEXT |
|
Data e hora |
INT |
|
Booliano |
LITERAL |
Desenvolver uma tarefa de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento para configure uma tarefa de sincronização, consulte os guias de configure a seguir.
Para ver o procedimento, consulte Script mode configuration.
Para ver todos os parâmetros do modo de script e um exemplo de script, consulte Appendix: Sample scripts and parameter descriptions.
Perguntas frequentes
Como lidar com configure de coluna incorretas
Para garantir gravações confiáveis e evitar perda de dados causada por excesso de colunas, o OpenSearch Writer retorna um erro se você gravar um número excessivo de colunas. Por exemplo, se uma tabela do OpenSearch tiver os campos a, b e c, o OpenSearch Writer retornará um erro ao receber mais de três campos.
Considerações sobre a configure de tabela
O OpenSearch Writer pode gravar em apenas uma tabela por vez.
Reexecução de tarefas e failover
Após uma reexecução, os registros com o mesmo id são sobrescritos automaticamente. Portanto, as colunas inseridas no OpenSearch devem incluir um id que identifique exclusivamente cada registro. Registros com o mesmo identificador sobrescrevem uns aos outros.
Apêndice: Exemplos de scripts e descrições de parâmetros
configure uma tarefa de sincronização em lote usando o editor de código
Para configure uma tarefa de sincronização em lote com o editor de código, configure os parâmetros relacionados no script com base nos requisitos unificados de formato de script. Para mais informações, consulte Script mode configuration. As informações a seguir descrevem os parâmetros que você deve configure para as source de dados ao configure uma tarefa de sincronização em lote com o editor de código.
Exemplo de script do Writer (Industry Algorithm Edition, LLM Intelligent Q&A Edition e High-performance Search Edition)
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {},
"writer": {
"plugin": "opensearch",
"parameter": {
"accessId": "*********",
"accessKey": "********",
"host": "http://yyyy.aliyuncs.com",
"endpoint":"http://yyyy.aliyuncs.com",
"indexName": "datax_xxx",
"table": "datax_yyy",
"column": [
"appkey",
"id",
"title",
"gmt_create",
"pic_default"
],
"batchSize": 500,
"writeMode": add,
"version":"v2",
"ignoreWriteError": false
}
}
}
}
Parâmetros do script do Writer (Industry Algorithm Edition, LLM Intelligent Q&A Edition e High-performance Search Edition)
Parâmetro | Descrição | Obrigatório | Valor padrão |
accessId | AccessKey id do par de chaves de acesso. | Sim | Nenhum |
accessKey | AccessKey Secret do par de chaves de acesso, equivalente a uma senha de login. | Sim | Nenhum |
host | Endpoint de tráfego do OpenSearch. Encontre-o na página de detalhes da instância no console do OpenSearch. | Sim | Nenhum |
endpoint | Endpoint de gerenciamento do OpenSearch. Encontre-o na documentação da edição relevante do OpenSearch. Por exemplo, para a Industry Algorithm Edition: Service endpoints. | Sim | Nenhum |
indexName | Nome do aplicativo OpenSearch. | Sim | Nenhum |
table | Nome da tabela de destino. Não é possível especifique várias tabelas porque o DataX não é compatível com a importação para várias tabelas simultaneamente. | Sim | Nenhum |
column | Lista de campos a importar. Para importar todos os campos, configure O OpenSearch é compatível com a filtragem e a reordenação de colunas. Por exemplo, se uma tabela tiver os campos a, b e c, e você precisar apenas de c e b, configure | Sim | Nenhum |
batchSize | Número de registros gravados por lote. O OpenSearch é compatível com gravações em lote e geralmente se destaca em consultas em vez de alto throughput de gravação. defina esse valor com base nos recursos alocados para a sua conta. Normalmente, um único registro do OpenSearch tem menos de 1 MB e uma gravação em lote tem menos de 2 MB. | Esta opção é obrigatória para tabelas particionadas e deve ser omitida para tabelas não particionadas. | 300 |
writeMode | O OpenSearch Writer usa "writeMode":"add/atualize" para garantir gravações idempotentes:
| Sim | Nenhum |
ignoreWriteError | Ignora erros de gravação. Exemplo de configuração: | Não | false |
version | Versão do OpenSearch, por exemplo | Não | v2 |
Exemplo de script do Writer (Vector Search Edition e Retrieval Engine Edition)
{
"stepType": "opensearch",
"parameter": {
"indexName": "",
"column": [
{
"name": "col3double",
"type": "DOUBLE"
},
{
"name": "col2vector",
"type": "MULTI_FLOAT"
}
],
"datasource": "zm_test_vector_01",
"batchSize": "500",
"table": "demotable"
},
"name": "Writer",
"category": "writer"
}
Parâmetros do script do Writer (Vector Search Edition e Retrieval Engine Edition)
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
table |
Nome da tabela de destino. Não é possível especifique várias tabelas porque o DataX não é compatível com a importação para várias tabelas simultaneamente. |
Sim |
Nenhum |
|
column |
Lista de campos a importar. Para importar todos os campos, configure O OpenSearch é compatível com a filtragem e a reordenação de colunas. Por exemplo, se uma tabela tiver os campos a, b e c, e você precisar apenas de c e b, configure |
Sim |
Nenhum |
|
batchSize |
Número de registros gravados por lote. O OpenSearch é compatível com gravações em lote e geralmente se destaca em consultas em vez de alto throughput de gravação. defina esse valor com base nos recursos alocados para a sua conta. Normalmente, um único registro do OpenSearch tem menos de 1 MB e uma gravação em lote tem menos de 2 MB. |
Esta opção é obrigatória para tabelas particionadas e deve ser omitida para tabelas não particionadas. |
300 |