SQL の再構築: パイプ構文が実際のユースケースをいかに強化しているか
Candice Chen
BigQuery Product Manager
Joy Wang
Cloud Logging Senior Product Manager
【Next Tokyo ’25】
【Next Tokyo】120 以上のセッションをアーカイブ公開中。話題の Gemini、生成 AI、AI エージェントなどの Google Cloud のアップデートや顧客事例をチェックしましょう。
視聴はこちら※この投稿は米国時間 2025 年 7 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。
SQL は 50 年以上にわたりデータ管理の基盤として、その宣言的な性質と堅牢なエコシステムが評価されてきました。しかし、従来の SQL には、句構造が硬直的である、構文が冗長である、複雑なネストされたクエリによって可読性とメンテナンスが妨げられるなどの制限があります。こうした課題に対処するため、Google は GoogleSQL の拡張機能であるパイプ構文を導入しました。クエリの記述と処理の方法を再定義するものです。パイプ構造のデータフローにより、SQL の読み書きがそれまで以上に容易になります。
前回のブログ投稿で説明したように、パイプ構文では、SQL クエリに線形の上から下へのアプローチが導入され、パイプ演算子(|>)を使用して、フィルタ、集計、結合などの操作を論理的な順序でチェーン化します。この構造は、データ変換の自然な流れに沿っているため、クエリがより直感的で読みやすくなり、メンテナンスしやすくなります。厳格な順序(SELECT、FROM、WHERE など)が適用される標準 SQL とは異なり、パイプ構文では任意の順序で演算を適用できるため、煩雑なサブクエリや共通テーブル式(CTE)の必要性が軽減されます。
4 月にパイプ構文が一般提供されて以来、データ変換の合理化、インサイトに富んだレポートの作成、ログの効率的な分析など、さまざまなユースケースでパイプ構文が活用されています。このブログでは、パイプ構文を使用してデータ変換とログデータ分析をシンプルにしている、異なるお客様の 3 つのユースケースを紹介します。
1.線形データフローによるデータ分析の強化
BigQuery での長期的なデータ ストレージに関して、論理料金モデルと物理料金モデルのどちらが費用対効果が高いかを提案するレコメンデーション レポートを作成したいとします。物理ストレージは一般的に安価ですが、データの圧縮率などの要因によって費用が変動する可能性があります。
標準 SQL では、次のようなクエリを記述できます。
パイプ構文を使用すると、クエリを次のように記述できます。
パイプ構文を使用すれば、CTE が不要になり、ユーザーは操作を線形につなげることができます。これにより、クエリの複雑さが軽減され、特に複数の変換が必要な費用分析タスクの場合、クエリを簡単に追跡できるようになります。レポートをより迅速に作成し、チーム間でクエリを共有して、理解しやすくすることができます。
2. データ パイプラインでデータ変換をシンプルに
ダッシュボード用のデータ パイプラインを構築しているとします。顧客の注文データを処理して、顧客ごとの総収益を計算し、高価値顧客をフィルタしてランク付けしたいと考えています。
標準 SQL の場合:
パイプ構文を使用すると、クエリを次のように記述できます。
データ パイプラインの構築は、データのクリーニング、変換、集計を含む多段階のプロセスです。パイプ構文では、集計やフィルタなどのオペレーションを論理的かつ順次的にチェーン化できるため、開発者のワークフローがシンプルになります。コードがシンプルであるため、開発者は複雑な SQL コードの作成やデバッグではなく、ビジネス上の問題の解決に多くの時間を費やすことができます。コード行数の削減と生産性の向上は、最終的にビジネス成果の迅速化につながります。
3. Google Cloud Logging でのログ分析がより簡単に
Google Cloud Logging の Log Analytics は、SQL を使用してアプリケーションとシステムのログデータを保存、検索、分析、モニタリングするための強力なツールです。ログに対して複雑な分析、集計、変換を行う必要がある場合は、Log Analytics 機能で SQL の機能を最大限に活用できます。
企業がワークロードとロギング ツールを Cloud Logging に移行するのを支援する際、パイプのような構造を標準の SQL クエリに変換して一般的なログ分析タスクを行うのは、煩雑に感じられることがあります。サブクエリや共通テーブル式(CTE)を使用するため、直感的に理解できない場合があるからです。パイプ構文は、より線形なパイプベースの構文を提供し、一般的なログ分析パターンを読み書きしやすくします。
具体的な例を見てみましょう。
課題: 時間、重大度、リソース属性別のログ頻度の分析
特定のログメッセージ(重大度とタグで識別)が頻繁に(1 分間に 5 回以上)発生するパターンをログから見つけたいとします。ただし、特定のメッセージ(「CookieIncluded=False」を含むメッセージなど)は除外します。
ログ分析で標準 SQL を使用すると、次のようなクエリを作成できます。
パイプ構文を使用すると、クエリを次のように記述できます。
パイプ構文は、見た目が異なるだけでなく、順次ログ処理のためのクエリの作成と読み取りの方法を根本的に変革します。標準 SQL の 2 つの一般的な課題である、ネストされたサブクエリと「内から外へ」のロジックに対処します。
PipeSQL は、一般的な順次タスクでこのネストを排除します。各パイプ(|>)は、前のコマンドの出力を次のコマンドに渡します。概要からの集計結果は、明示的なネスト構造を必要とせずに、後続の WHERE 句でフィルタにすぐに使用できます。クエリはフラットで線形です。パイプ構文は、ネストに対処し、線形フローを促進することで、一般的なログ分析タスクの多くで認知負荷を大幅に軽減し、強力な分析をより利用しやすくします。
パイプ構文に対するお客様の評価
「BigQuery でパイプ構文が初めて導入されたとき、私はとても興奮しました。R に慣れている私やアナリストのチームにとって、Dataform を使用してパイプのような構文でデータ変換を効率化するのはごく自然なことです。標準 SQL と比較して、コードが 30% 以上削減されたことをお知らせします。最終的には、クエリの読み取り、書き込み、デバッグにかかる時間の節約につながりました。組織全体でパイプ構文を使用するアナリストをさらにオンボーディングできることを楽しみにしています。」- Northwell.edu、ビジネス戦略担当シニア マネージャー、Shanker Venkatachalam 氏
「パイプ構文は、私の分析業務において画期的なものでした。最初は学習曲線が心配でしたが、驚くほどスムーズでした。線形フローにより、クエリを段階的に構築できるため、次のステップに進む前に各変換が正しいことを確認できます。その結果、複雑さが軽減され、長期的なメンテナンス性が高まります。特に、自然に「マイクロ トランスフォーメーション」の考え方が身に付くため、クエリが大幅に整理され、理解しやすくなります。」- Axel Thevenot 氏、Google デベロッパー エキスパート、Venom Engineering
「Bindplane は、OpenTelemetry 上に構築されたテレメトリー パイプラインを使用して、クラウド オブザーバビリティへの移行を加速することを専門としています。データが到着したら、パイプ構文を使用することで、ダッシュボード、アラート、クエリなどの主要なオブザーバビリティ アセットをはるかに簡単に構築できます。パイプ構文が利用可能になったら、通常の SQL の記述は完了です。企業が Cloud Logging/Log Analytics を使い始めるのが非常に簡単になります。」- Bindplane、シニア ソフトウェア エンジニア、Keith Schmitt 氏
パイプ構文の今後の展開
Cloud Next で発表されたように、BigQuery は Gemini を活用したデータ準備エージェントをサポートしています。このエージェントは、データを分析し、データのクリーンアップと変換を行うデータ パイプラインを自動生成できます。パイプクエリを使用して生成されたクエリを検証できるようになる予定です。これにより、パイプラインがシンプルになり、コードのレビューと検証が容易になります。
つまり、パイプ構文は単なる構文のアップグレードではありません。これは、アナリスト、エンジニア、データチームが SQL をより利用しやすく、生産性を高めるためのパラダイム シフトです。モジュール式のパイプラインベースのアプローチは、最新のデータ ワークフローに沿ったものであり、開発時間の短縮と効率の向上につながります。レポートの作成、データ パイプラインの開発、ログの分析などを行うとき、パイプ構文を使用すると、より短く、より明確で、より効率的なクエリを作成できるため、構文ではなくインサイトに集中できます。
SQL ワークフローをシンプルにする準備はできましたか?パイプ構文の使用方法については、こちらのチュートリアルをご覧ください。また、以下のリソースもご確認ください。
ー BigQuery プロダクト マネージャー 、Candice Chen
ー Cloud Logging シニア プロダクト マネージャー、Joy Wang