filterql-builder について
filterql-builderは、構造化された条件を有効なFilterQL式に変換するスキルです。API接続なしで、フィールド型に応じた構文とAND/OR/NOTのグループ化を使って条件を組み立てます。
主な機能
- 01フィールド型に応じた演算子の割り当て
- 02AND/OR/NOT条件の構成
- 03説明的なエイリアスslugの生成
- 04引用符付き値のエスケープ
- 05互換性のない演算子の指摘
活用シーン
- 01オーディエンス条件のFilterQL化
- 02対象テーブル向けの条件グループ作成
- 03無効な式や演算子の修正
MCP 対応
入力にはMCP接続や関連動作の説明がありません。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lytics/ agent-skills --skill filterql-builderインストール後、Claude Code で/filterql-builderを入力して読み込まれたか確認します。
詳細
FilterQL ビルダー
目的
構造化された条件を有効な FilterQL 構文に変換します。AND/OR によるグループ化を含むフィールド/演算子/値のタプルを受け取り、構文的に正しい FilterQL 文字列を生成します。
環境
- 不要(構築のみで、API 呼び出しはありません)
入力
- 条件: (フィールド、演算子、値) タプルのリスト
- グループ化:AND/OR/NOT による構成
- テーブル:対象テーブル(デフォルト:
user) - エイリアス:セグメントのスラッグ名
動作
ステップ 1:各条件を FilterQL 構文に対応付ける
各条件について、../references/field-types.md の型と演算子の互換性マトリックスを使用します。
| フィールド型 | 自然言語 | FilterQL |
|---|---|---|
string | "X" と等しい | field = "X" |
string | "X" ではない | field != "X" |
string | "X" を含む | field CONTAINS "X" |
string | パターンに一致する | field LIKE "pattern*" |
string | A、B、C のいずれか | field IN ("A", "B", "C") |
bool | true である | field = true |
bool | false である | field = false |
int/number | N より大きい | field > N |
int/number | N 以上 | field >= N |
int/number | N より小さい | field < N |
date | N 日前より後 | field > "now-Nd" |
date | N 日前より前 | field < "now-Nd" |
date | 過去 N 時間以内 | field > "now-Nh" |
[]string(セット) | "X" を含む | field INTERSECTS ("X") |
[]string(セット) | "X" を含まない | field NOT INTERSECTS ("X") |
| 任意 | 値がある | EXISTS field |
| 任意 | 空である | NOT EXISTS field |
ステップ 2:条件を組み合わせる
条件を AND/OR/NOT で囲みます。
FILTER AND (
condition1,
condition2,
OR (condition3, condition4)
) FROM table ALIAS slug_name
ルール:
- 条件が 1 つの場合:
FILTER condition FROM table ALIAS slug - 複数の条件は、デフォルトで AND で結合します
- NOT は単一の条件またはグループを囲むことができます
- AND/OR のグループには括弧が必要です
- グループ内の条件はカンマで区切ります
ステップ 3:スラッグ名を生成する
エイリアスを有効なスラッグに変換します。
- 小文字にします
- スペースをアンダースコアに置き換えます
- 特殊文字を削除します
- 説明的でありながら簡潔な名前にします
ステップ 4:出力
完全な FilterQL 文字列を返します。
FILTER AND (country = "US", visitct > 5) FROM user ALIAS us_active_visitors
日付計算のリファレンス
| 期間 | 構文 | 例 |
|---|---|---|
| 時間 | "now-Nh" | "now-24h" = 1 日前 |
| 日 | "now-Nd" | "now-30d" = 30 日前 |
| 週 | "now-Nw" | "now-4w" = 4 週間前 |
| 月 | "now-NM" | "now-6M" = 6 か月前 |
| 年 | "now-Ny" | "now-1y" = 1 年前 |
一般的な換算:
- 1 年 =
"now-1y"または"now-8760h"または"now-365d" - 90 日 =
"now-90d"または"now-2160h" - 1 週間 =
"now-1w"または"now-7d"または"now-168h"
エラー処理
- フィールド型が指定された演算子に対応していない場合は、適切な演算子を提案します
- 値に引用符が含まれる場合は、エスケープします
- FilterQL の構文が無効な場合は、問題を特定して修正します
依存関係
- リファレンス:
../references/filterql-grammar.md、../references/field-types.md
コメント
Markdown 対応