Motore Amazon Neptune versione 1.3.0.0 (15/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.3.0.0 (15/11/2021)

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

Nota

La versione del motore 1.3.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.3.0.0 alla versione del motore 1.3.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.3. Le versioni precedenti utilizzavano la famiglia di gruppi di parametri neptune1 o neptune1.2 e tali gruppi di parametri non funzionano con la versione 1.3.0.0 e successive. Per ulteriori informazioni, consulta Gruppi di parametri di Amazon Neptune.

Nuove caratteristiche in questo rilascio del motore

  • È stata rilasciata l'API dei dati di Neptune.

    L'API di dati di Amazon Neptune fornisce supporto SDK per più di 40 operazioni sui dati di Neptune, incluse caricamento di dati, esecuzione di query, richiesta di dati e machine learning. Supporta tutti e tre i linguaggi di query Neptune (Gremlin, openCyphere e SPARQL) ed è disponibile in tutti i linguaggi dell'SDK. Firma automaticamente le richieste delle API e semplifica enormemente l'integrazione di Neptune nelle applicazioni.

  • È stato aggiunto il supporto per l'integrazione di OpenSearchServerless con Neptune.

Miglioramenti in questo rilascio del motore

Miglioramenti agli aggiornamenti del motore Neptune

Neptune ha cambiato la modalità di rilascio degli aggiornamenti del motore in modo da avere un maggiore controllo sul processo di aggiornamento. Anziché rilasciare patch per modifiche non irreversibili, Neptune ora rilascia versioni secondarie che possono essere controllate utilizzando il campo dell'istanza AutoMinorVersionUpgrade e per le quali è possibile ricevere notifiche sottoscrivendo un abbonamento all'evento RDS-EVENT-0156.

Per ulteriori informazioni su queste modifiche, consulta Maintaining your Amazon Neptune DB Cluster.

Miglioramento della crittografia in transito

Neptune non supporta più i pacchetti di crittografia seguenti:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

Neptune supporta solo le seguenti suite di cifratura complessa con TLS 1.2:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Miglioramenti apportati a Gremlin
  • È stato aggiunto il supporto nel motore DFE per le fasi Gremlin seguenti:

    • FoldStep

    • GroupStep

    • GroupCountStep

    • TraversalMapStep

    • UnfoldStep

    • LabelStep

    • PropertyKeyStep

    • PropertyValueStep

    • AndStep

    • OrStep

    • ConstantStep

    • CountGlobalStep

  • Piani di query DFE di Gremlin ottimizzati per evitare scansioni complete dei vertici durante l'utilizzo della modulazione by().

  • Prestazioni notevolmente migliorate delle query a bassa cardinalità e bassa latenza.

  • È stato aggiunto il supporto DFE per i predicati di filtro. TinkerPop Or

  • Supporto DFE migliorato dell'attraversamento per i filtri sulla stessa chiave, per query come le seguenti:

    g.withSideEffect("Neptune#useDFE", true) .V() .has('name', 'marko') .and( or( has('name', eq("marko")), has('name', eq("vardas")) ) )
  • Gestione degli errori migliorata per il passaggio fail().

Miglioramenti di openCypher
  • Prestazioni notevolmente migliorate delle query a bassa cardinalità e bassa latenza.

  • Prestazioni di pianificazione delle query migliorate quando la query contiene molti tipi di nodi.

  • Latenza ridotta di tutte le query VLP.

  • Prestazioni migliorate rimuovendo i join di pipeline ridondanti per le query con un unico modello di nodo.

  • Prestazioni migliorate per le query contenenti modelli multi-hop con cicli, come il seguente:

    MATCH (n)-->()-->()-->(m) RETURN n m
Miglioramenti di SPARQL
  • Introdotto un nuovo operatore SPARQL: PipelineHashIndexJoin.

  • Prestazioni di convalida URI migliorate per le query SPARQL.

  • Prestazioni delle query di ricerca full-text SPARQL migliorate mediante la risoluzione in batch dei termini del dizionario.

Difetti corretti in questo rilascio del motore

Correzioni Gremlin
  • È stato corretto un bug di Gremlin a causa del quale si verificava una perdita di transazioni durante il controllo dell'endpoint di stato delle query Gremlin per le query con predicati in attraversamenti figlio per fasi non elaborate in modo nativo nel motore DFE.

  • È stato corretto un bug di Gremlin a causa del quale valueMap() non era ottimizzato nel motore DFE negli attraversamenti by().

  • È stato corretto un bug di Gremlin a causa del quale un'etichetta di fase collegata a UnionStep non veniva propagata all'ultimo elemento di percorso dei rispettivi attraversamenti figlio.

  • Risolto un bug di Gremlin per cui una query non funzionava perché conteneva troppi TinkerPop passaggi e quindi non veniva eliminata.

  • È stato corretto un bug di Gremlin a causa del quale veniva generato un NullPointerException nelle fasi mergeV e mergeE.

  • È stato corretto un bug di Gremlin a causa del quale order() non ordinava correttamente gli output di stringa quando alcuni di essi contenevano un carattere di spazio.

  • È stato risolto un problema di correttezza di Gremlin che si verificava durante l'elaborazione della fase valueMap nel motore DFE.

  • È stato risolto un problema di correttezza di Gremlin che si verificava quando GroupStep o GroupCountStep era annidato in un attraversamento chiave.

Correzioni apportate a openCypher
  • È stato risolto un bug di OpenCypher riguardante la gestione degli errori relativi ai caratteri NULL.

  • È stato corretto un bug nella gestione delle transazioni Bolt di openCypher.

Correzioni apportate a SPARQL
  • È stato corretto un bug SPARQL a causa del quale i valori all'interno delle funzioni ricorsive non venivano risolti correttamente.

  • È stato corretto un bug di SPARQL che causava un peggioramento delle prestazioni quando veniva inserito un numero elevato di valori utilizzando la clausola VALUES.

  • È stato corretto un bug di SPARQL a causa del quale una chiamata all'operatore REGEX su un valore letterale con tag di lingua non andava mai a buon fine.

Versioni di linguaggio di query supportate in questo rilascio

Prima di aggiornare un cluster di database alla versione 1.3.0.0, accertarsi che il 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.4

  • Versione openCypher: Neptune-9.0.20190305-1.0

  • Versione di SPARQL: 1.1

Percorsi di aggiornamento al rilascio del motore 1.3.0.0

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

Per Windows:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.3.0.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.