Amazon Neptune Engine versione 1.4.1.0 (2024-11-21) - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Amazon Neptune Engine versione 1.4.1.0 (2024-11-21)

A partire dal 21/11/2024, la versione del motore 1.4.1.0 viene generalmente distribuita. Tieni presente che occorrono diversi giorni prima che una nuova versione diventi disponibile in ogni regione.

avvertimento

La cache del piano di query non è temporaneamente supportata per l'esecuzione di query parametrizzate che coinvolgono valori di parametri numerici, a causa di un bug nella gestione degli usi duplicati di un parametro di tipo numerico nella query. Per esempio:

MATCH (n:movie) WHERE n.runtime>=$minutes RETURN n UNION MATCH (n:show) WHERE n.duration>=$minutes RETURN n parameters={"minutes":130}

Le query che eseguono molte ricerche di indice su istruzioni o indici di dizionario potrebbero registrare una regressione delle prestazioni del 5%. Ad esempio, ottenere un conteggio di tutti i vertici o ottenere il risultato di tutti i vertici non ne id risentirebbe. L'ottenimento di tutte le proprietà di tutti i vertici potrebbe comportare una regressione fino al 5%.

Nuove funzionalità in questa versione del motore

  • È stato aggiunto il supporto per la CALL sottoquery con una sottoquery di sola lettura, che consente l'esecuzione di operazioni all'interno di un ambito definito. Una CALL sottoquery viene eseguita una volta per ogni riga in entrata e le variabili restituite in una sottoquery sono disponibili per l'ambito esterno della query che la contiene. Le variabili dall'ambito esterno possono essere importate in una CALL sottoquery utilizzando una clausola di importazione. WITH Per ulteriori informazioni, consulta il supporto delle subquery CALL in Neptune.

    MATCH (origin:airport {code:"AUS"})-[:route]->(stopover) CALL { WITH stopover MATCH (stopover)-[r:route]->(destination) RETURN destination ORDER BY r.dist DESC LIMIT 2 } RETURN stopover, destination
  • Aggiunte funzioni OpenCypher. Stiamo introducendo otto nuove funzioni per facilitare le stringhe, le operazioni di raccolta e l'ordinamento delle raccolte. Queste includono:textIndexOf,collToSet,collSubtract,collIntersection, collSort collSortMapscollSortMulti, e. collSortNodes Vedi le funzioni OpenCypher di Neptune per la descrizione, i parametri di input, l'output e gli esempi.

Miglioramenti in questa versione del motore

Miglioramenti apportati a Gremlin
  • Nuovo parametro della modalità labAccurateQRCMemoryEstimation. La cache dei risultati delle query di Gremlin, se abilitata, consente la memorizzazione nella cache dei risultati delle query sul database. Per impostazione predefinita, viene utilizzata una stima approssimativa per determinare la dimensione dei risultati nella cache. Con questo parametro della modalità lab AccurateQRCMemoryEstimation abilitato, la stima delle dimensioni per i risultati memorizzati nella cache utilizzerà una stima delle dimensioni accurata anziché approssimativa.

  • È stato risolto un problema relativo all'ottimizzazione del filtro «not» nelle query Gremlin eseguite sul motore di esecuzione predefinito. Questo problema riguardava le query quando i bordi venivano filtrati utilizzando il passaggio not () combinato con uno dei passaggi OutV () /inv () /otherV (). Le query di esempio includono:

    • g.E().hasLabel("knows").not(outV().hasId("5"))

    • g.V().has('airport','code','ROC').outE().where(not(otherV().has(id, within('1','5','7')))).count()

Miglioramenti di openCypher
  • Prestazioni migliorate per le query che utilizzano elenchi o mappe statiche di grandi dimensioni. Alcune interrogazioni eseguite con UNWIND su un ampio elenco di mappe annidate utilizzate per inserire o modificare un nodo con proprietà registrano miglioramenti significativi delle prestazioni.

  • Introduce un nuovo suggerimento di interrogazione OpenCypher per indicare al motore di assumere tipi di dati coerenti per i valori utilizzati nella query. Vedi i dettagli sul nuovo suggerimento per la query OpenCypher. AssumeConsistentDataTypes

  • Introduce una serie di nuove funzioni OpenCypher per la gestione del testo e dei valori di raccolta.

Difetti corretti in questa versione del motore

Correzioni Gremlin
  • È stato risolto un problema nel percorso del codice TinkerPop OSS che consentiva di creare una rappresentazione in bytecode di una query trasversale quando uno qualsiasi dei withStrategies()/withoutStrategies()/with() passaggi veniva utilizzato sull'oggetto GraphTraversalSource «g». Il problema aggiungeva erroneamente nuove istruzioni a Bytecode anziché sostituire le istruzioni esistenti per la stessa strategia e causava una mancata corrispondenza della chiave della cache durante l'invalidazione della cache dei risultati per cancellare i risultati memorizzati.

Correzioni apportate a openCypher
  • `~id`matchCREATE/MERGE/MATCHComportamento corretto per le clausole in. Quando si utilizza un `~id` valore non valido come i tipi null o non stringhe, ora viene generata un'eccezione corretta per le clausole CREATE/MERGE e viene restituito zero risultati per una clausola. MATCH

  • <string>IFE fisso quando l'utente utilizza un valore di tipo non supportato con funzioni di aggregazione (ad esempio sum ()).

  • È stato risolto un problema per cui alcune query di mutazione a bassa latenza provenienti da un grande carico di lavoro di query non funzionavano con un errore. OutOfMemory

Correzioni apportate a SPARQL
  • È stato risolto un problema nel registro di controllo durante la gestione delle query SPARQL che contengono il carattere. '%'

Versioni di linguaggio di query supportate in questo rilascio

Prima di aggiornare un cluster DB alla versione 1.4.1.0, assicurati che il tuo progetto sia compatibile con queste versioni in linguaggio di query:

  • Versione meno recente di Gremlin supportata: 3.7.1

  • Versione più recente di Gremlin supportata: 3.7.1

  • Versione openCypher: Neptune-9.0.20190305-1.0

  • Versione di SPARQL: 1.1

Percorsi di aggiornamento alla versione 1.4.1.0 del motore

Puoi eseguire l'aggiornamento a questo rilascio dal rilascio del motore 1.2.0.0 o successivi.

Aggiornamento a questo rilascio

Se un cluster database utilizza una versione del motore dalla quale esiste un percorso di aggiornamento a questo rilascio, ora è idoneo all'aggiornamento. È possibile aggiornare qualsiasi cluster idoneo utilizzando le operazioni del cluster database sulla console o utilizzando SDK. Il seguente comando CLI aggiornerà immediatamente un cluster idoneo:

Per Linux, OS X o Unix:

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

Per Windows:

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

Invece di --apply-immediately, puoi specificare --no-apply-immediately. Per eseguire un aggiornamento della versione principale, il allow-major-version-upgrade parametro è obbligatorio. Assicurati inoltre di includere la versione del motore onde evitare che il tuo motore venga aggiornato a una versione diversa.

Se il cluster utilizza un gruppo di parametri del cluster personalizzato, assicurati di includere questo parametro per specificarlo:

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

Analogamente, se alcune istanze del cluster utilizzano un gruppo di parametri del database personalizzato, assicurati di includere questo parametro per specificarlo:

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

Eseguire sempre un test prima dell'aggiornamento

Quando viene rilasciata una nuova versione principale o secondaria del motore Neptune, testa sempre le applicazioni Neptune su di essa prima di procedere all'aggiornamento. Anche un aggiornamento secondario potrebbe introdurre nuove funzionalità o comportamenti che possono influire sul codice.

Inizia confrontando le pagine delle note di rilascio della versione corrente con quelle della versione di destinazione per valutare se verranno modificate le versioni del linguaggio di query o verranno introdotte altre modifiche che causano interruzioni.

Il modo migliore per testare una nuova versione prima di aggiornare il cluster database di produzione è clonare il cluster di produzione affinché il clone esegua la nuova versione del motore. È quindi possibile eseguire query sul clone senza influire sul cluster database di produzione.

Creare sempre uno snapshot manuale prima dell'aggiornamento

Prima di procedere a un aggiornamento, è consigliabile creare sempre uno snapshot manuale del cluster database. Uno snapshot automatico offre solo una protezione a breve termine, mentre uno snapshot manuale rimane disponibile fino a quando non lo elimini esplicitamente.

In alcuni casi Neptune crea automaticamente uno snapshot manuale come parte del processo di aggiornamento, ma non è consigliabile farvi affidamento ed è comunque opportuno creare sempre il proprio snapshot manuale.

Quando hai la certezza che non sarà necessario ripristinare lo stato precedente all'aggiornamento del cluster di database, puoi eliminare in modo esplicito lo snapshot manuale che hai creato, così come lo snapshot manuale eventualmente creato da Neptune. Se Neptune crea uno snapshot manuale, questo avrà un nome che inizia con preupgrade, seguito dal nome del cluster database, dalla versione del motore di origine, dalla versione del motore di destinazione e dalla data.

Nota

Se stai tentando di eseguire l'aggiornamento mentre è in corso un'azione in sospeso, potrebbe verificarsi un errore come il seguente:

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 riscontri questo errore, attendi il completamento dell'azione in sospeso o attiva immediatamente una finestra di manutenzione per completare l'aggiornamento precedente.

Per ulteriori informazioni sull'aggiornamento della versione del motore, consulta Gestione del cluster di database Amazon Neptune. In caso di domande o dubbi, il team di AWS supporto è disponibile nei forum della community e tramite AWS Premium Support.