사용
view: view_name {
dimension: field_name {
primary_key: yes
}
}
|
계층 구조
primary_key |
가능한 필드 유형
측정기준
수락
불리언 (예 또는 아니요)
|
정의
primary_key 매개변수는 측정기준이 뷰의 기본 키임을 지정합니다. 기본값은 false입니다. 예를 들면 다음과 같습니다.
dimension: id {
primary_key: yes
sql: ${TABLE}.id ;;
}
primary_key 파라미터에는 다음과 같은 특성이 있습니다.
- Looker가 불필요한
GROUP BY절을 방지하는 데 도움이 됩니다. foreign_key매개변수가 올바르게 작동하는 데 필요합니다.- 대칭 집계가 올바르게 작동하는 데 필요합니다. 측정값 (집계)으로 보기를 조인할 때는 집계를 올바르게 계산하기 위해 조인의 각 측면에
primary_key을 정의해야 합니다.
primary_key 파라미터에는 다음과 같은 제한사항이 있습니다.
- 각 보기에서 두 개 이상의 필드에 이 매개변수를 추가할 수 없습니다.
timeframe을 두 개 이상 지정하는dimension_group에는 이 매개변수를 추가할 수 없습니다.
복합 기본 키 만들기
여러 열로 구성된 기본 키가 있는 경우 이러한 열을 연결하는 측정기준을 만든 다음 이를 기본 키로 선언할 수 있습니다. 예를 들면 다음과 같습니다.
dimension: primary_key {
primary_key: yes
sql: CONCAT(${TABLE}.promotion_id, ${TABLE}.sku) ;;
}
CONCAT는 MySQL과 같은 일부 데이터베이스에서 작동하지만 다른 데이터베이스에는 다른 동등한 항목이 있을 수 있습니다. 예를 들어 Redshift는||을 연결 연산자로 사용합니다.
영구 파생 테이블 (PDT)을 사용하여 기본 키 만들기
고유한 행을 기본 키로 식별할 수 있는 합당한 방법이 없는 경우 영구 파생 테이블 (PDT)을 만들어 고유 ID를 생성할 수 있습니다. 예를 들어 다음 파생 테이블은 테이블의 행 번호를 기본 키로 사용합니다.
view: transaction {
# sql_table_name: warehouse.transaction
derived_table: {
sql: SELECT ROW_NUMBER as transaction_pk, * FROM warehouse.transaction ;;
sql_trigger_value: SELECT CURRENT_DATE ;;
indexes: [customer_id, product_id, salesperson_id, transaction_date]
}
dimension: transaction_pk {
type: number
primary_key: yes
hidden: yes
sql: ${TABLE}.transaction_pk ;;
...
}
}
확장 뷰에서 새 기본 키 정의
extends 매개변수를 사용하여 뷰를 확장하면 기본 뷰의 기본 키가 새 뷰로 확장됩니다.
기본 키를 새 측정기준으로 변경하려면 새 뷰의 원래 측정기준 정의에 primary_key: no를 추가하고 새 뷰의 새 측정기준 정의에 primary_key: yes를 추가합니다.
view: base {
dimension: old_primary_key {
primary_key: yes
sql: ${TABLE}.id ;;
}
}
view: new {
extends: base
dimension: old_primary_key {
primary_key: no
}
dimension: new_primary_key {
primary_key: yes
sql: ${TABLE}.new_id ;;
}
}