Motore Amazon Neptune versione 1.1.0.0 (19/11/2021) - 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à.

Motore Amazon Neptune versione 1.1.0.0 (19/11/2021)

A partire dal 19 novembre 2021, viene implementata a livello generale la versione del motore 1.1.0.0. Tieni presente che occorrono diversi giorni prima che una nuova versione diventi disponibile in ogni regione.

Importante

L'aggiornamento a questo rilascio del motore da una versione precedente alla 1.1.0.0 attiva anche un aggiornamento del sistema operativo su tutte le istanze del cluster database. Poiché le richieste di scrittura attive che si verificano durante l'aggiornamento del sistema operativo non vengono elaborate, è necessario sospendere tutti i carichi di lavoro in scrittura sul cluster da aggiornare, compresi i caricamenti di dati in blocco, prima di avviare l'aggiornamento.

Per completare correttamente l'aggiornamento, ogni sottorete in ciascuna zona di disponibilità (AZ) deve avere almeno un indirizzo IP disponibile per ogni istanza di Neptune. Ad esempio, se ci sono un'istanza di scrittura e due istanze di lettura nella sottorete 1 e due istanze di lettura nella sottorete 2, la sottorete 1 deve avere almeno 3 indirizzi IP liberi e la sottorete 2 deve avere almeno 2 indirizzi IP liberi prima di avviare l'aggiornamento.

All'inizio dell'aggiornamento, Neptune genera uno snapshot con un nome composto da preupgrade seguito da un identificatore generato automaticamente in base alle informazioni del cluster database. Per lo snapshot non ti verrà addebitato alcun costo e potrai utilizzarlo per ripristinare il cluster database in caso di problemi durante il processo di aggiornamento.

La nuova versione del motore (una volta completato il relativo aggiornamento) rimane disponibile per un breve periodo di tempo sul vecchio sistema operativo, ma in meno di 5 minuti tutte le istanze del cluster avviano contemporaneamente un aggiornamento del sistema operativo. A questo punto, il cluster database non sarà disponibile per alcuni minuti. Puoi riprendere i carichi di lavoro in scrittura al termine dell'aggiornamento.

Questo processo genera i seguenti eventi:

  • Messaggi di evento per cluster:

    • Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-(autogenerated snapshot ID)]

    • Database cluster major version has been upgraded

  • Messaggi di evento per istanza:

    • Applying off-line patches to DB instance

    • DB instance shutdown

    • Finished applying off-line patches to DB instance

    • DB instance restarted

Nota

A partire da questo rilascio del motore, Neptune non supporta più le istanze di tipo R4. Se utilizzi un'istanza R4 nel cluster database, devi sostituirla manualmente con un'istanza di tipo diverso prima di eseguire l'aggiornamento a questo rilascio. Se l'istanza di scrittura è di tipo R4, segui queste istruzioni per spostarla.

Rilascio di patch successive per questo rilascio

Nuove caratteristiche in questa versione del motore

  • Sono state introdotte istanze di database T4g per uso generale e R6g ottimizzate per la memoria basate sul processore Graviton2 AWS. Le istanze basate su Graviton2 offrono un rapporto prezzo/prestazioni significativamente migliore rispetto alle istanze basate su x86 di generazione attuale simili per una varietà di carichi di lavoro. Le applicazioni funzionano normalmente su questi nuovi tipi di istanze e non è necessario eseguire il porting del codice dell'applicazione quando si esegue l'aggiornamento ad esse.

    Per ulteriori informazioni sui prezzi e sulla disponibilità regionale, consulta la pagina relativa ai prezzi di Amazon Neptune.

  • Sono stati introdotti alcuni modelli personalizzati in Neptune ML.

  • Aggiunto il supporto per le query di inferenza SPARQL in Neptune ML.

  • È stato aggiunto un nuovo endpoint streams per i dati dei grafi di proprietà, ossia:

    https://Neptune-DNS:8182/propertygraph/stream

    Il formato di output di questo endpoint, denominato PG_JSON, è esattamente lo stesso del formato di output GREMLIN_JSON del vecchio endpoint gremlin/stream.

    Il nuovo endpoint propertygraph/stream estende il supporto per il flusso Neptune a openCypher e sostituisce l'endpoint gremlin/stream con il formato di output GREMLIN_JSON associato.

Miglioramenti in questo rilascio del motore

  • Sono stati apportati miglioramenti ai flussi Neptune:

  • Aggiunto il supporto per ottenere il punteggio di attendibilità dell'inferenza nelle query di classificazione e regressione dei nodi Gremlin.

  • Aggiunto il supporto per la clausola OPTIONAL MATCH in openCypher.

  • Aggiunto il supporto per la clausola MERGE in openCypher.

  • Aggiunto il supporto per l'utilizzo di ORDER BY nelle clausole WITH in openCypher.

  • Aggiunto il supporto per la comprensione dei pattern in openCypher ed esteso il supporto per l'espressione dei pattern oltre il controllo dell'esistenza.

  • È stato esteso il supporto per le clausole DELETE DETACH e DELETE in openCypher, in modo che possano ora essere utilizzate con altre clausole di aggiornamento.

  • È stato esteso il supporto per le clausole CREATE e UPDATE utilizzate con RETURN in openCypher.

  • È stato aggiunto il supporto nel motore DFE per le fasi limit, range e skip di Gremlin.

  • È stata migliorata l'esecuzione di query nel motore DFE quando non è richiesto explainprofile.

  • È stata migliorata l'esecuzione di query nel motore DFE per l'espressione value.

  • Sono stati migliorati alcuni pattern di inserimento condizionale di Gremlin concatenati in modo da evitare eccezioni di modifica simultanea e da consentire il concatenamento di pattern di interrogazione come questi:

    • Inserimento condizionale di vertici per ID, ad esempio:

      g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID))
    • Inserimento condizionale di vertici con più etichette, ad esempio:

      g.V(ID).fold().coalesce(unfold(), g.addV("L1::L2").property(id,ID))
    • Inserimento condizionale di archi per ID, ad esempio:

      g.E(ID).fold().coalesce(unfold(), V(from).addE(label).to(V(to)).property(id, ID))
    • Inserimento condizionale di archi con più etichette, ad esempio:

      g.E(ID).fold().coalesce(unfold(), g.addE(label).from(V(from)).to(V(to)).property(id, ID))
    • Inserimento condizionale seguito da una query, ad esempio:

      g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID)).project("myvalues").by(valueMap())
    • Inserimento condizionale con proprietà aggiunte, ad esempio:

      g.V(ID).fold().coalesce(unfold(), g.addV("L1").property(id,ID).property("name","pumba"))

Difetti corretti in questa versione del motore

  • È stata disabilitata la funzionalità relativa alle statistiche sulle istanze di tipo T3.medium, che non erano in grado di supportarla.

  • È stato corretto un bug SPARQL in explain relativo a una funzione IN che assumeva valori non costanti.

Versioni di linguaggio di query supportate in questo rilascio

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

  • Versione di Gremlin: 3.4.11

  • Versione di SPARQL: 1.1

Percorsi di aggiornamento al rilascio del motore 1.1.0.0

È possibile aggiornare manualmente qualsiasi rilascio del motore Neptune precedente a questo rilascio.

L'aggiornamento a questo rilascio non viene eseguito automaticamente.

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.1.0.0 \ --allow-major-version-upgrade \ --apply-immediately

Per Windows:

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

Invece di --apply-immediately, puoi specificare --no-apply-immediately. Per eseguire un aggiornamento di versione principale, è richiesto il parametro allow-major-version-upgrade. 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 del supporto AWS è disponibile nei forum della community e tramite il Supporto AWS Premium.