Amazon Neptune Engine versão 1.3.2.1 (2024-06-20) - Amazon Neptune

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á.

Amazon Neptune Engine versão 1.3.2.1 (2024-06-20)

Em 2024-06-20, a versão 1.3.2.1 do mecanismo geralmente está sendo implantada. Observe que leva vários dias para que uma nova versão fique disponível em todas as regiões.

nota

A versão 1.3.0.0 do mecanismo introduziu um novo formato para grupos de parâmetros personalizados e grupos de parâmetros de cluster personalizados. Como resultado, se você estiver atualizando de uma versão de mecanismo anterior à 1.3.0.0 para a versão 1.3.0.0 ou posterior, deverá recriar todos os grupos de parâmetros personalizados e grupos de parâmetros de cluster personalizados existentes usando a família de grupos de parâmetros neptune1.3. As versões anteriores usavam a família de grupos de parâmetros neptune1 ou neptune1.2, e esses grupos de parâmetros não funcionarão com a versão 1.3.0.0 e posterior. Consulte Grupos de parâmetros do Amazon Neptune Para mais informações.

Defeitos corrigidos nesta versão do motor

openCypher correções
  • Foi detectado um bug no recurso de cache do plano de consulta para consultas parametrizadas que contêm uma WITH cláusula interna com SKIP e como parâmetros. LIMIT LIMITOs valoresSKIP/não foram parametrizados adequadamente e, como resultado, as execuções subsequentes do mesmo plano de consulta em cache com valores de parâmetros diferentes ainda retornariam os mesmos resultados da primeira execução. Isso foi corrigido.

    # insert some nodes UNWIND range(1, 10) as i CREATE (s {name: i}) RETURN s # sample query MATCH (p) WITH p ORDER BY p.name SKIP $s LIMIT $l RETURN p.name as res # first time executing with {"s": 2, "l": 1} { "results" : [ { "res" : 3 } ] } # second time executing with {"s": 2, "l": 10} # due to bug, produces { "results" : [ { "res" : 3 } ] } # with fix, produces correct results: { "results" : [ { "res" : 3 }, { "res" : 4 }, { "res" : 5 }, { "res" : 6 }, { "res" : 7 }, { "res" : 8 }, { "res" : 9 }, { "res" : 10 } ] }%
  • Corrigido um bug em que consultas de mutação parametrizadas lançavam um InternalFailureException quando o parâmetro que foi passado ainda não estava presente no banco de dados.

  • Corrigido um bug em que as consultas parametrizadas do Bolt ficavam travadas após atingirem uma condição de corrida durante a limpeza dos recursos da consulta.

Alterações na versão 1.3.2.1 transferidas da versão 1.3.2.0

Melhorias trazidas da versão 1.3.2.0 do motor

Melhorias gerais
  • Support para a TLS versão 1.3, incluindo pacotes de criptografia TLS _ AES _128_ _ SHA256 e TLS _ GCM _256_ _. AES GCM SHA384 TLS1,3 é uma opção - TLS 1,2 ainda é o mínimo.

  • openCypher o suporte estendido para o formato datetime está em lab_mode para esta versão. Nós encorajamos você a testá-lo.

Melhorias no Gremlin
  • TinkerPop Atualização 3.7.x

  • StrictTimeoutValidation(somente quando ativado StrictTimeoutValidation por meio do labmode, incluindoStrictTimeoutValidation=enabled): quando o StrictTimeoutValidation parâmetro tem um valor deenabled, um valor de tempo limite por consulta especificado como uma opção de solicitação ou uma dica de consulta não pode exceder o valor definido globalmente no grupo de parâmetros. Nesse caso, Netuno lançará um. InvalidParameterException Essa configuração pode ser confirmada em uma resposta no /status endpoint quando o valor édisabled, e nas versões 1.3.2.0 e 1.3.2.1 do Neptune, o valor padrão desse parâmetro é. Disabled

openCypher melhorias
  • A versão 1.3.2.0 do mecanismo Amazon Neptune oferece uma taxa de transferência openCypher até 9x mais rápida e 10x maior para desempenho de consultas em relação às versões anteriores do mecanismo.

  • Consultas de baixa latência e melhoria no desempenho da taxa de transferência: melhorias gerais no desempenho para consultas de baixa latência. openCypher A nova versão também melhora a taxa de transferência dessas consultas. As melhorias são mais significativas quando consultas parametrizadas são usadas.

  • Support for Query Plan Cache: Quando uma consulta é enviada ao Neptune, a string de consulta é analisada, otimizada e transformada em um plano de consulta, que é executado pelo mecanismo. Os aplicativos geralmente são apoiados por padrões de consulta comuns que são instanciados com valores diferentes. O cache do plano de consulta pode reduzir a latência geral ao armazenar em cache os planos de consulta e, assim, evitar a análise e a otimização desses padrões repetidos. Consulte Cache do plano de consulta no Amazon Neptune para obter mais detalhes.

  • Melhoria de desempenho para consultas DISTINCT de agregação.

  • Melhoria de desempenho para junções envolvendo variáveis anuláveis.

  • Melhoria de desempenho para consultas envolvendo valores diferentes do predicado id (nó/relacionamento).

  • Suporte estendido para a funcionalidade de data e hora (ativado apenas no modo DatetimeMillisecond de laboratório, incluindoDatetimeMillisecond=enabled. Para obter mais informações, consulte Suporte temporal na openCypher implementação do Neptune (Neptune Analytics e Neptune Database 1.3.2.0 e versões posteriores).

Correções de defeitos transferidas da versão 1.3.2.0 do motor

Melhorias gerais
  • A mensagem de erro do NeptuneML foi atualizada ao validar o acesso aos buckets do Graphlytics.

Correções do Gremlin
  • Foi corrigida a falta de informações de rótulos na tradução de DFE consultas, para cenários em que etapas que não contribuem com o caminho contêm rótulos. Por exemplo:

    g.withSideEffect('Neptune#useDFE', true). V(). has('name', 'marko'). has("name", TextP.regex("mark.*")).as("p1"). not(out().has("name", P.within("peter"))). out().as('p2'). dedup('p1', 'p2')
  • Corrigido um NullPointerException erro na tradução da DFE consulta, que ocorre quando uma consulta é executada em dois DFE fragmentos e o primeiro fragmento é otimizado para um nó insatisfatório. Por exemplo:

    g.withSideEffect('Neptune#useDFE', true). V(). has('name', 'doesNotExists'). has("name", TextP.regex("mark.*")). inject(1). V(). out(). has('name', 'vadas')
  • Corrigido um bug em que Neptune podia lançar InternalFailureException um quando uma consulta ValueTraversal continha um modulador by () e sua entrada era Map. Por exemplo:

    g.V(). hasLabel("person"). project("age", "name").by("age").by("name"). order().by("age")
openCypher correções
  • UNWINDOperações aprimoradas (por exemplo, expandir uma lista de valores em valores individuais) para ajudar a evitar situações de falta de memória (OOM). Por exemplo:

    MATCH (n)-->(m) WITH collect(m) AS list UNWIND list AS m RETURN m, list
  • Otimização de identificação personalizada corrigida no caso de várias MERGE operações em que a identificação é injetada viaUNWIND. Por exemplo:

    UNWIND [{nid: 'nid1', mid: 'mid1'}, {nid: 'nid2', mid: 'mid2'}] as ids MERGE (n:N {`~id`: ids.nid}) MERGE (m:M {`~id`: ids.mid})
  • Corrigiu a explosão de memória ao planejar consultas complexas com acesso à propriedade e vários saltos com relacionamentos bidirecionais. Por exemplo:

    MATCH (person1:person)-[:likes]->(res)-[:partOf]->(group)-[:knows]-(:entity {name: 'foo'}), (person1)-[:knows]->(person2)-[:likes]-(res2), (comment)-[:presentIn]->(:Group {name: 'barGroup'}), (person1)-[:commented]->(comment2:comment)-[:partOf]->(post:Post), (comment2)-[:presentIn]->(:Group {name: 'fooGroup'}), (comment)-[:contains]->(info:Details)-[:CommentType]->(:CommentType {name: 'Positive'}), (comment2)-[:contains]->(info2:Details)-[:CommentType]->(:CommentType {name: 'Positive'}) WHERE datetime('2020-01-01T00:00') <= person1.addedAfter <= datetime('2023-01-01T23:59') AND comment.approvedBy = comment2.approvedBy MATCH (comment)-[:contains]->(info3:Details)-[:CommentType]->(:CommentType {name: 'Neutral'}) RETURN person1, group.name, info1.value, post.ranking, info3.value
  • Consultas de agregação fixa com null como grupo por variáveis. Por exemplo:

    MATCH (n) RETURN null AS group, sum(n.num) AS result
SPARQLcorreções
  • O SPARQL analisador foi corrigido para melhorar o tempo de análise de consultas grandes, como INSERT DATA conter muitos triplos e tokens grandes.

Versões de linguagem de consulta compatíveis com esta versão

Antes de atualizar um cluster de banco de dados para a versão 1.3.2.1, certifique-se de que seu projeto seja compatível com essas versões da linguagem de consulta:

  • Versão compatível mais antiga do Gremlin: 3.7.1

  • Versão compatível mais recente do Gremlin: 3.7.1

  • openCypher versão: Neptune-9.0.20190305-1.0

  • SPARQLversão: 1.1

Caminhos de atualização para a versão 1.3.2.1 do motor

Você pode atualizar para esta versão a partir da versão 1.2.0.0 ou superior.

Atualizar para esta versão

Se um cluster de banco de dados estiver executando uma versão do mecanismo a partir da qual haja um caminho de atualização para esta versão, ele estará elegível para ser atualizado agora. Você pode atualizar qualquer cluster qualificado usando as operações do cluster de banco de dados no console ou usando SDK o. O CLI comando a seguir atualizará imediatamente um cluster qualificado:

Para Linux, OS X ou Unix:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.3.2.1 \ --allow-major-version-upgrade \ --apply-immediately

Para Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.3.2.1 ^ --allow-major-version-upgrade ^ --apply-immediately

Em vez de --apply-immediately, é possível especificar --no-apply-immediately. Para realizar uma atualização de versão principal, o allow-major-version-upgrade parâmetro é necessário. Além disso, não se esqueça de incluir a versão do mecanismo ou ele poderá ser atualizado para outra versão.

Se o cluster usar um grupo de parâmetros de cluster personalizado, não se esqueça de incluir este parâmetro para especificá-lo:

--db-cluster-parameter-group-name (name of the custom DB cluster parameter group)

Da mesma forma, se alguma instância no cluster usar um grupo de parâmetros de banco de dados personalizado, não se esqueça de incluir este parâmetro para especificá-lo:

--db-instance-parameter-group-name (name of the custom instance parameter group)

Sempre teste antes de fazer a atualização

Quando uma nova versão principal ou secundária do mecanismo do Neptune for lançada, sempre teste as aplicações do Neptune antes de atualizá-la. Mesmo uma atualização secundária pode introduzir novos atributos ou comportamentos que afetem o código.

Comece comparando as páginas de notas da versão atual com as da versão de destino para ver se haverá alterações nas versões da linguagem de consulta ou outras alterações importantes.

A melhor maneira de testar uma nova versão antes de atualizar o cluster de banco de dados de produção é clonar o cluster de produção para que o clone execute a nova versão do mecanismo. Depois, você pode executar consultas no clone sem afetar o cluster de banco de dados de produção.

Sempre crie um snapshot manual antes de fazer a atualização

Antes de fazer uma atualização, é altamente recomendável sempre criar um snapshot manual do cluster de banco de dados. Ter um snapshot automático só oferece proteção de curto prazo, enquanto um snapshot manual permanece disponível até que você o exclua explicitamente.

Em determinados casos, o Neptune cria um snapshot manual para você como parte do processo de atualização, mas não confie nisso e, em qualquer caso, crie o próprio snapshot manual.

Quando você tiver certeza de que não precisará reverter o cluster de banco de dados para o estado de pré-atualização, poderá excluir explicitamente o snapshot manual criado, bem como o snapshot manual que o Neptune tenha criado. Se o Neptune criar um snapshot manual, ele terá um nome que começa com preupgrade, seguido pelo nome do cluster de banco de dados, a versão do mecanismo de origem, a versão do mecanismo de destino e a data.

nota

Se você estiver tentando atualizar com uma ação pendente em andamento, poderá encontrar um erro como o seguinte:

We're sorry, your request to modify DB cluster (cluster identifier) has failed. Cannot modify engine version because instance (instance identifier) is running on an old configuration. Apply any pending maintenance actions on the instance before proceeding with the upgrade.

Se você encontrar esse erro, aguarde a conclusão da ação pendente ou acione imediatamente uma janela de manutenção para permitir que a atualização anterior seja concluída.

Para obter mais informações sobre como atualizar a versão do mecanismo, consulte Manter o cluster de banco de dados do Amazon Neptune. Se você tiver alguma dúvida ou preocupação, a equipe de AWS Suporte está disponível nos fóruns da comunidade e por meio do AWS Premium Support.