Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Esquemas de incorporação de vetores em tempo real - Perguntas frequentes
Leia as perguntas frequentes a seguir sobre esquemas de incorporação de vetores em tempo real. Para obter mais informações sobre esquemas de incorporação de vetores em tempo real, consulte Esquemas de incorporação de vetores em tempo real.
Perguntas frequentes
Quais são minhas ações após a conclusão da implantação da AWS CloudFormation pilha?
Qual deve ser a estrutura dos dados nos tópicos de origem do Amazon MSK?
Posso usar regex para configurar nomes de tópicos do Amazon MSK?
Qual é o tamanho máximo de uma mensagem que pode ser lida em um tópico do Amazon MSK?
Qual é a aparência da saída no OpenSearch índice configurado?
Posso especificar campos de metadados para adicionar ao documento armazenado no OpenSearch índice?
Quais modelos de incorporação são compatíveis com o aplicativo?
Posso ajustar o desempenho do meu aplicativo com base na minha workload?
O que é sink.os.bulkFlushIntervalMillis e como faço para configurá-lo?
Esse aplicativo move meus dados para fora do meu Conta da AWS?
Quais AWS recursos esse plano cria?
Para encontrar recursos implantados em sua conta, navegue até o AWS CloudFormation console e identifique o nome da pilha que começa com o nome que você forneceu para o aplicativo Managed Service for Apache Flink. Selecione a guia Recursos para verificar os recursos criados como parte da pilha. A seguir estão os principais recursos que a pilha cria:
-
Incorporação de vetores em tempo real para aplicativo Managed Service for Apache Flink
-
Bucket do Amazon S3 para armazenar o código-fonte do aplicativo de incorporação de vetores em tempo real
-
CloudWatch grupo de registros e fluxo de registros para armazenar registros
-
Funções do Lambda para buscar e criar recursos
-
Funções e políticas do IAM para Lambdas, serviço gerenciado para o aplicativo Apache Flink e acesso ao Amazon Bedrock e ao Amazon Service OpenSearch
-
Política de acesso a dados para Amazon OpenSearch Service
-
Endpoints VPC para acessar o Amazon Bedrock e o Amazon Service OpenSearch
Quais são minhas ações após a conclusão da implantação da AWS CloudFormation pilha?
Depois que a implantação da AWS CloudFormation pilha for concluída, acesse o console do Managed Service for Apache Flink e encontre seu plano de Managed Service para o aplicativo Apache Flink. Escolha a guia Configurar e confirme se todas as propriedades de runtime estão configuradas corretamente. Elas podem passar para a próxima página. Quando você tiver certeza das configurações, selecione Executar. O aplicativo começará a ingerir mensagens do seu tópico.
Para verificar novos lançamentos, consulte https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases
Qual deve ser a estrutura dos dados nos tópicos de origem do Amazon MSK?
Atualmente, oferecemos suporte a dados de origem estruturados e não estruturados.
-
Os dados não estruturados são indicados por
STRINGnosource.msk.data.type. Os dados são lidos no estado em que se encontram na mensagem recebida. -
Atualmente, oferecemos suporte a dados JSON estruturados, indicados por
JSONnosource.msk.data.type. Os dados devem estar sempre no formato JSON. Se o aplicativo receber um JSON com defeito, o aplicativo falhará. -
Ao usar JSON como tipo de dados de origem, certifique-se de que cada mensagem em todos os tópicos de origem seja um JSON válido. Se você assinar um ou mais tópicos que não contenham objetos JSON com essa configuração, o aplicativo falhará. Se um ou mais tópicos tiverem uma combinação de dados estruturados e não estruturados, recomendamos configurar os dados de origem como não estruturados no aplicativo Managed Service for Apache Flink.
Posso especificar partes de uma mensagem para incorporar?
-
Para dados de entrada não estruturados onde estão
source.msk.data.typeSTRING, o aplicativo sempre incorporará a mensagem inteira e armazenará a mensagem inteira no índice configurado OpenSearch . -
Para dados de entrada estruturados onde
source.msk.data.typeéJSON, você pode configurarembed.input.config.json.fieldsToEmbedpara especificar qual campo no objeto JSON deve ser selecionado para incorporação. Isso só funciona para campos JSON de nível superior e não funciona com mensagens aninhadas JSONs e com mensagens contendo uma matriz JSON. Use .* para incorporar todo o JSON.
Posso ler dados de vários tópicos do Amazon MSK?
Sim, você pode ler dados de vários tópicos do Amazon MSK com esse aplicativo. Os dados de todos os tópicos devem ser do mesmo tipo (STRING ou JSON) ou isso pode causar falha no aplicativo. Os dados de todos os tópicos são sempre armazenados em um único OpenSearch índice.
Posso usar regex para configurar nomes de tópicos do Amazon MSK?
O source.msk.topic.names não oferece suporte a uma lista de regex. Oferecemos suporte para uma lista separada por vírgulas de nomes de tópicos ou .* regex para incluir todos os tópicos.
Qual é o tamanho máximo de uma mensagem que pode ser lida em um tópico do Amazon MSK?
O tamanho máximo de uma mensagem que pode ser processada é limitado pelo limite de InvokeModel corpo do Amazon Bedrock, atualmente definido como 25.000.000. Para obter mais informações, consulte InvokeModel.
Que tipo de OpenSearch é compatível?
Oferecemos suporte tanto para OpenSearch domínios quanto para coleções. Se você estiver usando uma OpenSearch coleção, certifique-se de usar uma coleção de vetores e criar um índice vetorial para usar neste aplicativo. Isso permitirá que você use os recursos OpenSearch do banco de dados vetoriais para consultar seus dados. Para saber mais, consulte a explicação dos recursos de banco de dados vetoriais do Amazon OpenSearch Service
Por que preciso usar uma coleção de pesquisa vetorial, um índice vetorial e adicionar um campo vetorial na minha coleção OpenSearch Serverless?
O tipo de coleta de pesquisa vetorial no OpenSearch Serverless fornece um recurso de pesquisa por similaridade que é escalável e de alto desempenho. Isso simplifica a criação de experiências modernas de pesquisa aumentada de machine learning (ML) e aplicativos de inteligência artificial generativa (IA). Para obter mais informações, consulte Como trabalhar com coleções de pesquisas vetoriais.
O que devo definir como dimensão do meu campo vetorial?
Defina a dimensão do campo de vetor com base no modelo de incorporação que deseja usar. Consulte a tabela a seguir e confirme esses valores na respectiva documentação.
| Nome do modelo de incorporação de vetores do Amazon Bedrock | Suporte de dimensão de saída oferecido pelo modelo |
|---|---|
|
Incorporações de texto Amazon Titan V1 |
1.536 |
|
Incorporador de Texto do Amazon Titan v2 |
1.024 (padrão), 384, 256 |
|
Amazon Titan Multimodal Embeddings G1 |
1.024 (padrão), 384, 256 |
|
Cohere Embed English |
1,024 |
|
Cohere Embed Multilíngue |
1,024 |
Qual é a aparência da saída no OpenSearch índice configurado?
Cada documento no OpenSearch índice contém os seguintes campos:
-
original_data: os dados que foram usados para gerar incorporações. Para o tipo STRING, é a mensagem inteira. Para o objeto JSON, é aquele que foi usado para incorporações. Pode ser o JSON inteiro na mensagem ou campos especificados no JSON. Por exemplo, se o nome fosse selecionado para ser incorporado nas mensagens recebidas, a saída teria a seguinte aparência:
"original_data": "{\"name\":\"John Doe\"}" -
embedded_data: uma matriz vetorial flutuante de incorporações gerada pelo Amazon Bedrock
-
data: carimbo de data/hora UTC em que o documento foi armazenado OpenSearch
Posso especificar campos de metadados para adicionar ao documento armazenado no OpenSearch índice?
Não, atualmente, não oferecemos suporte à adição de campos adicionais ao documento final armazenado no OpenSearch índice.
Devo esperar entradas duplicadas no OpenSearch índice?
Dependendo de como você configurou seu aplicativo, talvez veja mensagens duplicadas no índice. Um motivo comum é a reinicialização do aplicativo. O aplicativo é configurado por padrão para começar a ler a partir da mensagem mais antiga no tópico da fonte. Quando você altera a configuração, o aplicativo reinicia e processa todas as mensagens no tópico novamente. Para evitar o reprocessamento, consulte a documentação sobre como usar source.msk.starting.offset e definir corretamente o deslocamento inicial para seu aplicativo.
Posso enviar dados para vários OpenSearch índices?
Não, o aplicativo suporta o armazenamento de dados em um único OpenSearch índice. Para configurar a saída de vetorização para vários índices, você deve implantar um serviço gerenciado separado para aplicativos Apache Flink.
Posso implantar vários aplicativos de incorporação de vetores em tempo real em um único Conta da AWS?
Sim, você pode implantar vários serviços gerenciados de incorporação de vetores em tempo real para aplicativos Apache Flink em um único Conta da AWS se cada aplicativo tiver um nome exclusivo.
Vários aplicativos de incorporação de vetores em tempo real podem usar a mesma fonte ou coletor de dados?
Sim, você pode criar vários serviços gerenciados de incorporação de vetores em tempo real para aplicativos Apache Flink que leem dados do mesmo tópico ou armazenam dados no mesmo índice.
O aplicativo oferece suporte à conectividade entre contas?
Não, para que o aplicativo seja executado com sucesso, o cluster Amazon MSK e a OpenSearch coleção devem estar no mesmo Conta da AWS local em que você está tentando configurar seu serviço gerenciado para o aplicativo Apache Flink.
O aplicativo oferece suporte à conectividade entre regiões?
Não, o aplicativo só permite que você implante um serviço gerenciado para o aplicativo Apache Flink com um cluster Amazon MSK e uma OpenSearch coleção na mesma região do serviço gerenciado para o aplicativo Apache Flink.
Meu cluster e minha OpenSearch coleção do Amazon MSK podem estar em redes diferentes VPCs ou em sub-redes?
Sim, oferecemos suporte ao cluster e à OpenSearch coleção do Amazon MSK em diferentes redes VPCs e sub-redes, desde que estejam na mesma. Conta da AWS Consulte (Solução geral de problemas do MSF) para verificar se a configuração está correta.
Quais modelos de incorporação são compatíveis com o aplicativo?
Atualmente, o aplicativo oferece suporte a todos os modelos compatíveis com o Bedrock. Isso inclui:
-
Amazon Titan Embeddings G1 - Text
-
Incorporador de Texto do Amazon Titan v2
-
Amazon Titan Multimodal Embeddings G1
-
Cohere Embed English
-
Cohere Embed Multilíngue
Posso ajustar o desempenho do meu aplicativo com base na minha workload?
Sim. O throughput do aplicativo depende de vários fatores, todos os quais podem ser controlados pelos clientes:
-
AWS MSF KPUs: O aplicativo é implantado com fator de paralelismo padrão 2 e paralelismo por KPU 1, com o escalonamento automático ativado. No entanto, recomendamos que você configure o escalonamento do aplicativo do Managed Service for Apache Flink de acordo com suas workloads. Para obter mais informações, consulte Analise os recursos de aplicativo do Managed Service for Apache Flink.
-
Amazon Bedrock: com base no modelo sob demanda selecionado do Amazon Bedrock, diferentes cotas podem ser aplicadas. Analise as cotas de serviço no Bedrock para ver a workload que o serviço será capaz de suportar. Para obter mais informações, consulte Cotas do Amazon Bedrock.
-
Amazon OpenSearch Service: Além disso, em algumas situações, você pode perceber que esse OpenSearch é o gargalo em seu funil. Para obter informações sobre escalabilidade, consulte OpenSearch Dimensionamento de domínios do OpenSearch Amazon Service.
Quais tipos de autenticação do Amazon MSK são compatíveis?
IAM MSK é o único tipo de autenticação compatível.
O que é sink.os.bulkFlushIntervalMillis e como faço para configurá-lo?
Ao enviar dados para o Amazon OpenSearch Service, o intervalo de descarga em massa é o intervalo no qual a solicitação em massa é executada, independentemente do número de ações ou do tamanho da solicitação. O valor padrão é definido para 1 milissegundo.
Embora definir um intervalo de flush possa ajudar a garantir que os dados sejam indexados em tempo hábil, também pode aumentar a sobrecarga se definido como muito baixo. Considere seu caso de uso e a importância da indexação oportuna ao escolher um intervalo de flush.
Quando eu implantar meu aplicativo Managed Service for Apache Flink, a partir de qual ponto do tópico do Amazon MSK ele começará a ler as mensagens?
O aplicativo começará a ler mensagens do tópico do Amazon MSK no deslocamento especificado pela configuração source.msk.starting.offset definida na configuração de runtime do aplicativo. Se source.msk.starting.offset não for definido explicitamente, o comportamento padrão do aplicativo é começar a ler a partir da primeira mensagem disponível no tópico.
Como usar source.msk.starting.offset?
Defina source.msk.starting.offset explicitamente com um dos seguintes valores, com base no comportamento desejado:
-
MAIS ANTIGO: a configuração padrão, que lê o deslocamento mais antigo na partição. Essa é uma boa opção, especialmente se:
-
Você criou tópicos e aplicativos para consumidores do Amazon MSK recentemente.
-
Você precisa reproduzir os dados para poder compilar ou reconstruir o estado. Isso é relevante ao implementar o padrão de fornecimento de eventos ou ao inicializar um novo serviço que requer uma visão completa do histórico de dados.
-
-
MAIS RECENTE: o Managed Service for Apache Flink lerá as mensagens do final da partição. Recomendamos essa opção se você se preocupa apenas com a produção de novas mensagens e não precisa processar dados históricos. Nessa configuração, o consumidor ignorará as mensagens existentes e lerá somente as novas mensagens publicadas pelo produtor precedente.
-
COMPROMETIDO: o aplicativo Managed Service for Apache Flink começará a consumir mensagens da compensação confirmada do grupo consumidor. Se a compensação confirmada não existir, será usada a estratégia de redefinição MAIS ANTIGA.
Quais estratégias de fragmentação são suportadas?
Estamos usando a biblioteca langchainmaxSegmentSizeInChars escolhido. Nós oferecemos suporte aos seguintes cinco tipos de fragmentação:
-
SPLIT_BY_CHARACTER: caberá o máximo de caracteres possível em cada pedaço, onde o comprimento de cada pedaço não for maior que. maxSegmentSize InChars Não se importa com espaços em branco, então pode cortar palavras. -
SPLIT_BY_WORD: encontrará caracteres de espaço em branco para usar como referência ao fragmentar. Nenhuma palavra é cortada. -
SPLIT_BY_SENTENCE: os limites das sentenças são detectados usando a biblioteca Apache OpenNLP com o modelo de sentença em inglês. -
SPLIT_BY_LINE: encontrará novos caracteres de linha para usar como referência ao fragmentar. -
SPLIT_BY_PARAGRAPH: encontrará novos caracteres de linha consecutivos para usar como referência ao fragmentar.
As estratégias de divisão recorrem às opções anteriores de acordo com a ordem anterior, onde as estratégias de fragmentação maiores, como SPLIT_BY_PARAGRAPH, retornam a SPLIT_BY_CHARACTER. Por exemplo, ao usar SPLIT_BY_LINE, se uma linha for muito longa, a linha será subfragmentada por sentença, onde cada fragmento abrigará o máximo de sentenças possível. Se houver alguma sentença muito longa, ela será dividida no nível da palavra. Se uma palavra for muito longa, ela será dividida por caractere.
Como faço para ler registros no meu datastore vetorial?
-
Quando
source.msk.data.typeéSTRING-
original_data: toda a string original da mensagem do Amazon MSK.
-
embedded_data: vetor de incorporação criado a partir de
chunk_datase não estiver vazio (fragmentação aplicada) ou criado a partir deoriginal_datase nenhuma fragmentação tiver sido aplicada. -
chunk_data: presente somente quando os dados originais foram fragmentados. Contém o fragmento da mensagem original que foi usada para criar a incorporação em
embedded_data.
-
-
Quando
source.msk.data.typeéJSON-
original_data: todo o JSON original da mensagem do Amazon MSK após a aplicação da filtragem da chave JSON.
-
embedded_data: vetor de incorporação criado a partir de
chunk_datase não estiver vazio (fragmentação aplicada) ou criado a partir deoriginal_datase nenhuma fragmentação tiver sido aplicada. -
chunk_key: presente somente quando os dados originais foram fragmentados. Contém a chave JSON de onde vem o fragmento no
original_data. Por exemplo, pode ser semelhantejsonKey1.nestedJsonKeyApara chaves aninhadas ou metadados no exemplo dooriginal_data. -
chunk_data: presente somente quando os dados originais foram fragmentados. Contém o fragmento da mensagem original que foi usada para criar a incorporação em
embedded_data.
-
Sim, você pode ler dados de vários tópicos do Amazon MSK com esse aplicativo. Os dados de todos os tópicos devem ser do mesmo tipo (STRING ou JSON) ou isso pode causar falha no aplicativo. Os dados de todos os tópicos são sempre armazenados em um único OpenSearch índice.
Onde posso encontrar novas atualizações do código-fonte?
Posso fazer uma alteração no AWS CloudFormation modelo e atualizar o aplicativo Managed Service for Apache Flink?
Não, fazer uma alteração no AWS CloudFormation modelo não atualiza o aplicativo Managed Service for Apache Flink. Qualquer nova alteração AWS CloudFormation implica que uma nova pilha precisa ser implantada.
Vou AWS monitorar e manter o aplicativo em meu nome?
Não, não AWS monitorará, escalará, atualizará ou corrigirá este aplicativo em seu nome.
Esse aplicativo move meus dados para fora do meu Conta da AWS?
Todos os dados lidos e armazenados pelo aplicativo Managed Service for Apache Flink permanecem na sua conta Conta da AWS e nunca saem da sua conta.