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) は許可されません。
1---FAIL 2select max(Individual_dense_viv__dlm.age__c) from Individual_dense_viv__dlm 3---FAIL 4select count(Individual_dense_viv__dlm.individualid__c) from Individual_dense_viv__dlm 5--- - 最上位の select では、すべて選択 (*) の式は許可されません。
1---FAIL 2select * from Individual_dense_viv__dlm - 選択できるのは、テーブル (sql ステートメント from 句の先頭のテーブル) のセグメントの主キーのみです。
1---PASS 2select Individual_dense_viv__dlm.individualid__c from Individual_dense_viv__dlm - 複数の列の 1 つがテーブルの主キーであっても、複数の列を選択することはできません。
1---FAIL 2select Individual_dense_viv__dlm.individualid__c, 3Individual_dense_viv__dlm.age__c from Individual_dense_viv__dlm - 主 select では、case ステートメントは許可されません。
1---FAIL 2select 3 case 4 when Individual_dense_viv__dlm.individualid__c > 10 then Individual_dense_viv__dlm.individualid__c 5 else null 6 end 7from 8 Individual_dense_viv__dlm
- 最上位の select では、集計 (min、max、avg、count) は許可されません。
- クエリおよび後続のクエリでは、すべての列をテーブル名で完全に修飾する必要があります。
1---FAIL 2select individualid__c from Individual_dense_viv__dlm - サブクエリは where 句でのみサポートされ、1 つの列のみを発行する必要があります。
1---FAIL 2select Individual_dense_viv__dlm.individualid__c from (select * from Individual_dense_viv__dlm) - limit と offset がサポートされます。
1---FAIL 2select Individual_dense_viv__dlm.individualid__c from Individual_dense_viv__dlm limit 10 - select ステートメント以外の sql ステートメントは許可されません。
1---FAIL 2update Individual_dense_viv__dlm set Individual_dense_viv__dlm.individualid__c = 'aa'