사용
explore: view_name_1 {
join: view_name_2 {
foreign_key: dimension_name
}
}
|
계층 구조
foreign_key |
기본값
없음
수락
Looker 측정기준 이름
특별 규칙
|
정의
foreign_key는 뷰와 Explore 간의 조인 관계를 설정합니다. Looker는 foreign_key로 참조되는 측정기준을 조인된 뷰의 기본 키와 일치시킵니다. 기본 키 역할을 하는 필드에 대해 primary_key를 사용 설정하여 조인된 뷰의 기본 키를 설정합니다.
foreign_key를 사용하는 경우 뷰를 Explore에 직접 조인할 수도 있고, 이미 해당 Explore에 조인된 두 번째 뷰를 통해 조인할 수도 있습니다.
뷰가 Explore에 직접 조인되는 첫 번째 사례의 예는 다음과 같습니다.
explore: order {
join: customer {
foreign_key: customer_id
}
}
customer의 기본 키가 id로 지정되었다고 가정하면 Looker에서 생성한 SQL은 다음과 같습니다.
SELECT ...
FROM order
LEFT JOIN customer
ON order.customer_id = customer.id
두 번째 경우에는 이미 해당 Explore에 조인된 중간 뷰를 통해 뷰가 Explore에 조인됩니다. 예를 들면 다음과 같습니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
여기서는 customer을 order_items에 직접 연결할 수 없습니다. 대신 order를 통해 결합해야 합니다. order와 customer의 기본 키 이름이 모두 id라고 가정하면 Looker가 생성한 SQL은 다음과 같습니다.
SELECT ...
FROM order_items
LEFT JOIN order
ON order_items.order_id = order.id
LEFT JOIN customer
ON order.customer_id = customer.id
이 작업을 올바르게 수행하려면 customer_id 대신 customer을 조인할 때 완전히 범위가 지정된 필드 참조 order.customer_id를 사용해야 합니다. customer_id만 사용했다면 Looker는 order.customer_id을 통하지 않고 customer을 order_items.customer_id에 직접 조인하려고 시도했을 것입니다.
예시
customer의 기본 키를 order.customer_id와 일치시켜 customer라는 뷰를 order라는 Explore에 조인합니다.
explore: order {
join: customer {
foreign_key: customer_id
}
}
order 뷰를 통해 customer 뷰를 order_items Explore에 조인합니다. customer의 기본 키를 order.customer_id와 일치시키고 order의 기본 키를 order_items.order_id와 일치시킵니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: customer {
foreign_key: order.customer_id
}
}
order 및 inventory_item이라는 뷰를 order_items라는 Explore에 조인합니다. order의 기본 키를 order_items.order_id와 일치시키고 inventory_item의 기본 키를 order_items.inventory_id와 일치시킵니다.
explore: order_items {
join: order {
foreign_key: order_id
}
join: inventory_item {
foreign_key: inventory_id
}
}
일반 과제
foreign_key은 열 이름이 아닌 측정기준 이름을 참조해야 합니다.
foreign_key 매개변수는 기본 SQL 데이터베이스의 열 이름이 아닌 측정기준 이름만 사용합니다. 측정기준 이름과 열 이름이 동일한 경우가 많아 열 이름을 사용할 수 있다는 잘못된 결론을 내릴 수 있습니다.
foreign_key로 조인된 뷰에 기본 키가 정의되어 있어야 합니다.
foreign_key가 올바르게 작동하려면 조인된 뷰의 측정기준 중 하나가 해당 뷰의 기본 키로 정의되어야 합니다. 기본 키는 primary_key 매개변수를 통해 정의됩니다.
단일 측정기준만 기본 키로 정의할 수 있으므로 다중 열 기본 키가 있는 뷰에는 foreign_key를 사용할 수 없습니다. 이러한 경우에는 sql_on를 대신 사용해야 합니다.
알아 두어야 할 사항
Looker에서 참여하는 방법은 foreign_key뿐만이 아닙니다.
foreign_key로는 일부 조인 관계를 설정할 수 없습니다. 예를 들어 조인이 조인된 뷰의 기본 키를 사용하지 않거나 여러 조건이 조인의 일부여야 할 수 있습니다. 이러한 상황에서는 대신 sql_on를 사용하세요.