Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Adding OR logic forced us to confront why users preferred raw SQL

2025年09月10日に「Hacker News」が公開したITニュース「Adding OR logic forced us to confront why users preferred raw SQL」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Signozのクエリビルダーv5開発で、OR条件追加時に「なぜユーザーは生のSQLを好むのか」を検討した。複雑な条件をGUIで表現する難しさを認識し、ユーザーのニーズとクエリビルダー設計の課題を深く理解した。

ITニュース解説

Signozは、システムが正しく動いているか監視するための「可観測性プラットフォーム」と呼ばれるツールだ。サーバーのログ、性能を示すメトリクス、処理の流れを追跡するトレースといった情報を一か所に集めて分析し、システムの異常を早期に発見したり、問題の原因を突き止めたりするのに役立つ。システムエンジニアにとって、アプリケーションが快適に動作しているか、障害が発生していないかを確認するための非常に重要なツールと言える。このSignozには、集められた大量のデータの中から必要な情報を効率的に探し出すための「クエリビルダー」という機能が搭載されている。クエリビルダーとは、データベースに問い合わせるための「クエリ」と呼ばれる命令文を、プログラミング言語のように記述することなく、画面上のボタンや選択肢を操作することで作成できるツールのことだ。SQLのような専門知識がなくても、視覚的に条件を設定してデータを検索できるため、多くのシステムエンジニアにとって便利な機能として利用されている。

しかし、これまでのSignozのクエリビルダーには、一つ大きな課題があった。それは、条件を組み合わせる際に「AND(かつ)」という論理演算子しか利用できなかった点にある。例えば、「エラーコードが500 AND エラーメッセージに『データベース』という言葉が含まれる」といった条件は簡単に設定できたが、「エラーコードが500 OR エラーコードが404」のように、「または」という複数の条件のうちいずれかを満たすものを検索するような複雑な条件を表現することはできなかった。このような「OR」を含む条件が必要な場合、ユーザーは結局、生のSQL文(Raw SQL)を直接記述する必要があったのだ。Raw SQLは非常に強力で柔軟な表現が可能だが、その分、SQLの文法やデータベースの構造に関する専門知識が必要となる。クエリビルダーが持つ「SQL知識がなくても使える」という利点が、このような制約のために失われてしまうケースが頻繁に発生していた。

今回、Signozのクエリビルダーはバージョン5へと進化し、この「OR」ロジックをサポートするようになった。これは単なる機能追加以上の意味を持っている。「OR」を追加することで、ユーザーはこれまでRaw SQLに頼っていた複雑な条件検索を、クエリビルダーのGUI上で完結できるようになったのだ。例えば、「ユーザーが指定した複数の地域のうち、いずれかからのアクセス」や「複数の特定のエラータイプのうち、いずれかが発生した場合」など、幅広いシナリオに対応できるようになる。これにより、データの検索や分析の柔軟性が飛躍的に向上し、より深い洞察を得ることが可能になる。システムの状態を監視する際、特定の異常だけでなく、複数の可能性のある異常パターンをまとめてチェックするといった運用が可能になり、異常検知の精度向上にも繋がる。

バージョン5のクエリビルダーでは、「AND」と「OR」を自在に組み合わせることも可能だ。これは「AND」と「OR」をネスト(入れ子)にして使うことで実現される。例えば、「(ユーザーIDが123 AND 処理ステータスが失敗) OR (エラーコードが500)」といった、より複雑な論理構造を持つクエリもGUIで作成できるようになった。このような複雑なクエリは、Raw SQLで書くとそれなりの長さになり、構文ミスも発生しやすいが、クエリビルダー上ではブロックを組み合わせるように視覚的に構築できるため、間違いが少なく、迅速に目的のデータを絞り込めるようになる。また、クエリビルダーの設計自体も見直され、SQLの主要な句であるSELECTFROMWHEREGROUP BYといった構造を、より直感的かつ明確にGUI上で表現できるように改善された。特に条件を設定するWHERE句の部分は大きく強化され、ユーザーがどのようにクエリを組み立てたいのかという意図を、より忠実に反映できるようになった。

今回の機能強化は、単に便利な機能を追加したというだけでなく、なぜユーザーがRaw SQLを好んで使っていたのかという根本的な問いに向き合った結果だと言える。クエリビルダーは、本来SQLを知らない人でも簡単にデータにアクセスできるようにするものだが、その機能が限られていると、結局は専門知識を持つユーザーがRaw SQLへと回帰してしまう。これは、ツールが提供する便利さと、ユーザーが実際に求める機能との間にギャップがあることを示していた。Signozの開発チームは、ユーザーの行動を詳細に分析し、「OR」ロジックこそが、多くのユーザーがGUIでは実現できずRaw SQLに頼っていた主要な要因の一つであると突き止めた。この洞察が、クエリビルダーの設計思想を根本から見直し、ユーザー体験を向上させる原動力となったのだ。

クエリビルダーの進化は、今後システムエンジニアがシステムのデータを扱う方法に大きな影響を与えるだろう。より複雑な条件をGUIで簡単に設定できるようになることで、問題発生時の原因究明が迅速になり、日常のシステム監視作業の効率も向上する。SQLの高度な知識がない初心者システムエンジニアでも、より深いデータ分析に挑戦できるようになり、システムの健全性を維持・向上させるための強力な武器となる。一方で、クエリビルダーが提供できる機能と、Raw SQLでしか実現できない高度な処理とのバランスをどう取るかという課題は常に存在する。Signozの今回の取り組みは、そのバランスをユーザー視点で最適化しようとする試みであり、ツールの設計者にとって、ユーザーが本当に必要としているものは何かを常に問い続けることの重要性を示している。これにより、システムエンジニアはより少ない労力で、より価値のある情報を引き出せるようになることが期待される。