Amazon Neptune エンジンバージョン 1.2.1.0 (2023-03-08) - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Neptune エンジンバージョン 1.2.1.0 (2023-03-08)

2023 年 3 月 8 日現在、エンジンバージョン 1.2.1.0 は一般にデプロイされています。新しいリリースがすべてのリージョンで利用可能になるまでに数日かかります。

注記

1.2.0.0 より前のエンジンバージョンからアップグレードを行う場合:

  • エンジンリリース 1.2.0.0 では、カスタムパラメータグループとカスタムクラスターパラメータグループに新しい形式が導入されました。そのため、1.2.0.0 より前のエンジンバージョンからエンジンバージョン 1.2.0.0 以降にアップグレードする場合は、パラメータグループファミリー neptune1.2 を使用している既存のカスタムパラメータグループとカスタムクラスターパラメータグループをすべて再作成する必要があります。以前のリリースではパラメータグループファミリー neptune1 が使用されていましたが、それらのパラメータグループはリリース 1.2.0.0 以降では動作しません。詳細については、「Amazon Neptune パラメータグループ」を参照してください。

  • エンジンリリース 1.2.0.0 では、UNDO ログの新しい形式も導入されました。そのため、1.2.0.0 より前のバージョンからのアップグレードを開始する前に、以前のエンジンバージョンで作成された UNDO ログをすべてパージし、UndoLogsListSize CloudWatch メトリクスをゼロにする必要があります。更新を開始しようとしたときに UNDO ログレコードが多すぎる (200,000 以上) 場合、UNDO ログのパージが完了するのを待っている間にアップグレードがタイムアウトすることがあります。

    パージが行われるクラスターのライターインスタンスをアップグレードすることで、パージの速度を上げることができます。アップグレードを試みる前にこれを行うと、開始前に UNDO ログの数を減らすことができます。ライターのサイズを 24XL インスタンスタイプに増やすと、パージ率が 1 時間あたり 100 万レコードを超えることがあります。

    UndoLogsListSize CloudWatch メトリクスが非常に大きい場合、サポートケースを開くと、それを停止するための追加の戦略を検討するのに役立つ場合があります。

  • 最後に、リリース 1.2.0.0 には、IAM 認証で Bolt プロトコルを使用していた以前のコードに影響する重大な変更がありました。リリース 1.2.0.0 以降、Bolt には IAM 署名用のリソースパスが必要です。Java では、リソースパスの設定は以下のようになります: request.setResourcePath("/openCypher"));。その他の言語では、/openCypher をエンドポイント URI に追加できます。例については、「Bolt プロトコルの使用」を参照してください。

このリリースの後続のパッチリリース

このエンジンリリースの新機能

  • TinkerPop 3.6.2 のサポートが追加されました。これにより、新しい mergeV()mergeE()element()、および fail() ステップなど、多くの新しい Gremlin 機能が追加されました。mergeV() および mergeE() ステップは、アップサートのような操作を実行するための待望の宣言型オプションを提供するため、特に注目すべき点です。これにより、既存のコードパターンが大幅に簡略化され、Gremlin が読みやすくなるはずです。3.6.x バージョンでは、正規表現述語、Map を取る property() ステップへの新しいオーバーロード、by() 変調動作の大幅な改訂も追加されました。変調動作の大幅な改訂により、これを使用するすべてのステップではるかに一貫性が保たれています。

    バージョン 3.6 の変更点とアップグレード時に考慮すべき点については、TinkerPop の変更ログアップグレードのページを参照してください。

    fold().coalesce(unfold(), <mutate>) を条件付き挿入に使用している場合は、ここここで説明されている新しい mergeV/E() 構文に移行することをお勧めします。Neptune では、Merge については Coalesce よりも狭いロックパターンを使用するため、同時変更例外 (CME) を減らすことができます。

    今回の TinkerPop リリースで利用できる新機能の詳細については、Stephen Mallette のブログ「Amazon Neptune での Apache TinkerPop 3.6.x の新機能の探求」を参照してください。

  • 第 3 世代の Intel Xeon スケーラブルプロセッサを搭載した R6i インスタンスタイプのサポートを追加しました。これらはメモリ集約的なワークロードに最適であり、同等の R5 インスタンスタイプよりも計算性能/価格パフォーマンスが最大 15% 向上し、vCPU あたりのメモリ帯域幅が最大 20% 高くなります。

  • プロパティグラフと RDF グラフの両方にグラフサマリー API エンドポイントが追加され、グラフに関する概要レポートをすばやく取得できるようになりました。

    プロパティ (PG) グラフについて、グラフサマリー API は、ノードおよびエッジラベルとプロパティキーの読み取り専用リストを、ノード、エッジ、プロパティの数とともに返します。RDF グラフでは、クラスと述語キーのリストに加え、クワッド、主語、述語の数も表示されます。

    新しいグラフサマリー API に伴い、以下の変更が行われました。

    • 新しい GetGraphSummary データプレーンアクションが追加されました。

    • 廃止された sparql/statistics エンドポイントに代わる新しい rdf/statistics エンドポイントが追加されました。

    • グラフのサマリー情報と混同しないように、統計ステータスレスポンスの summary フィールドの名前がsignatureInfo に変更されました。JSON レスポンスでは、以前のエンジンバージョンも引き続き summary を使用します。

    • 統計ステータスレスポンスの date フィールドの精度が分単位からミリ秒単位に変更されました。以前の形式は 2020-05-07T23:13Z (分精度) でしたが、新しい形式は 2023-01-24T00:47:43.319Z (ミリ秒精度) です。どちらも ISO 8601 に準拠していますが、日付の解析方法によっては、この変更により既存のコードが壊れる可能性があります。

    • DFE エンジンの統計情報を取得できる新しい %statistics ラインマジックがワークベンチに追加されました。

    • グラフの概要情報を取得できる新しい %summary ラインマジックがワークベンチに追加されました。

  • 指定したしきい値よりも実行に時間がかかったクエリをログに記録するスロークエリロギングが追加されました。スロークエリロギングを有効化および制御するには、neptune_enable_slow_query_logneptune_slow_query_log_threshold という 2 つの新しい動的パラメーターを使用します。

  • 2 つの動的パラメータ、すなわち、新しいクラスターパラメータ neptune_enable_slow_query_logneptune_slow_query_log_threshold のサポートが追加されました。動的パラメータを変更すると、インスタンスを再起動しなくてもすぐに有効になります。

  • 指定されたキーをマップから削除し、生成された新しいマップを返す Neptune 固有の openCypher removeKeyFromMap() 関数が追加されました。

このエンジンリリースの改良点

  • Gremlin DFE のサポートがローカルスコープの limit ステップに拡張されました。

  • DFE エンジンでの Gremlin DedupGlobalStepby() モジュレーションサポートが追加されました。

  • Gremlin SelectStep および SelectOneStep の DFE サポートが追加されました。

  • repeatcoalescestoreaggregate など、さまざまな Gremlin 演算子のパフォーマンスの向上と正確性の修正を行いました。

  • MERGEOPTIONAL MATCH を含む openCypher クエリのパフォーマンスが向上しました。

  • リテラル値のマップのリストの UNWIND を含む openCypher クエリのパフォーマンスが向上しました。

  • idIN フィルターの付いた openCypher クエリのパフォーマンスが向上しました。例:

    MATCH (n) WHERE id(n) IN ['1', '2', '3'] RETURN n
  • BASE ステートメントを使用して SPARQL クエリのベース IRI を指定する機能が追加されました (「クエリと更新のためのデフォルトベース IRI」を参照)。

  • Gremlin と openCypher のエッジのみの一括ロードのロード処理待ち時間を短縮しました。

  • 再開の試みが失敗するまでの Amazon S3 接続の問題による長時間の待ち時間を回避するため、Neptune の再起動時に一括読み込みが非同期で再開されるようになりました。

  • describeMode クエリのヒントが "CBD" (簡潔で限定された説明) に設定されていて、多数の空白ノードを含む SPARQL DESCRIBE クエリの処理が改善されました。

このエンジンリリースで修正された不具合

  • Bolt と SPARQL-JSON でクエリが NULL 値ではなく文字列 "null" を返す openCypher のバグを修正しました。

  • リスト要素に指定された値ではなく NULL 値が生成される、リスト内包表記の openCypher のバグを修正しました。

  • バイト値が正しくシリアル化されない openCypher のバグを修正しました。

  • 子トラバーサル内で入力が頂点へのエッジトラバーサルであった場合に発生していた UnionStep の Gremlin のバグを修正しました。

  • UnionStep に関連付けられたステップラベルが各子トラバーサルの最後のステップに正しく伝播されない Gremlin のバグを修正しました。

  • repeat ステップの後にラベルがある dedup ステップで、dedup ステップに添付されたラベルがクエリで今後使用できなくなる Gremlin のバグを修正しました。

  • union ステップ内の repeat ステップを変換すると内部エラーで失敗する Gremlin のバグを修正しました。

  • Tinkerpop にフォールバックして limit を非結合ステップの子トラバーサルとして持つ DFE クエリの Gremlin の正確性の問題を修正しました。次のような形式のクエリが影響を受けます。

    g.withSideEffect('Neptune#useDFE', true).V().as("a").select("a").by(out().limit(1))
  • SPARQL GRAPH パターンが FROM NAMED 句によって指定されるデータセットを考慮しないという SPARQL のバグを修正しました。

  • SPARQL DESCRIBE に一部の FROMFROM NAMED 句があると、デフォルトグラフのデータが常に正しく使用されず、例外が発生することがあった SPARQL のバグを修正しました。「SPARQL DESCRIBE のデフォルトグラフに対する動作」を参照してください。

  • SPARQL のバグを修正し、NULL 文字が拒否された場合に正しい例外メッセージが返されるようになりました。

  • PipelinedHashIndexJoin 演算子を含むプランに影響を及ぼしていた SPARQL の説明バグを修正しました。

  • 定数値を返すクエリが送信されると内部エラーがスローされる openCypher のバグを修正しました。

  • デッドロック検出ロジックで、エンジンが応答しなくなることがあった問題を修正しました。

このリリースでサポートされるクエリ言語バージョン

DB クラスターをバージョン 1.2.1.0 にアップグレードする前に、プロジェクトが次のクエリ言語バージョンと互換性があることを確認してください。

  • サポートされている最も古いバージョンの Gremlin: 3.6.2

  • サポートされている最も新しいバージョンの Gremlin: 3.6.2

  • openCypher バージョン: Neptune-9.0.20190305-1.1

  • SPARQL バージョン: 1.1

エンジンリリース 1.2.1.0 へのアップグレードパス

1.1.0.0 以上の以前の Neptune エンジンリリースから、このリリースに手動でアップグレードできます。

注記

エンジンリリース 1.2.0.0 以降、1.2.0.0 より前のエンジンバージョンで使用していたすべてのカスタムパラメータグループとカスタムクラスターパラメータグループは、パラメータグループファミリー neptune1.2 を使用して再作成する必要があります。以前のリリースではパラメータグループファミリー neptune1 が使用されていましたが、これらのパラメータグループは 1.2.0.0 以降のリリースでは動作しなくなります。詳細については、「Amazon Neptune パラメータグループ」を参照してください。

このメジャーバージョンリリースに自動的にアップグレードされることはありません。

このリリースへのアップグレード

Amazon Neptune 1.2.1.0 が公開されました。

DB クラスターで、このリリースへのアップグレードパスがあるエンジンバージョンを実行している場合は、今すぐアップグレードできます。対象となるクラスターをアップグレードするには、コンソールの DB クラスターオペレーションまたは SDK を使用します。次の CLI コマンドは、適格なクラスターをただちにアップグレードします。

Linux、OS X、Unix の場合:

aws neptune modify-db-cluster \ --db-cluster-identifier (your-neptune-cluster) \ --engine-version 1.2.1.0 \ --apply-immediately

Windows の場合:

aws neptune modify-db-cluster ^ --db-cluster-identifier (your-neptune-cluster) ^ --engine-version 1.2.1.0 ^ --apply-immediately

更新は、DB クラスター内のすべてのインスタンスに同時に適用されます。更新では、DB クラスター内のすべてのインスタンスでデータベースを再起動する必要があるため、20 〜 30 秒から数分のダウンタイムが発生します。その後、DB クラスターの使用を再開できます。

アップグレードの前に必ずテストする

新しいメジャーまたはマイナーバージョンの Neptune エンジンがリリースされたら、アップグレードする前に、まず最初に Neptune アプリケーションをテストしてください。マイナーアップグレードでも、コードに影響する新しい機能や動作が導入される可能性があります。

まず、現在のバージョンのリリースノートページと対象バージョンのリリースノートページを比較して、クエリ言語のバージョンに変更があるか、その他の重大な変更がないかを確認します。

本番 DB クラスターをアップグレードする前に新しいバージョンをテストする最善の方法は、本番クラスターをクローンして、クローンで新しいエンジンバージョンを実行することです。その後、本番 DB クラスターに影響を与えずに、クローンに対してクエリを実行できます。

アップグレードの前に必ずスナップショットを手動で作成してください

アップグレードの前に必ず DB クラスターの手動スナップショットを作成することを強く推奨します。自動スナップショットを作成しても短期的な保護しか得られませんが、手動スナップショットは明示的に削除するまで使用できます。

場合によっては、Neptune がアップグレードプロセスの一環として手動スナップショットを作成することもありますが、これを頼りにすべきではなく、どのような場合でも独自の手動スナップショットを作成する必要があります。

DB クラスターをアップグレード前の状態に戻す必要がないことが確実な場合は、自分で作成した手動スナップショットと、Neptune が作成した手動スナップショットを明示的に削除できます。Neptune が手動スナップショットを作成する場合、その名前は preupgrade で始まり、その後に DB クラスターの名前、ソースエンジンのバージョン、ターゲットエンジンのバージョン、および日付が続きます。

注記

保留中のアクションの処理中にアップグレードを試みた場合、次のようなエラーが発生する可能性があります。

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.

このエラーが発生した場合は、保留中のアクションが終了するのを待つか、すぐにメンテナンスウィンドウをトリガーして、前回のアップグレードを完了させます。

お使いのエンジンバージョンのアップグレードの詳細については、Amazon Neptune DB クラスターのメンテナンス を参照してください。ご質問やご不明点がございましたら、コミュニティフォーラムや AWS プレミアムサポートから AWS サポートチームにお問い合わせください。