このページでは、結合の一部である
sql_table_nameパラメータについて説明します。
sql_table_nameは、sql_table_name(ビューの場合)のパラメータ ドキュメント ページで説明されているように、ビューの一部としても使用できます。
sql_table_nameは、sql_table_name(Explore 用)パラメータのドキュメント ページで説明されているように、Explore の一部としても使用できます。
用途
explore: view_name {
join: view_name {
sql_table_name: table_name ;;
}
}
sql_table_name |
デフォルト値
なし
許可
データベース内のテーブル名
特別なルール
|
定義
通常、join のベースとなるビューは、クエリ対象のテーブルを定義します。
sql_table_name を使用して、join によってクエリされるデータベース内のテーブルを設定できます。これは一般的ではありませんが、複数のテーブルで同じスキーマを使用している場合に便利です。同じビューを使用して、すべてのテーブルを記述できます。sql_table_name を使用すると、結合するビューで使用するテーブルを指定できます。このような場合は、extends または絞り込みの使用を検討してください。
テーブル名のスコープ設定
テーブル名を単独で使用してテーブルを参照すると、Looker は Looker 管理者がデータベース接続の設定で構成したデフォルトの検索パス(データベースとスキーマ)を使用します。詳しくは、このページの考慮事項をご覧ください。
データベース ユーザーのデフォルトの検索パスにない別のデータベースとスキーマのテーブルを参照する必要がある場合は、<database_name>.<schema_name>.<table_name> 形式を使用してテーブル名をスコープし、別のデータベースまたはスキーマを指すことができます。
- 別のスキーマのテーブルを参照するには、このページの例に示すように、
<schema_name>.<table_name>を使用します。 - 別のデータベースのテーブルを参照するには、完全な
<database_name>.<schema_name>.<table_name>を使用します。
Google BigQuery 接続の場合、<project_name>.<dataset_name>.<table_name> 形式でテーブル名をスコープ設定することで、別のプロジェクトとデータセットのテーブルを参照できます。詳細については、Google BigQuery 接続のドキュメント ページをご覧ください。
例
この例では、customers 結合がデフォルト スキーマの customer_1 テーブルに依存するようにします。
explore: orders {
join: customers {
sql_table_name: customer_1 ;;
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
この例では、テーブル名をスキーマ名を含むようにスコープ設定(<schema_name>.<table_name> 形式を使用)することで、customers 結合が analytics スキーマの customer_1 テーブルに依存するようにします。
explore: orders {
join: customers {
sql_table_name: analytics.customer_1 ;;
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
注意点
sql_table_name で参照されるテーブルは、現在の接続からアクセス可能である必要があります
sql_table_name パラメータが join オブジェクト内で使用されている場合、その join オブジェクトは explore オブジェクト内で定義され、その explore オブジェクトは model オブジェクトに含まれます。(このページの [階層] に、この関係チェーンが表示されます)。モデル オブジェクトには、定義されたデータベース connection があります。sql_table_name パラメータでデータベース テーブルを参照する場合、モデルファイルで指定された関連付けられた接続内でテーブルにアクセスできる必要があります。
デフォルトのデータベースとスキーマ(または Google BigQuery の場合は課金プロジェクトとデータセット)は、Looker 管理者がデータベース接続の データベースへの Looker 接続を作成するときに定義します。
join に基盤となるテーブルとは異なる名前を付けるには、ビューレベルで sql_table_name を適用します。
このページで説明するように、sql_table_name を join レベルで使用することは一般的ではありません。同じビューで複数のテーブルを記述できる場合にのみ使用してください。
より一般的な方法は、ビューレベルで sql_table_name を使用して、基盤となるテーブル名とは異なるビューに名前を付けることです。
次のように指定する代わりに、
モデルファイル
explore: orders {
join: customers {
sql_table_name: customer_1 ;;
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}}
手順は次のとおりです。
モデルファイル
explore: orders {
join: customers {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
ファイルを表示
view: customers {
sql_table_name: customer_1 ;;
}