Todos os produtos
Search
Central de documentação

:Fonte de dados do MaxCompute

Última atualização: Jun 27, 2026

Pré-requisitos

  • Conheça o MaxCompute, anteriormente conhecido como ODPS. Para saber mais, clique aqui.

  • Sua conta do OpenSearch deve ter as permissões necessárias na tabela do MaxCompute, incluindo as permissões describe, select, download e permissões de rótulo nos campos.

Use as instruções a seguir para conceder permissões:

-- Add an account.
add user ****@aliyun.com;

-- Grant the required table permissions to the account.
GRANT describe,select,download ON TABLE table_xxx TO USER ****@aliyun.com;
GRANT describe,select,download ON TABLE table_xxx_done TO USER ****@aliyun.com;

-- If field-level permission checks are enabled in MaxCompute, you may be unable to access fields with high-level permissions when pulling data, which prevents index creation. In this case, you must grant the account the required field-level permissions.
-- Grant permissions on the entire project.
SET LABEL 3 to USER ****@aliyun.com;

-- Grant permissions on a single table.
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com;
  • O OpenSearch Vector Search Edition oferece suporte aos seguintes tipos de campo de tabela do MaxCompute: STRING, BOOLEAN, DOUBLE, BIGINT e DATETIME.

Nota

Para obter informações detalhadas sobre instruções de criação de tabelas e configuração de parâmetros, consulte Instruções de criação de tabelas para uma fonte de dados do MaxCompute.

Configure uma fonte de dados do MaxCompute

  1. Faça login no console do OpenSearch. No canto superior esquerdo, alterne para o OpenSearch Vector Search Edition. Na página Instance Management, localize sua instância e clique em Manage na coluna Actions.

  1. No painel de navegação à esquerda, escolha Configuration Center > Data Source Configuration. Clique em Add Data Source. Selecione MaxCompute como tipo de fonte de dados e insira informações como Data Source Name, Project, AccessKey ID, AccessKey Secret, Table, Partition Key e Automatic Reindexing.

  1. Após configurar os parâmetros, clique em Check. Quando a configuração for validada, o botão OK será habilitado.

  2. Depois de adicionar uma fonte de dados, configure um esquema de índice e adicione uma tabela de índice. Para mais informações, consulte Adicionar uma tabela de índice.

  3. Com a tabela de índice configurada, atualize a configuração e execute a reindexação para aplicar as alterações ao cluster online. Para mais informações, consulte Atualização de configuração.

Nota:

  • Data Source Name: Nome da fonte de dados. O nome deve seguir o formato: InstanceName_CustomName.

  • Project, AccessKey ID, AccessKey Secret, Table e Partition Key: Parâmetros necessários para acessar a fonte de dados do MaxCompute.

  • Automatic Reindexing: Defina se a reindexação automática deve ser ativada. Se ativada, o sistema aciona automaticamente a reindexação das tabelas de índice que referenciam essa fonte de dados sempre que uma alteração for detectada.

  • Caso ative a reindexação automática, crie uma tabela done. Para mais detalhes, consulte a seção Reindexação automática abaixo.

Reindexação automática

Finalidade da tabela done: Ao ativar a reindexação automática para uma fonte de dados, o OpenSearch Vector Search Edition monitora a tabela done para detectar alterações e acionar a reindexação automaticamente.

Exemplo: Sua tabela do MaxCompute chama-se mytable e é particionada por ds=20220113. Após a reindexação inicial, uma nova partição com dados completos é gerada diariamente. Você precisa que o OpenSearch Vector Search Edition verifique a nova partição e acione a reindexação automaticamente para ingerir os novos dados. Para isso, use o recurso de reindexação automática com uma tabela done.

Procedimento:

  1. Ao adicionar a fonte de dados, ative a reindexação automática.

  2. No MaxCompute, crie uma tabela done. Se sua tabela de dados se chamar mytable e sua chave de partição for ds, a tabela done deve ser nomeada mytable_done com uma chave de partição também chamada ds. As duas tabelas aparecem no MaxCompute da seguinte forma:

    odps:sql:xxx> show tables;
    InstanceId: xxx  
    SQL: .                                                                                              
    ALIYUN$****@aliyun.com:mytable          # The table that contains the full data.
    ALIYUN$****@aliyun.com:mytable_done     # The done table that controls automatic full data ingestion.

    A estrutura da tabela done é descrita a seguir:

    Exemplo de dados para uma tabela done: A coluna attribute tem o valor {"swift_start_timestamp":1603096083} e a partição ds tem o valor 20180724.

    Use a instrução abaixo para criar a tabela done:

    create table mytable_done (attribute string) partitioned by (ds string);
  3. Quando a geração de dados para a partição ds=20220114 da tabela mytable for concluída, atualize a tabela done para acionar a reindexação no OpenSearch Vector Search Edition.

    -- Add the partition.
    alter table mytable_done add if not exists partition (ds="20220114");
    
    -- Insert the signal data to trigger automatic full ingestion.
    insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';

    A tabela done agora contém o seguinte conteúdo:

    odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
    InstanceId: xxx  
    SQL: .                                                                                              
    +-----------+----+
    | attribute | ds |
    +-----------+----+
    | {"swift_start_timestamp":1642003200} | 20220114 |
    +-----------+----+

    Assim que os dados de sinal são inseridos na tabela done, o OpenSearch Vector Search Edition detecta esse sinal e aciona a reindexação automaticamente.

    Importante
    • A tabela done deve ter pelo menos uma chave de partição, e o nome dessa chave deve ser idêntico ao da chave de partição da tabela de dados. Por exemplo, se a chave de partição da tabela de dados for ds, a chave de partição da tabela done também deverá ser ds.

    • A tabela done deve possuir apenas um campo do tipo STRING, e o nome do campo deve ser attribute.

    • A partição adicionada à tabela done deve existir na tabela de dados. Por exemplo, se a tabela de dados tiver as partições ds="20220114", ds="20220115" e ds="20220116", a nova partição adicionada à tabela done deve ser uma delas.

    • Ao inserir dados na tabela done, o valor do campo attribute deve ser uma string JSON, como {"swift_start_timestamp":1642003200}. Esse timestamp indica o deslocamento inicial para a sincronização incremental em tempo real.

Modifique uma fonte de dados do MaxCompute

  1. Na página Data Source Configuration, localize a fonte de dados a ser modificada e clique em Modify na coluna Actions.

  2. Na página Edit Data Source, modifique informações como Project, AccessKey ID, AccessKey Secret, Table e Partition Key.

    Após fazer as alterações, clique em Check. Depois que a configuração for validada, clique em OK para salvar as mudanças.

  3. Após modificar a fonte de dados, atualize a configuração e execute a reindexação para aplicar as alterações ao cluster online. Para mais informações, consulte Atualização de configuração.

    Nota

    Defina a granularidade da partição como hora, por exemplo, yyyymmddhh (como 2022011314). Isso permite executar vários trabalhos de reindexação completa em um único dia.

Exclua uma fonte de dados do MaxCompute

  1. Acesse Data Source Configuration e clique em Delete.

  2. Ao clicar em Delete, o sistema verifica se alguma tabela de índice referencia a fonte de dados.

  • Se nenhuma tabela de índice referenciar a fonte de dados, clique em OK para excluí-la. Em seguida, atualize a configuração e execute a reindexação para que a exclusão tenha efeito.

  • Caso uma tabela de índice referencie a fonte de dados, a mensagem de erro Data source is referenced by an index table será exibida (código de erro: DataSourceInUse). Exclua a tabela de índice ou remova a associação antes de excluir a fonte de dados.

Antes de excluir a fonte de dados, remova a tabela de índice que a referencia. Consulte Excluir uma tabela de índice.

Observações de uso

  • Não é possível alterar o Data Source Name durante a edição de uma fonte de dados.

  • O MaxCompute não oferece suporte a tabelas externas. Crie uma tabela interna.

  • A tabela especificada para uma fonte de dados do MaxCompute deve ser particionada.

  • Use tabelas do MaxCompute para ingestão completa de dados. Para atualizações incrementais em tempo real, use uma fonte de dados baseada em API.