Use o Vector Assist para implantar e gerenciar uma carga de trabalho de vetor nas suas instâncias do AlloyDB para PostgreSQL.
Para saber mais sobre o que é e como funciona a assistência vetorial, consulte Visão geral da assistência vetorial.
Antes de começar
- Confirme se a instância está usando a versão de manutenção correta. O Vector Assist exige um número de versão de manutenção mínimo de
POSTGRES_17.20260128.03_06. Para mais informações sobre como realizar a manutenção de autoatendimento, consulte Manutenção de autoatendimento de desempenho. Ative a extensão de assistência de vetor usando o seguinte comando no banco de dados que você quer usar:
CREATE EXTENSION vector_assist CASCADE;Isso gera o esquema
vector_assist, que é usado pela assistência de vetor.
Usar o Vector Assist para implantar uma carga de trabalho de vetor
Para usar o Vector Assist na implantação e no gerenciamento de uma carga de trabalho de vetor, faça o seguinte:
- Defina sua especificação de vetor
- Conferir recomendações do Vector Assist
- Aplicar recomendações do Vector Assist
Definir sua especificação de vetor
Definir a especificação de vetor, ou especificação de vetor, é a primeira etapa para usar a assistência de vetor. Dependendo do tipo de carga de trabalho de vetor, os campos usados para definir a especificação de vetor podem ser diferentes.
Por exemplo, se você quiser ativar a pesquisa semântica em uma coluna específica de uma tabela, execute a função vector_assist.define_spec para definir a especificação do vetor:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
Substitua os seguintes parâmetros:
TABLE_NAME: nome da tabela que você quer usar na sua carga de trabalho de vetor.- (Opcional)
VECTOR_COLUMN_NAME: a coluna em que você quer realizar uma pesquisa semântica. Se você tiver apenas uma coluna com vetores na tabela, ovector_assistpoderá definir isso automaticamente. Se houver mais de uma tabela com vetores, especifique qual coluna usar. - (Opcional)
TARGET_RECALL: recall de destino que você quer que a assistência de vetor atinja. Se especificado,vector_assisttesta diferentes valores deef_search, comparando o recall em pesquisas exatas e de vizinho mais próximo.vector_assistdefineef_searchcomo o valor que fornece a meta de recordação mais próxima. O valor padrão é0.95. - (Opcional)
TUNE_INDEX: booleano que especifica se o Vector Assist ajusta os índices de vetor na sua carga de trabalho. O valor padrão éfalse, o que significa que apenas os parâmetros relacionados à pesquisa (ef_search) são ajustados. Os parâmetros de tempo de build (m,ef_construction) não são ajustados.
Para conferir uma lista completa de todos os parâmetros disponíveis para a especificação de vetor, consulte Referências de funções do Vector Assist.
Depois de executar a consulta para criar a especificação de vetor, o assistente de vetor gera automaticamente etapas, chamadas de recomendações, que você precisa executar para implantar sua carga de trabalho de vetor.
Ver recomendações do Vector Assist
Para conferir as recomendações geradas pela assistência de vetores usando sua especificação de vetor,
execute a função
vector_assist.get_recommendations:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
Substitua SPEC_ID pelo ID da especificação
do vetor para que você quer ver recomendações. Para conferir sua
lista de especificações de vetor disponíveis, consulte Listar suas especificações de vetor.
vector_assist.get_recommendations retorna uma tabela chamada vector_assist.RECOMMENDATIONS que contém todas as recomendações. Cada recomendação é armazenada em uma tabela com o spec_id associado. Cada recomendação geralmente contém as seguintes informações:
- Consulta SQL que você precisa executar
- Explicação detalhada da recomendação
- Outras informações relevantes que explicam a recomendação
Aplicar recomendações do Vector Assist
Você pode aplicar as recomendações geradas individualmente ou como um todo.
Para aplicar uma recomendação específica, execute a função
vector_assist.apply_recommendation:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
Substitua RECOMMENDATION_ID pelo ID da recomendação de assistência de vetor que você quer aplicar na tabela vector_assist.RECOMMENDATIONS.
Para aplicar todas as recomendações juntas, execute a função
vector_assist.apply_spec
com o parâmetro spec_id ou table_name:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
Substitua SPEC_ID pelo ID da especificação de vetor que você quer usar.
Também é possível inserir os parâmetros schema_name ou column_name.
Para informações sobre todos os parâmetros de consulta disponíveis, consulte
Referências da função de assistência vetorial.
Depois de aplicar as recomendações geradas pelo assistente de vetor, o índice de vetor estará pronto para uso.
Gerar consultas de pesquisa
Você pode usar o assistente de vetor para criar consultas de pesquisa otimizadas para suas cargas de trabalho de vetor implantadas usando a especificação de vetor da carga de trabalho e o índice de vetor gerado. Para gerar uma consulta de pesquisa otimizada, execute a função
vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => 'TOP_K',
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
Substitua os seguintes parâmetros:
SPEC_ID: ID da especificação que você quer usar.SEARCH_VECTOR: vetor para sua consulta de pesquisa. Por exemplo,[1, 2, 3].- (Opcional)
TOP_K: número de vizinhos mais próximos a serem retornados. Se não for especificado, o valor padrão será10. - (Opcional)
TARGET_RECALL: recall de destino que você quer que a assistência de vetor atinja. Se especificado,vector_assisttesta diferentes valores deef_search, comparando o recall em pesquisas exatas e de vizinho mais próximo.vector_assistdefineef_searchcomo o valor que fornece a meta de recordação mais próxima. - (Opcional)
FILTER_EXPRESSION: qualquer filtro para a consulta de pesquisa. Por exemplo, filtrar com base em outras colunas.
Para conferir uma lista completa de todos os parâmetros disponíveis para gerar uma consulta de pesquisa, consulte Referências de funções do Vector Assist.
A saída dessa função retorna um texto que contém uma consulta SQL. Você pode executar ou salvar essa consulta SQL conforme necessário.
Listar suas especificações de vetor
Se você precisar listar um indivíduo ou todas as especificações de vetor atuais, execute a função vector_assist.list_specs:
SELECT vector_assist.list_specs(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
Substitua os seguintes parâmetros:
- (Opcional)
SPEC_ID: ID da especificação de vetor que você quer usar. TABLE_NAME: nome da tabela usada para definir a especificação do vetor.
A seguir
- Saiba mais sobre a assistência vetorial.
- Referências de funções de assistência de vetor.