DBT セグメントでサポートされる検証
セグメントを作成または更新するときは、Data Cloud Segment Input リクエストボディが SQL 検証の対象になる場合があります。
セグメントを作成するには、Data Cloud Segment Input リクエストボディとともに /ssot/segments リソースを使用します。同様に、セグメントを更新するには、同じリクエストボディとともに /ssot/segments/segmentApiName リソースを使用します。Data Cloud Segment Input リクエストボディ内でネストされている Data Cloud Segment Dbt Model Input リクエストボディは、SQL の検証を提供します。
Data Cloud Segment Dbt Model Input の sql プロパティは、これらの検証の対象です。
- select ステートメントでは、SegmentOn DMO の主キーのみが許可されます。join 句の先頭のテーブルは、プロファイルテーブルでなければなりません。
- 最上位の select では、集計 (min、max、avg、count) は許可されません。
- 最上位の select では、すべて選択 (*) の式は許可されません。
- 選択できるのは、テーブル (sql ステートメント from 句の先頭のテーブル) のセグメントの主キーのみです。
- 複数の列の 1 つがテーブルの主キーであっても、複数の列を選択することはできません。
- 主 select では、case ステートメントは許可されません。
- segmentOn エンティティの主キーにキー修飾子がある場合、主 select 内で��ー修飾子も射影する必要があります。まず主キーを射影してから修飾子を射影します。グループ化単位にもキー修飾子を含める必要があります。
- segmentOn エンティティの主キーにキー修飾子がある場合、結合条件に追加条件を指定できます。
- 最上位の select では、集計 (min、max、avg、count) は許可されません。
- クエリおよび後続のクエリでは、すべての列をテーブル名で完全に修飾する必要があります。
- サブクエリは where 句でのみサポートされ、1 つの列のみを発行する必要があります。
- 同じデータ型の列を比較します。異なるデータ型の列を比較するには、同じ型になるように片方または両方のオペランドをキャストします。
- limit と offset がサポートされます。
- select ステートメント以外の sql ステートメントは許可されません。
- 別名はクエリの from ブロック内の DMO でのみサポートされます。列には別名を使用できません。
- 2 つの DMO を結合するには、DMO 間にリレーションがある必要があり、結合条件で関連結合キーのいずれかを使用する必要があります。結合条件に含めることができるのは、結合キー間の等価比較と、FQK 項目を比較するための追加条件 (省略可能) のみです。