sql_table_name(結合の場合)

このページでは、sql_table_name パラメータについて説明します。このパラメータは 結合の一部です。

sql_table_name は、ビューの一部としても使用できます。詳細については、sql_table_name(ビューの場合) パラメータ ドキュメント ページをご覧ください。

sql_table_name は、Explore の一部としても使用できます。詳細については、sql_table_name(Explore の場合) パラメータ ドキュメント ページをご覧ください。

用途

explore: view_name {
  join: view_name {
    sql_table_name: table_name ;;
  }
}
階層
sql_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 を適用する

このページで説明するように、join レベルで sql_table_name を使用することは一般的ではありません。同じビューで複数のテーブルを記述できる場合にのみ使用してください。

より一般的な方法は、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 ;;
}