- OpenSearch 3.0が正式リリースされ、OpenSearch 1.3比で9.5倍向上した性能を提供
- GPUアクセラレーション、AIエージェント連携、ストレージ最適化など、ベクター検索向けの革新的な機能を多数追加
- gRPC、Kafkaストリーミング、インデックス自動識別などにより、データ処理の効率と柔軟性を強化
- 検索インフラの面では、Lucene 10、Java 21、モジュール型アーキテクチャを適用し、将来の拡張性と保守性を改善
- AIおよびRAGベース検索の需要増加に対応するオープンソースコミュニティベースの次世代検索プラットフォームとして位置付け
OpenSearch 3.0正式リリース: AI時代に向けてベクター検索を最適化
- OpenSearch Software FoundationはOpenSearch 3.0正式版を公開し、OpenSearch 1.3比で9.5倍の性能向上を発表
- AI検索、レコメンデーションシステム、RAGなどで求められる大規模ベクターデータ処理性能を改善
ベクターエンジンの革新: 性能とコスト効率を同時に確保
- GPUアクセラレーション(NVIDIA cuVSベース): インデックス構築時間を最大9.3倍短縮し、高性能ワークロードを処理
- Model Context Protocol (MCP)対応: AIエージェントとの連携により柔軟な検索ソリューションを構築可能
- Derived Source機能: 重複するベクターデータを除去し、ストレージ使用量を1/3削減
データ管理機能: 柔軟性と拡張性を強化
- gRPC対応: ノード間およびクライアント-サーバー間のデータ転送を高速化(実験的)
- Pullベースのデータ収集: Kafka、Kinesisなどの外部ストリーミングシステムからOpenSearchが直接データを取得する構造を採用
- Reader-Writer分離: 検索とインデクシングを分離し、それぞれの安定性と性能を確保
- Apache Calcite統合: SQL/PPLで直感的なクエリビルダー機能を提供
- インデックス種別の検出: ログインデックスを自動で識別し、適切な分析オプションを提供
検索インフラおよびプラットフォームコアの改善
- Lucene 10へのアップグレード: 並列処理性能を向上させ、検索機能を高度化
- Java 21を最小サポートランタイムに: 最新の言語機能と性能を活用可能
- Javaモジュールシステム導入: モノリシック構造をライブラリベースへ移行し、保守性を向上
オープンコミュニティ中心の持続可能なイノベーション
- OpenSearchはLinux Foundation傘下の独立コミュニティを基盤とするオープンソース検索プラットフォーム
- AWS、SAP、Uberなどの主要企業と数千人のコントリビューターが参加
- ベクターDB時代に合わせた拡張性と透明なガバナンスを強調し、誰でも参加できるエコシステムを志向
- 詳細なリリース情報は公式ブログおよびリリースノートで確認可能
3件のコメント
Elasticsearch は AGPL なので使うのが怖くて、ずっと OpenSearch だけをオンプレミスで使っています。
Hacker Newsのコメント
OpenSearchについて今まさに知ったところ。Elasticsearchのライセンス変更後、2021年にフォークされたプロジェクトとのことだが、今でもElasticsearchの代替として使えるのか、性能や機能比較が気になる。
KotlinでElasticsearchとOpenSearchの両方に対応するクライアント(kt-search)をメンテナンスしている。
よく使う機能の大半では、まだAPI互換性がある。
ベクトル検索のように、フォーク後に追加された機能は例外。
search_afterのように一部機能は挙動が異なり、クライアント側でそれを吸収している。両製品ともSQLクエリ機能はあるが、実装方式は異なる。
機能面では依然としてElasticが先行しており、特にKibanaの機能はAmazonフォーク版より充実している。
集計機能でも、Elasticはここ数年で多くの最適化やアップグレードに注力してきた。
性能は用途次第で、両製品ともLucene(オープンソースの検索ライブラリ)を基盤としている。
AWS上ではElastic CloudのほうがOpenSearchよりやや良い。
自前でホスティングしてチューニングすれば、両製品はかなり近くなる。
Elastic 9.0とOpenSearch 3.0はどちらも新しいLuceneバージョンを使っており、クライアントはその両方をサポートしている。
コンサル先の顧客の中には、オープンソースライセンスとAWSサポートを理由にOpenSearchを好むケースが増えている。
レガシーなElasticsearchからOpenSearchへ移行するには、全データの再インデックスが必要で、ライブラリも変更が必要になることがあり、かなり面倒。それでkt-searchを作ることになった。
古いElasticsearch 2.3のデータベースが多くあったので、各データベースごとにOpenSearchを並行して立て、サービス起動時にデータを一括コピーした。今のところOpenSearchには概ね満足している。
詳しい説明に感謝、役に立ったという前向きな反応。
OpenSearchで最近残念だった点は、enrich processors機能がないこと(ドキュメントへのリンクあり)。
Elasticsearchはバージョン9.0以降まで進化しており、OpenSearchより27,000コミット多い。
2024年9月からElasticsearchは再び完全なオープンソースライセンス(AGPLv3)に戻った。
それについて、以前だまされた経験を思い出すような反応。
それでもElastic Searchは依然としてオープンコアで、「エンタープライズ」機能がオープンソース版に入ることは決してないだろう。一方OpenSearchにはその制約がない。
OpenSearchは「完全な」代替ではないが、ほぼ互換で、1.x系はElasticsearch 7.10と互換性がある。
同じハードウェアではOpenSearchのほうがやや遅い。UIが必要なら注意が必要で、Kibanaフォークは遅くバグも多い。
OpenSearchという名前は、もともとAmazon子会社のA9が開発した個人検索結果集約サービスに由来する。
OpenSearchプロジェクトについて残念に思う。
Elasticsearchのライセンス変更への反発からAWSと一緒に作られた反射的なプロジェクトだ。
コミュニティが活動停止したマルチプレイヤーゲームのようで、オープンソースプロジェクトに不可欠な活気が足りない。
Elastic Searchを置き換えられる企業やエンタープライズ顧客を聞いたことがなく、まだ実証されておらず、長期的コミットメントへの信頼も薄い。
各SIEMプラットフォームがそれぞれ独自の検索プラットフォームを作っている状況だ。
ElasticもSIEMプラットフォーム(Elastic Security)を出している。
Elasticが再びオープンソースだと打ち出しても、経営陣は実績のないフォークに移行コストを払わないだろうし、プロジェクトの存在意義も曖昧になっている。
Elasticはもう使いたくない。Lucene→Solr→カスタム拡張版の順で直接使ってきて、Elastic Searchが必要だったのはAWSを使うときだけだった。それでもOpenSearchへ移行してからは問題なく使えている。
Elasticは長い間、OpenSearchとAWSによって経済的な打撃を受けてきたのだと思う。
OpenSearchのknnやベクトル機能を使っている人はいるのか、実際の大規模運用ではどうなのか気になる。
OpenSearchの実装は分からないが、Redis向けのベクトルセットをHNSW構造で自作した経験がある。
ベクトル埋め込みの次元数が高い場合、knnそのものよりHNSWのような近似最近傍探索方式を勧める。
自分の経験では常用している。性能は埋め込みモデル次第で、インデックスチューニングが重要。
一般に受け入れられている注意点として、数百万ドキュメントの検索性能は良好だが、KNN検索では埋め込みグラフ全体をRAMに載せる必要があり、RAM管理が鍵になる。
syslogを簡単にパースしてフィールドをグラフ化・検索できるログ取り込みツールが欲しいが、OpensearchやELKの設定は難しすぎた。
ElasticもOpensearchも、こうした基本設定ですら意外と難しいことに驚いた。
何もかも設定中心なので、自分でレシピを組み立てる必要がある。
opentelemetryのような助けになるツールもあるが、それでも不便さは残る。
どちらのツールも公式ガイドラインに従うだけならすぐ使える。問題はカスタムロジックが必要になったとき。
単純な要件ならlogstashなしでも可能。
Elasticやopensearchはアプリメトリクスには向いておらず、その場合はprometheusやgrafanaを勧める。
Elasticエコシステムに投資すれば(beats、logstashなど)、さまざまなインデックステンプレートやパイプライン構成が可能になる。
現在はdynamic field mappingのおかげで、Elasticsearchへのデータ入出力はかなり容易になった。
より大きな悩みは性能維持のほうだ。
Graylogを試したことはあるか、という質問。自分の職場ではかなりうまく使えている。
OpenSearch は、Elasticsearch のライセンス変更を受けて 2021 年に登場し、互換性のある代替を目指していました。特に 1.x は Elasticsearch 7.10 とおおむね互換性がありますが、完全なドロップインソリューションではありません。Elasticsearch はその後さらに進化し、より多くの機能や最適化を備えており、特に Kibana と集計機能でその傾向が顕著です。パフォーマンスはアプリケーション依存で、どちらも Lucene 上に構築されています。一部のユーザーは OpenSearch のほうが遅く、Kibana のフォークに不具合があると感じています。2024 年 9 月に Elasticsearch がオープンソース(AGPLv3)へ回帰したにもかかわらず、その真にオープンソースな性質と AWS のサポートを理由に OpenSearch を好む人もいます。ベクトル検索は主要な差別化要因ですが、大規模な実装には慎重な RAM 管理が必要です。最終的には選択は具体的なニーズ次第であり、どちらにも長所と短所があります。私は Davidayo とともに OpenSearch に取り組んでいます https://www.davidayo.com AI の強力なツール "AskPromptAI" https://askpromptai.com.