用途
# SQL-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
sql: analytic_model_definition ;;
}
}
# LookML-based derived analytic model
view: view_name {
derived_analytic_model: {
publish_as_db_analytic_model: yes | no
model_source: explore_name {
fields: [field_1, field_2, ...]
join: +joined_view_name {
foreign_key: field_name
}
}
}
}
|
階層
derived_analytic_model |
デフォルト値
なし
特別なルール
分析モデルは、BigQuery と Snowflake の接続でのみサポートされています。 |
定義
BigQuery と Snowflake の接続の場合、derived_analytic_model パラメータは、Looker によって管理されるインデータベース分析モデル(BigQuery Graph または Snowflake のセマンティック ビュー)を定義します。
派生テーブルとは異なり、Looker で管理される分析モデル オブジェクトは、データベース内にデータを保持せず、増分更新も行われません。代わりに、データベースで関係と指標を直接定義するセマンティック モデルを表します。
Looker では、次の 2 種類の派生分析モデルがサポートされています。
- SQL ベースの派生分析モデル: SQL のデータ定義言語(DDL)ステートメントを使用して分析モデルを定義します。Looker は、指定した SQL ステートメントを実行して、データベース内に分析モデルを生成します。
- LookML ベースの派生分析モデル: 既存の LookML Explore を参照して分析モデルを定義します。Looker は、Explore のトポロジ、結合、ディメンション、指標をデータベース ネイティブの分析モデル DDL ステートメントに自動的に変換し、データベースでモデルを作成して管理します。
SQL ベースの派生分析モデル
SQL ベースの派生分析モデルでは、Looker は、derived_analytic_model LookML パラメータの定義で指定した適切な SQL データ定義言語(DDL)ステートメントを実行して、データベース内に分析モデルを生成します。derived_analytic_model パラメータで定義する SQL 構文は、データベースでサポートされている必要があります。
SQL ベースの分析モデルを定義するには、derived_analytic_model パラメータの次のいずれかのサブパラメータを使用します。
また、sql サブパラメータを使用して分析ビューを定義する場合は、derived_analytic_model パラメータの publish_as_db_analytic_model サブパラメータを使用して、Looker の外部でクエリできる安定した分析モデルを作成できます。
derived_analytic_model パラメータ内で分析モデルを定義したら、分析モデルにマッピングする LookML ディメンションとメジャーを定義できます。詳細については、SQL ベースの派生分析モデルの例をご覧ください。
sql
分析モデルの定義のみに SQL を指定し、分析モデルの作成を Looker に管理させる場合は、sql パラメータを使用します。sql サブパラメータを使用する場合は、CREATE ステートメントまたは CREATE OR REPLACE ステートメントを含めないでください。Looker は、データベース側で分析モデルを作成する DDL ステートメントを自動的に生成します。
sql パラメータを使用してデータベースに分析モデルを作成する例については、sql を使用して派生分析モデルを作成するをご覧ください。
sql_create
sql_create パラメータを使用して、分析モデルを作成する完全な SQL ステートメントを定義します。sql_create パラメータを使用する場合は、CREATE OR REPLACE ステートメント(使用言語で CREATE OR REPLACE がサポートされていない場合は CREATE ステートメント)を含める必要があります。
sql_create サブパラメータを使用する場合は、次の点に注意してください。
- BigQuery 接続の場合は、
CREATE OR REPLACEステートメントを使用して分析モデルを作成します。 ${SQL_TABLE_NAME}を使用して、作成される分析モデルの計算された名前を代入します。これにより、SQL ステートメントに、LookML のviewパラメータで指定した分析モデル名が正しく含まれるようになります。
sql_create パラメータを使用してデータベースに分析モデルを作成する例については、sql_create を使用して派生分析モデルを作成するをご覧ください。
create_process
分析モデルを定義するために複数の連続した SQL ステートメントを定義する必要がある場合は、create_process パラメータを使用します。create_process パラメータで、sql_step サブパラメータを使用して個々の SQL ステートメントを指定します。データベースは、指定した順序で sql_step ステートメントを 1 つずつ実行します。Looker は、sql_step サブパラメータの SQL ステートメントを定義したとおりにラッパーなしで発行します。つまり、CREATE OR REPLACE ステートメント(または、言語が CREATE OR REPLACE をサポートしていない場合は CREATE ステートメント)を含むステップを含める必要があります。
create_process パラメータを使用してデータベースに分析モデルを作成する例については、create_process を使用して派生分析モデルを作成するをご覧ください。
publish_as_db_analytic_model
sql パラメータで作成された派生分析モデルの場合、publish_as_db_analytic_model: yes で派生分析モデルを定義して、Looker の外部でクエリできる安定した分析モデルを作成するように Looker に指示できます。
安定版の分析モデルは、派生分析モデルの LookML が publish_as_db_analytic_model: yes で本番環境にデプロイされた後、次の Looker 再生ツールのサイクルで公開(作成)されます。
publish_as_db_analytic_model: yes を指定すると、Looker 再生ツールはデータベースに 2 つの分析モデルを作成します。1 つは内部名、もう 1 つは安定した名前です。それ以外の場合、再生成ツールは内部名を使用して、データベースに 1 つの分析モデルのみを作成します。
Looker の外部で安定版分析モデルをクエリするために、安定版分析モデルの名前を取得する方法については、安定版分析モデルへのアクセスをご覧ください。
SQL ベースのアナリティクス ビューに基づいて LookML ディメンションとメジャーを作成する
分析モデルを定義したら、同じビューファイルで、分析モデルに基づく LookML ディメンションとメジャーを定義できます。
分析モデルの定義と分析モデル内の要素の参照に使用する適切な構文については、ダイアレクトのドキュメントをご覧ください。たとえば、BigQuery Graph エンティティから LookML ディメンションを作成するには、スコーピング時にアンダースコアを使用して要素を区切る必要があります。たとえば、BigQuery Graph の場合、この LookML ディメンションは Stores ノードテーブルの location_id プロパティに基づいています。
dimension: location_id {
type: number
sql: Stores_location_id ;;
}
ただし、Snowflake セマンティック ビューに基づく LookML ディメンションを作成するには、指標またはディメンションの非修飾名を使用する必要があります。
SQL ベースの派生分析モデルの例
以降のセクションでは、derived_analytic_model のさまざまなサブパラメータを使用して分析ビューを作成する例を示します。
sql を使用して派生分析モデルを作成する
次の例は、derived_analytic_model の sql サブパラメータを使用して BigQuery データベースの SQL ベースの分析モデルを定義する LookML ビューファイルです。Looker は、sql パラメータで指定された SQL DDL コマンドを実行して、データベース内に分析モデルを作成します。
この例では、次の点に注意してください。
sqlサブパラメータには、分析モデル自体の定義のみが含まれます。sqlを使用すると、Looker が分析モデルのCREATEコマンドを自動的に処理するため、CREATEステートメントはありません。- 分析モデルは
publish_as_db_analytic_model: yesで定義されているため、Looker は Looker の外部でクエリできる安定した分析モデルを作成します。
view: MyWarehouseOrdersView {
derived_analytic_model: {
publish_as_db_analytic_model: yes
# Defining the analytic model
sql:
NODE TABLES (
Customers
KEY(customer_id)
PROPERTIES(
country_code,
concat(first_name, ' ', last_name) AS name,
age,
MEASURE(AVG(age)) AS AvgAge
),
Orders
KEY(order_id)
PROPERTIES (
customer_id,
employee_id,
date,
discount,
MEASURE(AVG(discount)) AS AvgDiscount
)
EDGE TABLES (
-- Relationship: Orders -> Customers
looker_test.orders AS orders_to_users
KEY(id)
SOURCE KEY (order_id) REFERENCES orders (order_id)
DESTINATION KEY (customer_id) REFERENCES Customers (customer_id)
NO PROPERTIES
) ;;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: customer_id {
type: number
sql: Customers_customer_id ;;
}
dimension: customer_age {
type: number
sql: Customers_age ;;
}
measure: orders_avg_discount {
type: number
sql: Orders_AvgDiscount ;;
}
}
create_process を使用して派生分析モデルを作成する
次の例は、derived_analytic_model の create_process サブパラメータを使用して BigQuery データベースの SQL ベースの分析モデルを定義する LookML ビューファイルです。この例では、分析モデルを定義するために、複数の連続した SQL ステートメントを定義する必要があります。最初のステップでは、分析モデルがすでに存在する場合は削除し、2 番目のステップでは分析モデルを作成します。
view: university_statistics {
derived_analytic_model: {
create_process: {
sql_step:
DROP PROPERTY GRAPH IF EXISTS ${SQL_TABLE_NAME} ;;
sql_step:
CREATE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES (
university.College
KEY(college_id)
PROPERTIES(college_id, college_name),
university.Department
KEY(dept_id)
PROPERTIES(dept_id, dept_name, college_id,
budget OPTIONS(description="Department budget in USD"),
MEASURE(SUM(budget)) AS total_budget),
university.Course
KEY(course_id)
PROPERTIES(
course_id,
course_name,
credits,
dept_id,
MEASURE(AVG(credits)) AS avg_credits,
MEASURE(SUM(credits)) AS total_credits,
MEASURE(COUNT(course_id)) AS course_count)
)
EDGE TABLES (
university.Department AS CollegeDept
SOURCE KEY (college_id) REFERENCES College (college_id)
DESTINATION KEY (dept_id) REFERENCES Department (dept_id),
university.Course AS DeptCourse
SOURCE KEY (dept_id) REFERENCES Department (dept_id)
DESTINATION KEY (course_id) REFERENCES Course (course_id)
);;
}
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: college_id {
type: number
sql: College_college_id ;;
}
dimension: course_name {
type: string
sql: Course_course_name ;;
}
...
}
sql_create を使用して派生分析モデルを作成する
次の例は、derived_analytic_model の sql_create サブパラメータを使用して BigQuery データベースの SQL ベースの分析モデルを定義する LookML ビューファイルです。この例では、sql_create パラメータは、分析モデルを 1 つのステップで作成するために実行する完全な CREATE OR REPLACE ステートメントを定義します。
view: MyWarehouseOrdersView {
derived_analytic_model: {
sql_create:
CREATE OR REPLACE PROPERTY GRAPH ${SQL_TABLE_NAME}
NODE TABLES(
accounting.Loan AS Loan
KEY(loanId)
LABEL Loan PROPERTIES(
loanId,
loanAmount,
balance,
createTime,
interestRate,
accountId,
balance + 100 AS derived_balance,
CASE WHEN balance > 1000 THEN "High" ELSE "Low" END AS risk_level,
CONCAT("ID-", CAST(loanId AS STRING)) AS full_id,
DATE(2024, 1, 1) AS fixed_date,
MEASURE(AVG(interestRate)) AS avg_interest_rate
),
accounting.AccountView AS Account
KEY(accountId)
LABEL Account PROPERTIES(
accountId,
createTime,
isBlocked,
accountType,
amount,
ownerId,
MEASURE(MIN(createTime)) AS oldest_account_create_time,
MEASURE(MAX(createTime)) AS newest_account_create_time,
MEASURE(AVG(amount)) AS avg_account_amount,
MEASURE(SUM(amount)) AS total_account_amount,
MEASURE(COUNT(DISTINCT accountType)) AS account_type_count
),
accounting.PersonMV AS Person
KEY(personId)
LABEL Person PROPERTIES(
personId,
personName,
age,
age_tier,
MEASURE(AVG(age)) AS avg_age,
MEASURE(COUNT(DISTINCT age_tier)) AS age_tier_count
)
)
EDGE TABLES(
accounting.Loan AS Account_Repay_Loan
KEY(loanId)
SOURCE KEY(loanId) REFERENCES Loan(loanId)
DESTINATION KEY(accountId) REFERENCES Account(accountId)
LABEL Repay NO PROPERTIES,
accounting.Account AS Person_Own_Account
KEY(accountId)
SOURCE KEY(accountId) REFERENCES Account(accountId)
DESTINATION KEY(ownerId) REFERENCES Person(personId)
LABEL Own NO PROPERTIES
);;
}
# Mapping dimensions/measures to the dimensions/measures
# provided by the analytic model
dimension: loan_id {
type: number
sql: Loan_loanId ;;
}
dimension: account_ID {
type: number
sql: Account_accountID ;;
}
...
}
安定版分析モデルにアクセスする
sql サブパラメータを使用して派生分析モデルを作成し、derived_analytic_model パラメータの下に publish_as_db_analytic_model: yes ステートメントを含めた場合、Looker は、派生分析モデルの LookML が publish_as_db_analytic_model: yes で本番環境にデプロイされた後、次の Looker 再生ツールのサイクルで安定版の分析モデルを公開(作成)します。
安定版の分析モデルが公開されたら、安定版の名前を使用して直接クエリできます。分析モデルの安定した名前を取得する方法は 2 つあります。
PDT 詳細モーダル
管理者または see_pdts 権限を持つユーザーは、次の手順に沿って、Looker の [管理者] セクションの [永続的な派生テーブル] ページを使用して、分析モデルの安定した分析モデル名を取得できます。
- Looker のメインメニュー アイコン をクリックし、[管理] を選択します([管理] メニューがまだ表示されていない場合)。(Looker のメインメニューの [Explore] セクションまたは [Develop] セクションにいる場合は、[管理者] メニューを表示するために戻る矢印をクリックする必要がある場合があります)。
- [Admin] メニューから [Persistent Derived Tables] を選択します。
- [Persistent Derived Tables] ページで、分析モデルの名前を検索します。
- 分析モデルのその他メニューをクリックし、[PDT の詳細] を選択します。
- [PDT の詳細] モーダルで、[安定した名前] フィールドを探します。
安定版分析モデルを直接クエリするには、モデル名の前にスクラッチ スキーマ名を追加します。たとえば、スクラッチ スキーマ名が tmp の場合、次のようなコマンドを使用して安定した分析モデルをクエリできます。
SELECT * from tmp.PA_bq_analytic_model_sales_semantic_view
Explore の [SQL] タブ
[永続派生テーブル] 管理ページにアクセスできない場合は、分析モデルの Explore クエリの [データ] セクションの [SQL] タブに表示される情報から安定した名前を特定できます。分析モデルの安定した名前を取得する手順は次のとおりです。
分析モデルのビューの Explore を開きます。
Explore で、フィールド ピッカーからディメンションまたは measure を選択します。
[データ] セクションの [SQL] タブをクリックします。
[SQL] タブで、次のいずれかの SQL ステートメントを見つけます。
- BigQuery Graph の場合:
CREATE PROPERTY GRAPHSELECT ... FROM GRAPH_EXPAND('PROPERTY_GRAPH_NAME')
- Snowflake セマンティック ビューの場合:
CREATE SEMANTIC VIEWSELECT ... FROM SEMANTIC_VIEW_NAME
- BigQuery Graph の場合:
安定した名前は、Looker がスクラッチ スキーマに作成するビューです。このビューは、[SQL] タブに表示される実際の難読化されたテーブルを指します。分析ビューの安定した名前を取得するには、SQL ステートメントから次の情報を入力します。
SCRATCH_SCHEMA_NAME.CONNECTION_REGISTRATION_KEY_MODEL_NAME_VIEW_NAME- SCRATCH_SCHEMA_NAME: スクラッチ スキーマ名は、
CREATEまたはSELECTステートメントの後に続く文字列の先頭から「.」の前までです。 - CONNECTION_REGISTRATION_KEY: 接続登録キーは 2 文字です。データベース言語に応じて、
CREATEまたはSELECTステートメントのテーブル名のドル記号または最初のアンダースコアの後に続きます。 - MODEL_NAME: LookML モデルの名前。
- VIEW_NAME: 分析モデルが定義されているビューの名前。
- SCRATCH_SCHEMA_NAME: スクラッチ スキーマ名は、
たとえば、BigQuery 接続の Explore クエリの [SQL] タブのテキストは次のようになります。分析モデルは sales_analytic_model という名前のビューで定義され、LookML モデルの名前は thelook です。この場合、Looker はすでに分析モデルを作成しているため、CREATE ステートメントはありません。ただし、SELECT ... FROM GRAPH_EXPAND ステートメントにはテーブル名情報が含まれています。
-- use existing sales_analytic_model in `looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model`
SELECT
sales_analytic_model.orders_id AS sales_analytic_model_orders_id,
AGG(sales_analytic_model.orders_count_orders ) AS sales_analytic_model_count_orders
FROM GRAPH_EXPAND("looker-test-db.looker_scratch.LG_J7LSZ1778710001008_sales_analytic_model") AS sales_analytic_model
GROUP BY
1
ORDER BY
2 DESC
LIMIT 500
分析モデルの安定した名前を導出するために必要な値は次のとおりです。
- SCRATCH_SCHEMA_NAME は
looker-test-db.looker_scratch - CONNECTION_REGISTRATION_KEY は
J7 - MODEL_NAME は
thelook - VIEW_NAME は
sales_analytic_model
したがって、分析モデルの安定版名は次のようになります。
looker-test-db.looker_scratch.J7_thelook_sales_analytic_model
分析モデルの安定した名前を取得したら、分析モデルを直接クエリできます。
LookML ベースの派生分析モデル
LookML ベースの派生分析モデルを使用すると、データベース固有の SQL DDL ステートメントを記述することなく、既存の LookML エクスプローラから直接、データベース内分析モデル(BigQuery Graph や Snowflake セマンティック ビューなど)を定義できます。
LookML ベースの派生分析モデルを定義するには、次のパラメータを使用します。
model_sourcepublish_as_db_analytic_model(このパラメータは、LookML ベースと SQL ベースの両方の派生分析モデルに適用されます)
LookML ベースの派生分析モデルを作成するには、model_source パラメータを使用して、データ トポロジを定義するソース Explore を指定します。Looker は、LookML のビュー、結合、ディメンション、指標をデータベース ネイティブの分析モデル DDL ステートメントに自動的に変換します。
- ノード / テーブル: ソース エクスプローラの各 LookML ビューは、BigQuery Graph のノードテーブルまたは Snowflake セマンティック ビューのテーブルになります。
- エッジ / 関係: ソース エクスプローラで
foreign_keyパラメータを使用して定義された各結合は、BigQuery Graph のエッジテーブルまたは Snowflake セマンティック ビューの関係になります。 - プロパティ / ディメンションと指標: ソースビューの LookML ディメンションと指標は、BigQuery Graph のノード プロパティ、または Snowflake セマンティック ビューのディメンションと指標になります。
LookML ベースの派生分析モデルビューに基づく Explore をクエリすると、Looker はデータベース DDL を生成して実行し、データベースのスクラッチ スキーマに分析モデルを作成してから、生成された分析モデルに対してクエリを実行します。分析モデルが作成されると、Looker はそのモデルを永続化します。これにより、LookML 定義が変更されるまで、後続のクエリは既存のモデルを直接参照します。
model_source
model_source パラメータは、分析モデルのトポロジと関係のソースとして機能する LookML Explore の名前を指定します。
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [order_items.id, orders.id, orders.status, users.name]
}
}
}
ソース Explore に含まれるビューには、主キー ディメンションで primary_key: yes を使用して定義された主キーが必要です。
model_source は、次のサブパラメータを受け入れます。
| パラメータ | 説明 |
|---|---|
fields |
省略可。分析モデルにエクスポートするソース Explore のフィールドの許可リストまたは拒否リストを指定します。 |
join(または joins) |
省略可。分析モデル専用に、ソース Explore からの結合を定義または絞り込みます。 |
fields
デフォルトでは、ソース Explore のビューで使用可能なすべてのフィールドが分析モデルにエクスポートされます(ソース Explore 自体が fields パラメータで定義されている場合、ソース Explore の一部のフィールドは使用できないことがあります)。model_source 内の fields サブパラメータを使用すると、エクスポートするフィールドのサブセットを指定したり、標準の LookML リスト構文を使用して特定のフィールドを除外したりできます。
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
fields: [
order_items.id,
order_items.price,
orders.id,
orders.status,
users.name
]
}
}
}
join
model_source 内の join パラメータを使用すると、ソース Explore で指定済みの結合に絞り込みを追加できます。絞り込みを追加すると、ソースの Explore 定義を変更せずに、分析モデルのみにスコープ設定された調整を行うことができます。
model_source の join パラメータで、ソース Explore の結合の名前を + 絞り込みインジケーターとともに指定します。たとえば、join: +view_name のようにします。次に、join サブパラメータを使用して、分析モデルで必要に応じて、ソース Explore からの結合を絞り込みます。例については、手順 2 をご覧ください。
model_source 内の join パラメータは、結合の絞り込みのみを受け取ります。ソースの Explore に存在しない新しい結合を分析モデルに追加することはできません。
model_source 内の join パラメータは、次のサブパラメータをサポートしています。
| サブパラメータ | 説明 |
|---|---|
foreign_key |
分析モデルのリレーションを確立する外部キーの列またはディメンションを指定します。foreign_key パラメータの例については、ステップ 1 の例をご覧ください。 |
relationship |
結合のカーディナリティ(many_to_one、one_to_one、one_to_many、many_to_many)を定義します。 |
LookML ベースの派生分析モデルを設定する
LookML ベースの派生分析モデルを設定する手順は次のとおりです。
foreign_key結合を使用してベースビューとソース Explore を定義する- 派生分析モデルビューを作成する
- 分析モデルビューで LookML ディメンションとメジャーを定義する
- 分析モデル ビューの Explore を作成する
- Looker で分析モデルをクエリする
ステップ 1: foreign_key 結合を使用してベースビューとソースの Explore を定義する
まず、ベースビュー(order_items、orders、users など)が主キーで定義されていることを確認します。
次に、ビュー間の関係を指定する LookML モデルファイルで Explore を定義します。データベース内分析モデル内でリレーションシップを構築するには、ソース Explore の各結合に foreign_key パラメータが厳密に必要です。
explore: order_items {
fields: [ALL_FIELDS*]
join: orders {
relationship: many_to_one
foreign_key: order_id
}
join: users {
relationship: many_to_one
foreign_key: orders.user_id
}
}
ステップ 2: 派生分析モデルビューを作成する
新しいビューファイル(sales_analytic_model.view.lkml など)を作成し、ソースの Explore を指す model_source パラメータを含む derived_analytic_model ブロックを追加します。
view: sales_analytic_model {
derived_analytic_model: {
model_source: order_items {
# Optional: Use fields to restrict the properties exported to the analytic model
# fields: [order_items.id, orders.id, orders.status, users.name]
# Optional: Use join refinements to refine the relationships from the source Explore
# join: +orders {
# foreign_key: order_id
# }
# join: +users {
# foreign_key: orders.user_id
# }
}
}
...
ステップ 3: 分析モデルビューで LookML ディメンションとメジャーを定義する
同じ分析モデルのビューファイルで、生成された分析モデルのプロパティにマッピングされるディメンション、ディメンショングループ、メジャーを定義します。これにより、Looker Explore でクエリを実行できます。
${TABLE}.<view_name>_<field_name>(または ${TABLE}.<property_name>)を使用して、基盤となるモデルの参照フィールドを参照します。
# Dimensions
dimension: order_items_id {
type: number
sql: ${TABLE}.order_items_id ;;
}
dimension: orders_id {
type: number
sql: ${TABLE}.orders_id ;;
}
dimension: orders_status {
type: string
sql: ${TABLE}.orders_status ;;
}
dimension_group: orders_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.orders_created_at ;;
}
dimension: users_name {
type: string
sql: ${TABLE}.users_name ;;
}
dimension_group: users_created {
type: time
timeframes: [raw, time, date, week, month, quarter, year]
sql: ${TABLE}.users_created_at ;;
}
# Measures
measure: count_users {
type: number
sql: ${TABLE}.users_count_users ;;
}
measure: count_orders {
type: number
sql: ${TABLE}.orders_count_orders ;;
}
measure: total_order_amount {
type: number
sql: ${TABLE}.orders_total_order_amount ;;
}
measure: total_order_item_amount {
type: number
sql: ${TABLE}.order_items_total_order_item_amount ;;
}
}
ステップ 4: 分析モデルビューの Explore を作成する
モデルファイル(sales.model.lkml など)で、ビューの名前を使用して分析モデルビューの Explore を作成します。
explore: sales_analytic_model {}
分析モデルビューに基づく Explore には結合を含めることはできません。これは、リレーションシップが分析モデル自体内で内部的に定義されているためです。
ステップ 5: Looker で分析モデルにクエリを実行する
Looker で新しい Explore(例: Sales Analytic Model)を開き、ディメンションとメジャーを選択して、クエリを実行します。
生成された SQL を調べる手順は次のとおりです。
- [データ] パネルで [SQL] タブをクリックします。
- [SQL] タブでは、Looker が生成するデータベース固有の DDL ステートメント(BigQuery Graph の
NODE TABLESとEDGE TABLESを含むCREATE PROPERTY GRAPH ...など)と、分析モデルに対して実行されるクエリ(FROM GRAPH_EXPAND(...) AS sales_analytic_modelなど)を表示できます。 - クエリが実行されると、Looker は分析モデルをデータベースのスクラッチ スキーマに永続化します。後続のクエリでは、LookML 定義が変更されるまで、永続モデルが再利用され、DDL の再実行が回避されます。
LookML ベースの派生分析モデルに関する考慮事項
LookML ベースの派生分析モデルを定義する際は、次の点に注意してください。
- 主キー: ソース Explore のすべてのビューに、
primary_key: yesを使用して定義された主キー ディメンションが必要です。 - 非巡回トポロジ: ソースの探索で結合によって定義される関係は、厳密な非巡回ツリー構造を形成する必要があります。循環関係はサポートされていません。
- ソースビューの要件: ソース Explore に含まれるビューは、安定した名前を持つ標準のデータベース テーブルまたは永続的な派生テーブル(PDT)である必要があります。他の分析モデルに基づく一時的な(永続的でない)派生テーブルとビューは、ソースとして使用できません。
- Explore パラメータ: 分析モデルの生成時に、ソース Explore の動的ランタイム フィルタリング パラメータ(
sql_always_where、always_filter、access_filter)とsql_always_joinは無視されます。
注意点
データベース内分析モデルを使用する場合は、次の考慮事項と制限事項に注意してください。
データ型: 分析モデルでサポートされているのは、ディメンションと指標の次のデータ型のみです。
- ディメンションとメジャーでサポートされます。
stringnumberdateyesno
- ディメンションでのみサポートされます。
timedate_time
- ディメンションとメジャーでサポートされます。
測定:
- ベースメジャーは事前定義されている必要があります: ベースメジャーは、基盤となるデータベース分析モデルで事前定義されている必要があります。Looker では、分析モデルのディメンションに対して集計(
type: sumやtype: countなど)を実行して、新しいベースメジャーを定義することはできません。 他のメジャーに基づくメジャーがサポートされています: LookML メジャーの
sqlパラメータを使用して、分析モデルの事前定義されたベースメジャーを使用する非集計計算を実行できます。他のメジャーに基づくメジャーを作成する場合、新しいメジャーをsumやcountなどの集計メジャー タイプとして定義することはできません。新しい指標は、string、number、date、yesnoなどの非集計指標タイプとして定義する必要があります。次の例をご覧ください。measure: average_order_amount { type: number sql: ROUND(${total_order_amount} / NULLIF(${count_orders}, 0), 2) ;; }
- ベースメジャーは事前定義されている必要があります: ベースメジャーは、基盤となるデータベース分析モデルで事前定義されている必要があります。Looker では、分析モデルのディメンションに対して集計(
結合: ベースビューが分析モデルに基づく Explore には、結合を含めることはできません。同様に、分析モデルに基づくビューを、標準の LookML ベースビューを持つ Explore に結合することはできません。
暗黙的な結合: 暗黙的な結合に依存する機能は、分析モデルではサポートされていません。暗黙的な結合に依存する機能の例としては、カスタム カレンダーや、
type: location、type: distance、type: zipcodeで定義されたフィールドなどがあります。分析モデルでは、次の機能は対象外です。