- カテゴリ:
SEMANTIC_VIEW¶
クエリ する セマンティックビュー を指定します。SELECT ステートメントの FROM 句で SEMANTIC_VIEW(...)を指定します。
注釈
プライベートファクトまたはメトリック をクエリしたり、それらを WHERE 条件で使用したりすることはできません。
- こちらもご参照ください。
構文¶
SEMANTIC_VIEW(
[<namespace>.]<semantic_view_name>
[
{
METRICS <metric> [ , ... ] |
FACTS <fact_expr> [ , ... ]
}
]
[ DIMENSIONS <dimension_expr> [ , ... ] ]
[ WHERE <predicate> ]
)
パラメーター¶
[namespace.]semantic_view_name
クエリするセマンティックビューの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
METRICS metric [ , ... ]
結果で返したいメトリックを指定します。
注釈
メトリックを使用する式は指定できません。たとえば、
t1.metric_1 + 1
は指定できません。プライベートメトリック は指定できません。
メトリックの名前は:
メトリックの名前を修飾できます(たとえば、
my_logical_table.my_metric
)。非修飾名を使用するのは、セマンティックビューに同じ非修飾名を持つ識別子が他にない場合のみです。例えば、メトリックとディメンジョンで同じ非修飾名を使用する場合は、クエリでメトリック名を修飾する必要があります。
論理テーブルのすべてのメトリクスを指定するには、論理テーブル名で修飾されたワイルドカードとしてアスタリスクを使用します(例:
my_logical_table.*
)。テーブル名で修飾しないと、アスタリスクを指定できません。
結果に表示される順序でメトリックを指定します。
FACTS fact_expr [ , ... ]
結果で返す事実を指定します。セマンティックビューのファクトまたはディメンションを参照するスカラー式を指定することもできます。スカラー式を指定する場合、その式のディメンションとファクトは、同じ論理テーブルに属している必要があります。
注釈
プライベートファクト は指定できません。
DIMENSIONS 句で指定されたディメンションと異なり、クエリは FACTS 句で指定されたファクトをグループ化しません。異なる行には、ファクトの同じ値を含めることができます。
結果に表示される必要のある順序でファクトを指定します。
DIMENSIONS dimension_expr [ , ... ]
結果で返すディメンションを指定します。セマンティックビューのディメンションやファクトを参照するスカラー式を指定することもできます。スカラー式を指定する場合、その式のディメンションとファクトは、同じ論理テーブルに属している必要があります。
クエリは、ここで指定したディメンションごとに結果をグループ化します。たとえば、論理テーブルにディメンションに対して5つの異なる値が含まれている場合は、 DIMENSIONS 句でそのディメンションを指定すると、5行を返します。
ディメンジョンの名前は:
ディメンジョンの名前を修飾できます(たとえば、
my_logical_table.my_dimension
)。非修飾名を使用するのは、セマンティックビューに同じ非修飾名を持つ識別子が他にない場合のみです。例えば、メトリックとディメンジョンで同じ非修飾名を使用する場合は、クエリでディメンジョン名を修飾する必要があります。論理テーブルのすべてのディメンションを指定するには、論理テーブル名で修飾されたワイルドカードとしてアスタリスクを使用します(例:
my_logical_table.*
)。テーブル名で修飾しないと、アスタリスクを指定できません。
スカラー式を指定した場合は、他のセマンティックビューやメトリクスのディメンションを参照することはできません。
結果に表示される順序でディメンジョンを指定します。
注釈
ウィンドウ関数メトリックを返す場合は、そのセマンティックビューの CREATE SEMANTIC VIEW ステートメント内の PARTITIONBY:samp:
{dimension}
、 PARTITIONBYEXCLUDING:samp:{dimension}`および ORDERBY:samp:`{dimension}
の句で指定されるディメンションも返す必要があります。ウィンドウ関数メトリックの定義とクエリ をご参照ください。
WHERE predicate
ブール式。式には、 論理演算子、 組み込み関数、 ユーザー定義関数(UDFs) を含めることができます。
条件では、ディメンション、ファクト、ディメンションとファクトを使用する式のみを参照できます。
異なるエンティティのファクトを指定した場合、セマンティックビュー定義の RELATIONSHIPS 句は、これらのエンティティ間の関係を定義する必要があります。
このフィルター条件は、メトリックが計算される前に適用されます。
使用上の注意¶
内 SEMANTIC_VIEW 句は、次の句の少なくとも1つを指定する必要があります。
METRICS
DIMENSIONS
FACTS
からこれらの句をすべて省略することはできません。 SEMANTIC_VIEW 句。
これらの句の組み合わせを指定する場合は、次の点に注意してください。
FACTS および METRICS 同じ SEMANTIC_VIEW 句は指定できません 。
両方指定できますが FACTS および DIMENSIONS クエリでは、ディメンションが事実を一意に決定できる場合にのみそうする必要があります。
クエリは結果をディメンションごとにグループ化します。ファクトがディメンションに依存しない場合、結果は非決定的になる可能性があります。
両方を指定した場合 FACTS および DIMENSIONSクエリで使用されるすべてのファクトおよびディメンション(で指定されたものを含む) WHERE 句)は、同じ論理テーブルで定義する必要があります。
ディメンションとメトリックを指定する場合、ディメンションの論理テーブルは、メトリックの論理テーブルに関連している必要があります。
さらに、ディメンションの論理テーブルは、メトリックの論理テーブルと同じレベルの細分性で設定する必要があります。
どのディメンションがこの基準を満たすかを判断するには、を実行します。 SHOW SEMANTIC DIMENSIONS FOR METRIC コマンド。
詳細については、 指定したメトリックに対して返すことができるディメンションの選択 をご参照ください。
内 DIMENSIONS 句、ファクトを参照する式を指定できます。同様に、では FACTS 句、ディメンションを参照する式を指定できます。例:
-- Dimension expression that refers to a fact DIMENSIONS my_table.my_fact -- Fact expression that refers to a dimension FACTS my_table.my_dimension
を使用した場合の主な違いの1つ DIMENSIONS および FACTS は、クエリが で指定されたディメンションと式によって結果をグループ化することです。 DIMENSIONS 句。
を指定する METRICS, DIMENSIONSおよび FACTS 句を結果に表示する順序にします。
寸法を結果の最初に表示させたい場合は、 METRICS の前に DIMENSIONS を指定します。そうでない場合は、まず METRICS を指定してください。
例えば、 METRICS 句を最初に指定したとします:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis METRICS customer.customer_order_count DIMENSIONS customer.customer_name ) ORDER BY customer_name LIMIT 5;
出力では、最初の列がメートル法の列(
customer_order_count
)で、2番目の列がディメンションの列(customer_name
)です:+----------------------+--------------------+ | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME | |----------------------+--------------------| | 6 | Customer#000000001 | | 7 | Customer#000000002 | | 0 | Customer#000000003 | | 20 | Customer#000000004 | | 4 | Customer#000000005 | +----------------------+--------------------+
代わりに DIMENSIONS 句を最初に指定します:
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_name METRICS customer.customer_order_count ) ORDER BY customer_name LIMIT 5;
出力では、最初の列がディメンションの列(
customer_name
)、2番目の列がメトリクスの列(customer_order_count
)です:+--------------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ORDER_COUNT | |--------------------+----------------------| | Customer#000000001 | 6 | | Customer#000000002 | 7 | | Customer#000000003 | 0 | | Customer#000000004 | 20 | | Customer#000000005 | 4 | +--------------------+----------------------+
JOIN, PIVOT, UNPIVOT, GROUP BY, 共通表式 (CTEs) などの他の SQL 構文で、 SEMANTIC_VIEW 句で定義された関係を使用することができます。
出力列ヘッダーには、メトリクスとディメンションの修飾されていない名前が使用されます。
同じ名前の複数のメトリクスやディメンションがある場合は、テーブル・エイリアスを使用して列ヘッダーに異なる名前を割り当てます。出力中の重複列名の処理 をご参照ください。
例¶
セマンティックビューのクエリ をご参照ください。