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à.
Motore Amazon Neptune versione 1.2.1.0.R3 (13/06/2023)
A partire dal 13 giugno 2023, viene implementata a livello generale la versione del motore 1.2.1.0.R3. Tieni presente che occorrono diversi giorni prima che una nuova versione diventi disponibile in ogni regione.
Importante
Le modifiche introdotte in questa versione del motore possono in alcuni casi causare un peggioramento delle prestazioni di caricamento in blocco. Di conseguenza, gli aggiornamenti a questo rilascio sono stati temporaneamente sospesi fino alla risoluzione del problema.
Nota
Se si esegue l'aggiornamento da una versione del motore precedente alla 1.2.0.0:
-
Il rilascio del motore 1.2.0.0 ha introdotto un nuovo formato per i gruppi di parametri personalizzati e i gruppi di parametri del cluster personalizzati. Di conseguenza, se si esegue l'aggiornamento da una versione del motore precedente alla 1.2.0.0 alla versione del motore 1.2.0.0 o successiva, è necessario creare nuovamente tutti i gruppi di parametri personalizzati e i gruppi di parametri del cluster personalizzati esistenti utilizzando la famiglia di gruppi di parametri
neptune1.2
. I rilasci precedenti utilizzavano la famiglia di gruppi di parametrineptune1
e tali gruppi di parametri non funzionano con il rilascio 1.2.0.0 e successivi. Per ulteriori informazioni, consulta Gruppi di parametri di Amazon Neptune. -
Il rilascio del motore 1.2.0.0 ha inoltre introdotto un nuovo formato per i log di annullamento. Di conseguenza, tutti i log di annullamento creati da una versione precedente del motore devono essere rimossi e la metrica di CloudWatch UndoLogsListSize deve scendere a zero prima di poter avviare aggiornamenti da una versione precedente alla 1.2.0.0. Se sono presenti troppi record del log di annullamento (200.000 o più) quando si tenta di avviare un aggiornamento, il tentativo di aggiornamento può raggiungere il timeout in attesa del completamento della rimozione dei log di annullamento.
È possibile accelerare la velocità di rimozione aggiornando l'istanza di scrittura del cluster, ovvero dove si verifica la rimozione. Se si esegue questa operazione prima di provare a eseguire l'aggiornamento, è possibile ridurre il numero di log di annullamento prima dell'avvio. L'aumento delle dimensioni dell'istanza di scrittura a un tipo di istanza 24XL può aumentare la velocità di rimozione fino a oltre un milione di record all'ora.
Se la metrica
UndoLogsListSize
di CloudWatch è eccessivamente grande, l'apertura di un caso di supporto può aiutarti a esplorare altre strategie per ridurne le dimensioni. -
Infine, nel rilascio 1.2.0.0 è stata introdotta una modifica radicale che influisce sul codice precedente che utilizzava il protocollo Bolt con l'autenticazione IAM. A partire dal rilascio 1.2.0.0, Bolt necessita di un percorso della risorsa per la firma IAM. In Java l'impostazione del percorso della risorsa ha un aspetto simile al seguente:
request.setResourcePath("/openCypher"));
. In altri linguaggi, è possibile aggiungere/openCypher
all'URI dell'endpoint. Per esempi, consulta Utilizzo del protocollo Bolt.
Nuove caratteristiche in questa versione del motore
Aggiunto il supporto per il caricamento in blocco tra più account utilizzando il concatenamento dei ruoli IAM.
Miglioramenti in questo rilascio del motore
È stata migliorata la fase
fail()
di Gremlin volta a distinguere l'eccezione generata a partire da unaInternalFailureException
generica e a garantire che qualsiasi messaggio fornito dall'utente venisse propagato di nuovo al chiamante.Sono state migliorate le ottimizzazioni del motore di query di Gremlin per
store
,aggregate
,cap
,limit
ehasLabel
.-
Aggiunto il supporto per le funzioni trigonometriche di openCypher:
acos()
asin()
atan()
atan2()
cos()
cot()
degrees()
pi()
radians()
sin()
tan()
-
Aggiunto il supporto per diverse funzioni di aggregazione openCypher:
percentileDisc()
stDev()
-
Aggiunto il supporto per la funzione
epochmillis()
di openCypher che converte undatetime
inepochmillis
. Per esempio:MATCH (n) RETURN epochMillis(n.someDateTime) 1698972364782
Aggiunto il supporto per l'operatore modulo di openCypher (
%
).Aggiunto il supporto per lo strumento Static Debug Explain di openCypher.
Aggiunto il supporto per la funzione
randomUUID()
di openCypher.-
Sono state migliorate le prestazioni di openCypher:
Sono stati migliorati il parser e il pianificatore di query.
È stato migliorato l'utilizzo della CPU nel motore DFE.
-
Sono state migliorate le prestazioni delle query contenenti più clausole di aggiornamento che riutilizzano le stesse variabili. Alcuni esempi sono:
MERGE (n {name: 'John'}) or MERGE (m {name: 'Jim'}) or MERGE (n)-[:knows {since: 2023}]→(m)
-
Sono stati ottimizzati i piani di query per modelli di query multi-hop come:
MATCH (n)-->()-->()-->(m) RETURN n m
-
Sono state migliorate le prestazioni dell'inserimento di elenchi e mappe tramite query parametrizzate. Per esempio:
UNWIND $idList as id MATCH (n {`~id`: id}) RETURN n.name
È stata migliorata l'esecuzione delle query contenenti
WITH
facendone una barriera appropriata.È stata eseguita l'ottimizzazione per evitare la materializzazione ridondante dei valori nelle funzioni
Unfold
e di aggregazione.
-
Sono state migliorate le prestazioni delle query SPARQL che contengono un numero elevato di input statici nella clausola
VALUES
, come:SELECT ?n WHERE { VALUES (?name) { ("John") ("Jim") ... many values ... } ?n a ?n_type . ?n ?name . }
Sono state migliorate le prestazioni delle query CBD SPARQL.
Difetti corretti in questa versione del motore
È stato corretto un bug di Gremlin a causa del quale le query di lunga durata con deep nesting causavano un elevato utilizzo della CPU e timeout delle query durante la fase di pianificazione delle query.
È stato risolto un bug di Gremlin a causa del quale una
NullPointerException
non valida poteva essere generata quando si utilizzavamergeV
emergeE
.
Versioni di linguaggio di query supportate in questo rilascio
Prima di aggiornare un cluster database alla versione 1.2.1.0.R3, assicurati che il tuo progetto sia compatibile con queste versioni di linguaggio di query:
Versione meno recente di Gremlin supportata:
3.6.2
Versione più recente di Gremlin supportata:
3.6.2
Versione openCypher:
Neptune-9.0.20190305-1.0
Versione di SPARQL:
1.1
Percorsi di aggiornamento al rilascio del motore 1.2.1.0.R3
Aggiornamento a questo rilascio
Amazon Neptune 1.2.1.0.R3 è ora disponibile a livello generale.
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.2.1.0 \ --apply-immediately
Per Windows:
aws neptune modify-db-cluster ^ --db-cluster-identifier
(your-neptune-cluster)
^ --engine-version 1.2.1.0 ^ --apply-immediately
Gli aggiornamenti vengono applicati contemporaneamente a tutte le istanze in un cluster di database. Un aggiornamento richiede il riavvio del database su queste istanze, quindi si verificheranno tempi di inattività che vanno da 20-30 secondi a diversi minuti, dopodiché si potrà riprendere a usare il cluster database.
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 del supporto AWS è disponibile nei forum della community e tramite il Supporto AWS Premium