이 페이지에서는 고급 주제를 다루고 있으며 독자가 LookML에 대해 잘 알고 있다고 가정합니다.
확장은 DRY(직접 반복하지 않음) LookML 코드를 유지할 수 있는 중요한 LookML 기능입니다. Looker에서 Explore, 뷰, LookML 대시보드는 모두 다음 예시와 같이 모델 파일 내에서 extends
매개변수를 사용하여 확장할 수 있습니다.
explore: orders { view_name: orders join: users { type: left_outer sql_on: %{orders.user_id} = ${users.id} ;; relationship: many_to_one } } explore: transactions { extends: [orders] }
이 예시에서는 transactions
Explore 정의 내에서 extends
매개변수를 사용하여 orders
탐색을 확장합니다.
이 페이지에서는 기본 객체로 확장되는 객체를 참조하며, 확장을 수행하는 객체를 확장 객체라고 합니다.
LookML 객체를 확장하는 것은 매우 간단한 프로세스입니다. 자세한 내용은 확장을 통해 코드 재사용 문서 페이지를 참조하세요. 그러나 LookML 참조 오류와 원치 않는 객체 중복을 유발할 수 있는 몇 가지 고급 사용 사례가 있습니다. 이 페이지에서는 다른 뷰를 확장하는 뷰를 기반으로 Explore를 확장하면 LookML 참조 오류가 발생할 수 있는 방법과 이러한 문제를 해결하는 데 도움이 되는 팁을 제공합니다.
사용 사례: 확장 뷰에 따라 Explore 확장
events
Explore를 확장하려고 하고 확장 Explore의 기반이 되는 뷰가 기본 events
뷰를 확장하는 뷰의 필드를 사용하려고 한다고 가정해 보겠습니다. 이 예시에서 events_extended
Explore는 다음 LookML 예시와 같이 extends
Explore를 확장합니다.
explore: events { view_name: events join: users { type: left_outer sql_on: ${events.user_id} = ${users.id} ;; relationship: many_to_one } } explore: events_extended { extends: [events] join: orders { sql_on: ${events_extended.test_id} = ${orders.id} ;; relationship: many_to_one }
이 예시에서는 users
뷰가 기본 events
Explore에 조인되고 orders
뷰는 Explore 탐색 events_extended
에 조인됩니다. 하지만 기본 events
Explore에 정의된 조인은 기본 events
뷰의 필드인 events.user_id
를 참조합니다. 한편 확장 events_extended
Explore에 정의된 조인은 events_extended.test_id
필드를 참조합니다. 여기서 events_extended
는 events
뷰를 기반으로 하는 확장 뷰의 이름입니다. events_extended
Explore에 정의된 조인에서 참조되는 test_id
필드는 다음과 같이 확장 events_extended
뷰에 정의됩니다.
include: "events.view.lkml" view: events_extended { extends: [events] dimension: test_id {}
events_extended
Explore에 정의된 조인이 확장 뷰의 이름 events_extended
를 참조하기 때문에 LookML 검사기에 inaccessible view
오류가 표시됩니다.
이 문제를 해결하려면 확장 Explore의 LookML에 from
매개변수를 추가하고 해당 값을 확장 뷰의 이름 events_extended
로 설정하면 됩니다. from
매개변수는 생성된 SQL에서 원래 테이블 이름의 별칭을 FROM schema.name AS alias
로 지정합니다.
Explore 수준에서 from
매개변수를 적용할 때 유일하게 권장되는 사용 사례입니다.
기본 Explore(events
)에서 조인 참조를 중단하지 않고 확장 뷰(events_extended
)에서 가져오려면 확장 뷰에 매핑되는 from
매개변수를 추가하면 됩니다.
explore: events_extended { extends: [events] from: events_extended join: orders { relationship: many_to_one sql_on: ${events.test_id} = ${orders.id} ;; } }
이 예시에서 확장 Explore의 LookML에 LookML from: events_extended
를 적용하면 확장 Explore에서 기본 뷰(events
)를 계속 참조하면서 해당 뷰의 확장 버전(events_extended
)에서 가져올 수 있도록 해당 참조를 리디렉션할 수 있습니다.
from
매개변수를 사용하면 조인 프리픽스에서 기본 뷰 이름 events
를 계속 참조할 수 있지만, 이러한 참조는 events
의 모든 필드와 새로운 test_id
필드가 포함된 확장 뷰 events_extended
에서 가져옵니다.