Todos os produtos
Search
Central de documentação

DataWorks:OpenSearch

Última atualização: Jun 27, 2026

O plugin OpenSearch Writer do Data Integration no DataWorks grava dados offline no Alibaba Cloud OpenSearch. Este tópico aborda as edições compatíveis, limitações, mapeamentos de tipos de campo e a referência completa de parâmetros para configurar uma tarefa de sincronização em lote no modo code editor.

Edições e versões compatíveis

O OpenSearch Writer é compatível com as seguintes edições comerciais do Alibaba Cloud OpenSearch:

  • Industry Algorithm Edition

  • LLM-based AI Chat Edition

  • High-performance Search Edition

  • Vector Search Edition

  • Retrieval Engine Edition

Notas sobre versões:

  • A Versão 3 utiliza um pacote secundário. Adicione a seguinte dependência ao pom: com.aliyun.opensearch:aliyun-sdk-opensearch:2.1.3.

  • O OpenSearch Writer requer JDK 1.6-32 ou posterior. Execute java -version para verificar a versão instalada.

Limitações

  • O OpenSearch Writer oferece suporte a grupos de recursos serverless (recomendado) e grupos de recursos exclusivos para Data Integration. Não há suporte para grupos de recursos personalizados.

  • As colunas no OpenSearch não têm ordem definida. Especifique explicitamente a ordem das colunas ao gravar dados. Colunas não especificadas assumem valores padrão ou null.

  • Grave dados offline no OpenSearch apenas no modo code editor.

  • O OpenSearch Writer valida a quantidade de colunas. A tentativa de gravar mais colunas do que as existentes na tabela de destino gera erro.

  • Grave dados em apenas uma tabela por tarefa. Não há suporte para múltiplas tabelas em uma única tarefa.

  • Na reexecução da tarefa, os registros existentes são sobrescritos com base no ID do documento. A lista de colunas deve incluir uma coluna de ID como identificador único.

Tipos de campo compatíveis

O OpenSearch Writer oferece suporte aos seguintes mapeamentos de tipos de dados do OpenSearch.

Categoria

Tipo de dado do OpenSearch

Inteiro

INT

Ponto flutuante

DOUBLE, FLOAT

String

TEXT, LITERAL, SHORT_TEXT

Data e hora

INT

Booleano

LITERAL

Modos de gravação

Use o parâmetro writeMode para controlar a gravação dos dados e garantir a idempotência da operação.

Modo

Comportamento

Atômico

Versões compatíveis

add

Em reexecuções, limpa os dados existentes e importa os novos dados

Sim

Todas as versões

update

Insere dados como atualização

Sim

Apenas Versão 2 (incompatível com a Versão 3)

Nota

Inserções em lote no OpenSearch não são operações atômicas. Alguns registros podem ter sucesso enquanto outros falham. Escolha o writeMode conforme seus requisitos de consistência.

Considerações de desempenho

O OpenSearch é otimizado para consultas, não para gravações. A capacidade de transações por segundo (TPS) para operações de escrita é limitada.

  • Geralmente, um único registro de dados tem menos de 1 MB.

  • Normalmente, uma única escrita em lote tem menos de 2 MB.

  • Defina o batchSize com base nos recursos alocados à sua conta. O valor padrão é 300 registros por lote.

Configure uma tarefa de sincronização de dados

Configure o OpenSearch Writer no modo code editor. Para o procedimento geral, consulte Configurar no modo code editor.

As seções a seguir apresentam exemplos de código e referências de parâmetros para cada grupo de edições compatível.

Industry Algorithm Edition, LLM-based AI Chat Edition e High-performance Search Edition

Exemplo de código

{
    "type": "job",
    "version": "1.0",
    "configuration": {
        "reader": {},
        "writer": {
            "plugin": "opensearch",
            "parameter": {
                "accessId": "<your-access-key-id>",
                "accessKey": "<your-access-key-secret>",
                "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
            }
        }
    }
}

Substitua os espaços reservados pelos valores reais:

Espaço reservado

Descrição

Exemplo

<your-access-key-id>

Seu AccessKey ID

LTAI5tXxx

<your-access-key-secret>

Seu AccessKey secret

xXxXxXx

Parâmetros

Parâmetro

Descrição

Obrigatório

Padrão

accessId

AccessKey ID do seu par de AccessKey.

Sim

N/A

accessKey

AccessKey secret do seu par de AccessKey.

Sim

N/A

host

Nome de domínio de tráfego do OpenSearch. Obtenha esse valor na página de detalhes da instância no console do OpenSearch.

Sim

N/A

endpoint

Endpoint de controle do OpenSearch. Obtenha esse valor na página de endpoints de serviço da sua edição. Por exemplo, consulte Service endpoints para a Industry Algorithm Edition.

Sim

N/A

indexName

Nome do projeto (índice) do OpenSearch.

Sim

N/A

table

Nome da tabela de destino. Há suporte para apenas uma tabela por tarefa.

Sim

N/A

column

Colunas de destino da gravação. Use ["*"] para gravar em todas as colunas ou especifique nomes como ["id", "name"]. Permite filtragem e reordenação; colunas não especificadas recebem valor null.

Sim

N/A

batchSize

Número de registros por escrita em lote. Obrigatório para tabelas particionadas; omita para tabelas não particionadas.

Obrigatório para tabelas particionadas

300

writeMode

Modo de gravação: "add" ou "update". Consulte Modos de gravação para obter detalhes.

Sim

N/A

ignoreWriteError

Define se falhas de gravação no lote atual devem ser ignoradas. Defina como true para continuar outras operações de gravação em caso de falha. Defina como false para interromper a tarefa e retornar um erro. Use o valor padrão, a menos que tenha um motivo específico para alterá-lo.

Não

false

version

Versão do OpenSearch, como "v3". Recomenda-se a Versão 3, pois a operação de push na Versão 2 apresenta limitações conhecidas.

Não

v2

Vector Search Edition e Retrieval Engine Edition

Exemplo de código

{
    "stepType": "opensearch",
    "parameter": {
        "indexName": "<your-index-name>",
        "datasource": "<your-datasource-name>",
        "table": "<your-table-name>",
        "column": [
            {
                "name": "col3double",
                "type": "DOUBLE"
            },
            {
                "name": "col2vector",
                "type": "MULTI_FLOAT"
            }
        ],
        "batchSize": "500"
    },
    "name": "Writer",
    "category": "writer"
}

Parâmetros

Parâmetro

Descrição

Obrigatório

Padrão

table

Nome da tabela de destino. Há suporte para apenas uma tabela por tarefa.

Sim

N/A

column

Colunas de destino da gravação. Cada entrada especifica um name e um type. Permite filtragem e reordenação; colunas não especificadas recebem valor null.

Sim

N/A

batchSize

Número de registros por escrita em lote. Obrigatório para tabelas particionadas; omita para tabelas não particionadas.

Obrigatório para tabelas particionadas

300

Próximos passos