SQL セグメントエクステンション
Snowflake データのSnowflake SQL クエリを使用してセグメントエクステンションを生成できます。SQL では、他のセグメンテーション機能では実現できない方法でデータ間の関係を柔軟に記述できるため、新しいセグメントのユースケースを開拓するのに役立ちます。
標準のセグメントエクステンションと同様に、SQL セグメントエクステンションでも過去 2 年間 (730 日) までのイベントをクエリできます。標準のSegment Extensionsとは異なり、SQL Segment Extensions はクレジットを消費します。
前提条件
この機能を使用してPIIデータにアクセスできるため、SQL Segmentクエリーを実行するにはPII権限が必要です。
セグメントエクステンションを作成する
ステップ 1: エディタを選択する
SQL セグメントエクステンションの作成時に選択できる SQL エディターには、SQL エディターとインクリメンタル SQL エディターの2種類があります。
- フルリフレッシュ:セグメントが更新されるたびに、Braze は利用可能なすべてのデータをクエリしてセグメントを更新します。これにより、増分更新よりも多くのクレジットが使用されます。完全更新エクステンションでは、メンバーシップを毎日自動的に更新できますが、増分更新を使用して更新することはできません。
- 増分更新:増分更新では、過去2日分のデータのみが計算されるため、コスト効率がよく、毎回使用するクレジットも少なくなります。増分更新 SQL セグメントを作成する場合、メンバーシップを毎日自動的に再生成するように設定できます。これにより、メンバーシップを毎日自動的に更新するようにSegmentを設定できます。これにより、SQL Segment拡張の毎日のデータリフレッシュの費用を削減できます。
- AI SQL ジェネレータ:AI SQL ジェネレーターを使用すると、プロンプトをプレーン言語で記述し、それをSegmentのSQL クエリーに変換できます。SQL を自分で書く必要もなく、すぐに始めることができます。
いずれかの SQL エディターで作成されたすべての SQL セグメントを手動で完全更新できます。
完全更新 SQL セグメントエクステンションを作成するには:
- [オーディエンス] > [セグメントエクステンション] に移動します。
- Create New Extensionを選択し、Full refreshを選択します。

- セグメントエクステンションの名前を追加し、SQL を入力します。要件およびリソースについては、ステップ2を参照してください。

- セグメントエクステンションを保存します。
増分更新 SQL エディターを使用すると、特定の時間枠内のイベントについて、日付ごとにユーザークエリ集計を行うことができます。増分更新 SQL セグメントエクステンションを作成するには以下を実行します。
- [オーディエンス] > [セグメントエクステンション] に移動します。
古いナビゲーションを使用している場合は、[エンゲージメント] > [セグメント] > [セグメントエクステンション] でこのページを見つけることができます。
2.[エクステンションを新規作成] をクリックし、[増分更新] を選択します。

3.セグメントエクステンションの名前を追加し、SQL を入力します。要件とリソースについては、[SQL の作成] セクションを参照してください。

4.必要に応じて、[エクステンションを毎日再生成する] を選択します。

選択すると、Braze はセグメントメンバーシップを毎日自動的に更新します。つまり、毎日会社のタイムゾーンの午前0時 (1時間遅れる可能性があります) に、Braze はセグメントの新規ユーザーを確認し、自動的にセグメントに追加します。セグメントエクステンションを 7 日間使用しなかった場合、Braze は毎日の再生成を自動的に一時停止します。未使用のセグメントエクステンションとは、キャンペーンやキャンバスの一部ではないエクステンションです (エクステンションが「使用済み」と見なされるには、キャンペーンまたはキャンバスがアクティブでなくてもかまいません)。
- セグメントエクステンションを保存します。
AI SQL ジェネレーターは現在、ベータ機能としてご利用いただけます。このベータトライアルへの参加に興味がある場合は、カスタマーサクセスマネージャーにお問い合わせください。
AI SQL ジェネレーターは OpenAI を搭載した GPT を活用して、お客様の SQL セグメントに SQL を推奨します。

AI SQL ジェネレーターを使用するには、以下を実行します。
- フルリフレッシュまたはインクリメンタルリフレッシュを使用してSQL Segment を作成した後、Launch AI SQL Generator を選択します。
- プロンプトを入力し、[生成] をクリックしてプロンプトを SQL に変換します。
- 生成された SQL を確認して正しいことを確認し、セグメントを保存します。
プロンプトの例
- 先月にメールを受信したユーザー
- 過去1年間に購入回数が5回未満のユーザー
ヒント
- 利用可能な Snowflake データテーブルをよく理解してください。これらのテーブルに存在しないデータを要求すると、ChatGPT が正しくないテーブルを作成する可能性があります。
- この機能の SQL 記述ルールをよく理解してください。これらのルールに従わないと、エラーが発生します。たとえば、SQL コードでは
user_id列を選択する必要があります。プロンプトの冒頭に「user who」と入力すると役に立ちます。 - AI SQL ジェネレーターでは、1分あたり最大20のプロンプトを送信できます。
#### How is my data used and sent to OpenAI? {#ai-policy}
In order to generate AI output through Braze AI features that Braze identifies as leveraging OpenAI (“Output”), Braze will send your prompt, such as message content, brand guidelines, past campaign data, or any other input, as applicable (“Input”) to OpenAI. Input sent to OpenAI from Braze does not identify you or your Users unless you choose to include uniquely identifiable information in your Input. Per OpenAI’s API platform commitments, data sent to OpenAI’s API via Braze is not used to train or improve OpenAI models and will be deleted after 30 days by OpenAI from their systems. Between you and Braze, Output is your intellectual property. Braze will not assert any claims of copyright ownership on such Output. Braze makes no warranty of any kind with respect to any AI-generated content generally, including Output.
実行に20分以上かかる SQL クエリはタイムアウトします。
エクステンションの処理が完了したら、セグメントエクステンションを使用して セグメントを作成[](/docs/ja/user_guide/engagement_tools/segments/segment_extension#step-5-use-your-extension-in-a-segment) し、この新しいセグメントをキャンペーンやキャンバスでターゲットにすることができます。
ステップ 2:SQL を記述する
SQL クエリは、Snowflake 構文を使用して記述する必要があります。クエリ可能なテーブルとカラムの全リストについては、テーブルリファレンスを参照してください。
クエリに使用できるテーブルにはイベントデータのみが含まれていることに注意してください。ユーザー属性をクエリする場合は、SQL セグメントをクラシックセグメンターのカスタム属性フィルターと組み合わせる必要があります。
SQL はさらに、次のルールに従う必要があります。
- 単一の SQL ステートメントを記述します。セミコロンは含めないでください。
- SQL では、次の1つの列のみを選択する必要があります。
user_id列。つまり、SQL には以下が含まれている必要があります。
1
SELECT DISTINCT user_id FROM "INSERT TABLE NAME"
- イベントがゼロのユーザーをクエリすることはできません。つまり、イベントを実行した回数が X 回未満のユーザーに対するクエリは、次の回避策に従う必要があります。
- イベントが X 回以上発生したユーザーを選択するクエリを記述します。
- セグメント内のセグメントエクステンションを参照する場合、
doesn't includeを選択すると結果が反転します。
その他の規則
さらに、標準SQL クエリは次のルールに従う必要があります。
DECLARE文は使用できません。
すべての増分更新クエリは、クエリとスキーマの詳細という2つの部分で構成されます。
- エディターで、目的のテーブルから
user_idを選択するクエリを記述します。 - エディターの上のフィールドから [演算子]、[回数]、および [期間] を選択して、スキーマの詳細を追加します。クエリでは、集計列の合計が
{{operator}}および{{number of times}}プレースホルダーで指定された特定の条件を満たすかどうかが確認されます。これは、従来のセグメントエクステンションを作成するワークフローと同様に機能します。
- 演算子:イベントの発生回数が、発生回数よりも多いか、少ないか、等しいかを示します。

- 回数:演算子に関してイベントを評価したい回数。

- 期間:イベントのインスタンスを確認する日数 (1 ~ 730日)。この期間は、現在の日を基準とした過去の日数を指します。次の例は、過去365日間にイベントを5回以上実行したユーザーのクエリを示しています。

- 演算子:イベントの発生回数が、発生回数よりも多いか、少ないか、等しいかを示します。
次の例では、結果のセグメントには、指定した日付以降の過去3日間に favorited イベントを3回以上実行したユーザーが含まれます。


増分更新セグメントでは、2日以上前に発生したイベントである遅延イベント (キャプチャされた時点で送信されていない SDK イベントなど) が考慮されます。
その他の規則
さらに、インクリメンタル・リフレッシュ・クエリーは、以下のルールに従う必要があります。
- 単一の SQL ステートメントを記述します。セミコロンは含めないでください。
- インクリメンタル SQL セグメントで参照できるのは1つのイベントだけです。日付とカウントのドロップダウンは、選択したイベントに基づいています。
- SQL には次の列が必要です:
user_id、$start_date、および集計関数 (COUNTなど)。これら3つのフィールドなしで SQL を保存すると、エラーになります。 DECLARE文は使用できません。
テーブル CATALOGS_ITEMS_SHARED を使用する SQL セグメントを作成する場合は、カタログ ID を指定する必要があります。以下に例を示します。
1
2
3
SELECT * FROM CATALOGS_ITEMS_SHARED
WHERE CATALOG_ID = 'XYZ'
LIMIT 10
ステップ 3:クエリのプレビュー
保存する前に、クエリのプレビューを実行できます。クエリのプレビューは自動的に100行に制限され、60秒後にタイムアウトします。プレビューを実行する場合、user_id 列の要件は適用されません。
インクリメンタル SQL セグメントエクステンションの場合、プレビューには演算子からの追加条件、回数、および期間フィールドは含まれません。
ステップ 4: SQL を反転する必要があるかどうかを判別する
次に、SQL を反転する必要があるかどうかを判断します。0 個のイベントを持つユーザーs を直接クエリーすることはできませんが、SQL を反転してこれらのユーザーs をターゲットにすることができます。
デフォルトでは、Invert SQLはトグルされません。ただし、AI SQL ジェネレータを使用して、否定する必要があるSQL 文を生成する場合、ChatGPT はこの機能を自動的にオンに切り替える出力を返すことがあります。
たとえば、購入数が3 つ未満のユーザーを対象にするには、まずクエリーを作成して、購入数が3 つ以上のユーザーを選択します。次に、Invert SQL を選択して、購入数が3 未満のユーザー(購入数が0 のものを含む) を対象にします。
0 個のイベントを持つユーザーを特に対象にする場合を除き、SQL を反転する必要はありません。Invert SQLが選択されている場合は、機能が必要であり、Segmentが目的のオーディエンスと一致していることを確認します。例えば、照会が少なくとも1 つのイベントを持つユーザーs を対象とする場合、逆にすると、0 のイベントを持つユーザーs のみを対象とします。

セグメントのメンバーシップの更新
SQL を使用して作成されたセグメントエクステンションのセグメントメンバーシップを更新するには、セグメントエクステンションを開いて [更新] を選択します。
ユーザーが頻繁に出入りすることが予想されるセグメントを作成した場合は、キャンペーンまたはキャンバスでそのセグメントをターゲットにする前に、使用するセグメントエクステンションを手動で更新してください。
セグメント拡張の管理
セグメントエクステンションページでは、SQL を使用して生成されたセグメントは名前の横の で表示されます。
SQL セグメントエクステンションを選択すると、そのエクステンションが使用されている場所を表示したり、エクステンションをアーカイブしたり、セグメントのメンバーシップを手動で更新したりできます。

更新設定の指定
エクステンションを定期的に更新する必要がない場合は、更新設定を使用せずにエクステンションを保存できます。この場合 Braze は、デフォルトでその時点のユーザーメンバーシップに基づいてセグメントエクステンションを生成します。オーディエンスを一度だけ生成し、単発のキャンペーンでターゲットにしたい場合は、デフォルトの動作を使用する。
セグメントは常に最初の保存後に処理を開始します。セグメンテーションが更新されるたびに、Brazeはセグメンテーションを再実行し、更新時のセグメント内のユーザーを反映するようにセグメントメンバーシップを更新する。これにより、定期的なキャンペーンが最も関連性の高いユーザーに届くようになる。
定期的なリフレッシュの設定
リフレッシュ設定を指定して定期的なスケジュールを設定するには、「リフレッシュをイネーブルメントにする」を選択する。リフレッシュ設定を指定するオプションは、SQLセグメント、CDIセグメントエクステンション、シンプルなフォームベースのセグメントエクステンションなど、すべてのタイプのセグメントエクステンションで利用できる。
データ管理を最適化するため、使用していないセグメントエクステンションのリフレッシュ設定は自動的にオフになる。セグメントエクステンションは、次の場合未使用とみなされます。
- アクティブまたは非アクティブ(下書き、停止、アーカイブ)キャンペーン、キャンバス、セグメンテーションで使用されていない。
- 7日以上変更されていない
この設定をオフにすると、Braze は会社の連絡先とエクステンションの作成者に通知します。エクステンションを毎日再生成するオプションはいつでも有効にできます。
リフレッシュ設定を選択する

更新間隔設定パネルで、セグメントエクステンションが更新される頻度を選択できる:1時間ごと、毎日、毎週、毎月。また、リフレッシュが行われる特定の時間(あなたの会社のタイムゾーン内)を、次のように選択する必要がある:
- 毎週月曜日の午前11時(会社時間)に配信されるメールキャンペーンで、配信直前にセグメンテーションを確実に更新したい場合は、毎週月曜日の午前10時に更新するスケジュールを選択する。
- セグメンテーションを毎日更新したい場合は、毎日の更新頻度を選択し、更新する時間帯を選択する。
フォームベースのセグメントエクステンションでは、1時間ごとの更新スケジュールを設定することはできない(ただし、毎日、毎週、毎月のスケジュールは設定できる)。
クレジット消費量と追加のコスト
リフレッシュはセグメントのクエリを再実行するため、SQL セグメントのリフレッシュは SQL セグメントクレジットを消費し、CDI セグメントエクステンションのリフレッシュはサードパーティデータウェアハウス内でコストが発生する。
データ処理時間のために、セグメントの更新には最大60分かかることがあります。現在更新処理中のセグメントには、セグメントエクステンションリストで「処理中」ステータスが表示されます。これはいくつかの影響を伴います。
- 特定の時刻よりも前にセグメントの処理を終了するには、60分未満の更新時間を選択します。
- 特定のセグメントエクステンションの更新は一度に1回だけ実行できます。既存の更新の処理がすでに開始されている場合に新しい更新が開始される競合的な状況では、Braze は新しい更新リクエストをキャンセルして、進行中の処理を続行します。
古くなった拡張機能を自動的に無効にする基準
セグメントエクステンションが古くなると、スケジュールされたリフレッシュは自動的に無効になる。セグメントエクステンションは、以下の条件を満たす場合、古くなる:
- アクティブなキャンペーンまたはキャンバスでは使用されていない
- アクティブなキャンペーンまたはキャンバス内のセグメントでは使用されていない
- 分析トラッキングがオンになっているセグメンテーションでは使用しない。
- 7日以上変更されていない
- キャンペーン、キャンバス(下書きを含む)、セグメンテーションに7日以上追加されていない。
セグメントエクステンションでスケジュールされたリフレッシュが無効になっている場合、そのエクステンションにはその旨の通知が表示される。

古くなったセグメントエクステンションを使用する準備ができたら、リフレッシュ設定を確認し、ユースケースに合ったリフレッシュスケジュールを選択し、変更を保存する。
Snowflake単位
各 Braze ワークスペースには、1か月あたり5つのSnowflake クレジットが利用可能です。さらにクレジットが必要な場合は、アカウントマネージャーにお問い合わせください。クレジットは、SQL Segment のメンバーシップを更新または保存して更新するたびに使用されます。SQL セグメント内でプレビューを実行したり、従来のセグメントエクステンションを保存または更新したりする場合、クレジットは使用されません。
Snowflake クレジットは機能間で共有されません。例えば、SQL セグメントエクステンションとクエリビルダーのクレジットは互いに独立しています。
クレジット使用量は SQL クエリの実行時間と相関しています。実行時間が長くなるほど、クエリにかかるクレジット数は多くなります。実行時間は、時間の経過に伴うクエリの複雑さとサイズによって異なる場合があります。実行するクエリが複雑で頻繁になればなるほど、リソースの割り当てが大きくなり、実行時間が短縮されます。
クレジットを節約するには、SQL セグメントエクステンションを保存する前に、クエリをプレビューして正しいことを確認してください。
クレジットは、毎月1日午前12 時 (UTC) に5にリセットされます。クレジット使用状況パネルで、その月のクレジット使用状況を監視できます。[セグメントエクステンション] ページから、[SQL クレジット使用状況を表示] をクリックします。
![SQL セグメントエクステンションページの SQL クレジット使用状況パネル]/docs/ja/assets/img_archive/sql_segments_credits.png?e7eb7d7c1c900f6947960dbefc963b43{: style=”max-width:60%”}
クレジットがゼロになると、次のことが起こります。
- 自動的に更新するように設定された SQL セグメントエクステンションは更新を停止し、これらのセグメントのメンバーシップ、およびこれらのセグメントをターゲットとするキャンペーンやキャンバスに影響します。
- その月の残りの期間は、新しい SQL セグメントエクステンションをドラフトとして保存することしかできません。
クレジットの50%、80%、100%を使い切ると、SQLセグメントを作成したすべての企業ユーザーと会社の管理者に通知メールが届きます。翌月の初めにクレジットがリセットされたら、SQL セグメントをさらに作成でき、自動更新が再開されます。
SQL Segment クレジットをさらに購入したり、セグメントエクステンションを追加購入したい場合は、アカウントマネージャーにお問い合わせください。
GitHub でこのページを編集