AWSのElasticsearchでPITが使えない...?🤔
とあるプロジェクトでAWSのElasticsearchを使っていて、データ件数が多くなってきたためPoint in time(以降、PIT)を使いたいタイミングがありました。
Point in time API | Elasticsearch Guide [8.14] | Elastic
手元のElasticsearchのバージョンがやや古かったため、ドキュメントを調べたところ7.10よりPITが導入されていることが確認できました。
Point in time API | Elasticsearch Guide [7.10] | Elastic
ところが、7.10よりは新しいバージョンだったため実装・実行をしたのですが、エラーになりPITを使うことができませんでした。
ElasticsearchでPITが使えるのはElastic 社独自の拡張機能群であるX-Packを導入しているから
そもそも、同じElasticsearchという名称ではあれど、Elastic社が運営するElasticsearchとAWSが運営するElasicSearchは同じOSSから派生した基本的には別モノのサービスです。
私が見ていたのはElastic社運営のElasticsearchのドキュメントでした。
※このあたりは約3年前にはいろんな話が出ていまいしたね。。。(記事の例:AWSブログ)
そもそも違うものであり、その違いの一つとしてElasic社運営のElasticsearchにはX-Packという拡張機能が搭載されていますが、AWSのElasticSearchにはこれがありません。
Set up X-Pack | Elasticsearch Guide [7.10] | Elastic
Elsatic社のリリースノートをよく見ると、PITはX-Packにて導入されていることがわかりました。
Introduce point in time APIs in x-pack basic #61062 (issues: #26472, #46523)
Elasticsearch version 7.10.0 | Elasticsearch Guide [7.10] | Elastic
これがAWSのElasticsearchではPITを使えない理由でした。
AWSでPITが使えるのはOpenSearch 2.5から
では、AWSではPITが使えないかというとそんなことはありません。
AWS側でも対応が行われてOpenSearch 2.5以上であれば使えるとされています。
PIT は、 OpenSearch バージョン 2.5 を実行しているドメインで使用できます。
Amazon OpenSearch Service でのポイントインタイム検索 - Amazon OpenSearch サービス
サポートされているオペレーションのドキュメントでも、2.5以降において /_search/point_in_time
等が使えることが書かれています。
Amazon OpenSearch Service でサポートされているオペレーション - Amazon OpenSearch サービス
以上です!AWSのElasticsearch(OpenSearch)でPITを使いたかったらOpenSearch 2.5以降を使いましょう!