용도
view: view_name {
dimension: field_name {
primary_key: yes
}
}
dimension: field_name {
primary_key: yes
}
}
계층 구조
primary_key |
가능한 필드 유형
측정기준결제 가능
부울 (예 또는 아니요) |
정의
primary_key
매개변수는 측정기준이 뷰의 기본 키임을 지정합니다. 기본값은 false
입니다. 예를 들면 다음과 같습니다.
dimension: id {
primary_key: yes
sql: ${TABLE}.id ;;
}
primary_key
매개변수의 특성과 요구사항은 다음과 같습니다.
- 불필요한
GROUP BY
절을 피할 수 있도록 Looker를 지원합니다. foreign_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 ;;
...
}
}