다른 프로젝트에서 파일 가져오기

로컬 프로젝트 가져오기 기능은 로컬 LookML 프로젝트에서 파일을 가져오는 실험용 실험실 기능입니다. 실험 기능은 완전히 개발되지 않았으며 크게 변경되거나 완전히 삭제될 수 있습니다.

원격 또는 로컬 LookML 프로젝트에서 파일을 가져오는 것은 현재 모델 현지화와 호환되지 않습니다.

다른 LookML 프로젝트 및 외부 저장소에서 현재 프로젝트로 파일을 가져올 수 있습니다. 따라서 둘 이상의 프로젝트에서 모델 파일, 뷰 파일, 기타 파일을 사용할 수 있습니다.

이와 관련된 몇 가지 사용 사례가 있습니다. 예를 들면 다음과 같습니다.

  • 직접 변경하지 않아도 설치된 Looker 블록 위에 빌드됩니다. Looker에서 블록을 변경하면 블록에 추가한 모든 LookML이 별도의 저장소에 보관되므로 변경사항을 쉽게 가져올 수 있습니다.

  • 데이터베이스 스키마를 기반으로 자동 생성된 기본 프로젝트를 유지합니다. 모든 맞춤 측정기준, 측정 등을 자동 생성된 프로젝트에서 모든 LookML을 가져오는 별도의 프로젝트에 배치할 수 있습니다. 모든 커스텀 LookML을 덮어쓰지 않고 데이터베이스 스키마가 변경될 때 기본 프로젝트를 정기적으로 다시 생성할 수 있습니다.

  • 공유 객체를 단일 프로젝트에 캡슐화한 후 여러 다른 프로젝트로 가져옵니다. 예를 들어 여러 데이터베이스에 공통적인 테이블을 사용하는 경우 한 프로젝트에 뷰를 배치하고 한곳에 유지할 수 있습니다. 그런 다음 테이블을 여러 프로젝트로 가져와 다른 여러 프로젝트가 이를 활용하도록 합니다.

다른 프로젝트에서 파일을 가져오려면 다음 작업을 수행합니다.

  1. 프로젝트 매니페스트 파일을 만듭니다.
  2. 가져올 로컬 또는 원격 프로젝트를 지정합니다.
  3. 가져온 프로젝트의 파일을 확인합니다.
  4. 가져온 프로젝트의 파일을 포함합니다.

그러면 가져온 프로젝트의 파일에서 필드를 참조하고 상수 재정의를 허용하는 경우 가져온 프로젝트에 정의된 상수 값을 재정의할 수 있습니다.

프로젝트 매니페스트 파일 만들기

다른 프로젝트에서 파일을 가져오는 모든 프로젝트에는 프로젝트 매니페스트 파일이 있어야 합니다. 프로젝트에 매니페스트 파일이 아직 없는 경우 Looker IDE의 파일 브라우저 상단에 있는 + 아이콘에서 파일을 생성할 수 있습니다.

프로젝트를 가져오려면 매니페스트에서 지정하세요. 다음 섹션에 설명된 대로 로컬 또는 원격 프로젝트를 지정할 수 있습니다.

로컬 프로젝트 가져오기

로컬 파일을 프로젝트로 가져올 수 있으려면 Looker 관리자가 로컬 프로젝트 가져오기 실험실 기능을 사용 설정해야 합니다.

로컬 프로젝트 가져오기는 가져온 프로젝트가 동일한 Looker 인스턴스에 있는 경우에만 사용할 수 있습니다. 또한 개발자에게는 가져온 프로젝트의 모델에 대한 모델 권한이 있는 것이 좋습니다. 개발자가 가져온 프로젝트에서 모델 권한을 갖고 있다면 버전 관리가 동적입니다. 즉, 가져온 프로젝트의 변경사항이 해당 프로젝트를 가져오는 프로젝트에 즉시 영향을 미칩니다. 이를 통해 개발자는 프로덕션으로 푸시하기 전에 두 프로젝트 모두에서 변경사항을 검증할 수 있습니다. 또한 두 프로젝트에 모델 권한이 있는 개발자의 경우 가져온 프로젝트 파일에 개발자의 개발 모드 상태가 반영됩니다. 따라서 개발자가 개발 모드인 경우 Looker IDE에 가져온 프로젝트의 개발 모드가 표시됩니다. 개발자가 프로덕션 모드인 경우 Looker IDE에 가져온 프로젝트의 프로덕션 모드가 표시됩니다.

로컬에서 가져오려면 project_name 매개변수를 사용하여 현재 프로젝트를 지정하세요. 하나 이상의 local_dependency 매개변수를 사용하여 가져올 프로젝트를 지정합니다.

# This project
project_name: "my_project"

# The project to import
local_dependency: {
  project: "my_other_project"
}

다음 시나리오에서는 로컬 프로젝트 가져오기 대신 원격 프로젝트 가져오기를 사용해야 합니다.

  • 개발자에게 가져온 프로젝트의 모델에서 모델 권한이 없습니다. 이 경우 Looker는 가져온 프로젝트의 프로덕션 모드를 클론하여 IDE에 파일의 정적 버전을 표시합니다. 이 정적 버전은 개발 모드 파일을 표시하지 않으며, 개발자에게 알리지 않고 현재 프로덕션 모드와 최신 버전이 아닐 수도 있습니다. 원격 제품 가져오기를 사용하고 원격 프로젝트에 Git 분기나 Git 출시 버전을 지정하는 ref를 제공하는 것이 좋습니다. 이렇게 하면 Looker가 원격 프로젝트에서 새 커밋을 자동으로 감지하므로 개발자에게 알림이 전송되어 최신 버전의 원격 프로젝트 파일을 가져올 수 있습니다.
  • 개발자는 항상 가져온 프로젝트의 프로덕션 버전으로 작업해야 합니다.
  • 개발자는 가져온 프로젝트의 파일에 대해 정적 버전을 사용해야 합니다.

원격 프로젝트 가져오기

원격 가져오기에서는 가져온 프로젝트가 같은 인스턴스에 있지 않아도 됩니다. 그 대신 프로젝트는 원격 Git 저장소를 통해 가져옵니다.

원격 저장소를 가져오려면 remote_dependency 매개변수를 사용하여 원격 저장소에 대한 정보를 제공합니다. remote_dependency 매개변수는 다음 정보와 하위 매개변수를 사용합니다.

  • 가져온 프로젝트의 이름으로 원하는 이름을 지정할 수 있습니다. 아래 예시에서 프로젝트 이름은 ga_360_block입니다. include 문에서 이 이름을 사용하여 LookML 프로젝트에서 가져온 파일을 참조합니다. 이 이름은 Looker IDE의 imported_projects 폴더 아래에 있는 폴더 이름으로도 사용됩니다.
  • url 하위 매개변수: 외부 Git 저장소의 주소를 지정합니다. 저장소의 기본 URL을 사용합니다.
  • ref 하위 매개변수: Git 분기에서 Git 분기, Git 출시 태그 또는 커밋의 SHA를 지정합니다. 정적 버전 관리를 원하는 경우 커밋된 SHA를 지정할 수 있습니다. 그러면 가져온 프로젝트의 변경사항이 프로젝트에 자동으로 반영되지 않습니다 (Looker 블록의 경우 이 옵션이 좋음). 또는 Looker에서 원격 프로젝트의 새 커밋을 자동으로 감지하도록 하려면 Git 분기 또는 Git 출시 태그를 지정하면 됩니다. 자세한 내용은 이 페이지의 원격 프로젝트의 새 버전 자동 감지 섹션을 참조하세요.
  • override_constant 하위 매개변수: 가져온 프로젝트에 정의된 상수 값을 재정의할 수 있는 선택적 하위 매개변수입니다.

다음은 프로젝트 매니페스트 파일의 remote_dependency 매개변수 예시입니다. 이 예에서는 HTTPS 연결을 사용합니다.

remote_dependency: ga360_block {
  url: "https://github.com/llooker/google_ga360"
  ref: "master"
  override_constant: connection {
    value: "importing_project_connection"
  }
}

SSH를 사용할 수도 있습니다.

remote_dependency: ga360_block {
  url: "git@github.com:llooker/google_ga360.git"
  ref: "master"
  override_constant: connection {
    value: "importing_project_connection"
  }
}

원격 종속 항목을 추가한 후 원격 프로젝트의 가져오기 사용자 인증 정보를 구성해야 할 수도 있습니다. 이 페이지의 비공개 원격 저장소에 대한 사용자 인증 정보 구성 섹션을 참조하세요.

원격 프로젝트의 새 버전 자동 감지

매니페스트 파일에서 remote_dependencyref 하위 매개변수에 Git 브랜치 또는 Git 출시 태그를 지정하면 원격 프로젝트에서 새 커밋을 자동으로 감지하도록 할 수 있습니다.

예를 들어 다음은 원격 종속 항목입니다. 여기서 master 브랜치는 ref 하위 매개변수에 지정됩니다.

remote_dependency: exchange_rate {
  url: "https://github.com/llooker/datablocks-exchangerate.git"
  ref: "master"
}

이후 master 브랜치가 새 커밋으로 업데이트되면 Looker가 변경사항을 자동으로 감지합니다.

다음은 v1.0 출시 태그가 지정된 예입니다.

remote_dependency: e_faa_original {
  url: "https://github.com/llooker/google_ga360"
  ref: "v1.0"
}

지정한 ref 유형과 상관없이 커밋 SHA를 포함하여 IDE는 프로젝트에 remote_dependency 매개변수를 추가할 때 Update Dependencies 버튼을 표시합니다.

버튼을 클릭하여 원격 프로젝트 파일을 가져옵니다. 프로젝트에 추가한 첫 번째 원격 종속 항목인 경우 종속 항목을 업데이트하면 Looker에서 매니페스트 잠금 파일을 생성하라는 메시지도 표시됩니다. Looker는 매니페스트 잠금 파일을 사용하여 원격 프로젝트의 버전을 추적합니다.

ref 하위 매개변수에 Git 분기 또는 Git 출시 태그를 지정하면 Looker IDE가 새로고침될 때마다 Looker가 새 커밋을 확인합니다. 이 작업은 Looker 개발자가 개발 모드로 전환하거나 IDE에서 Git 작업을 실행하거나 브라우저를 새로고침할 때 발생합니다.

새 커밋이 있으면 Looker는 IDE의 Git 작업 패널에 Update Dependencies 옵션을 표시합니다.

Update Dependencies 옵션을 선택하여 프로젝트로 최신 원격 프로젝트 파일을 가져옵니다.

최신 파일이 있으면 LookML을 검사하여 프로젝트의 모든 참조가 업데이트된 원격 프로젝트 파일과 호환되는지 확인할 수 있습니다. 그런 다음 손상된 참조를 수정하고 사용자에게 다운타임 없이 변경사항을 배포할 수 있습니다.

매니페스트 잠금 파일

Looker는 매니페스트 잠금 파일을 사용하여 가져온 원격 프로젝트의 버전을 추적합니다.

Lock 파일은 Looker에서 자동으로 관리되므로 Looker 개발자는 매니페스트 잠금 파일을 만들거나 수정할 필요가 없습니다.

매니페스트 잠금 파일은 각 원격 프로젝트를 표시하며, urlref 하위 매개변수가 있는 remote_dependency 항목으로 표시됩니다.

  • remote_dependency 매개변수는 Looker 개발자가 매니페스트 파일에 지정한 원격 프로젝트의 이름을 나타냅니다.
  • url 하위 매개변수는 매니페스트 개발자가 Looker 개발자가 지정한 외부 Git 저장소의 주소를 나타냅니다.
  • ref 하위 매개변수는 Looker가 프로젝트에서 사용하는 프로젝트의 버전 (커밋 SHA로 표시)을 보여줍니다.
    • 매니페스트 프로젝트에서 Git 분기의 ref 또는 Git 출시 태그를 사용하여 원격 프로젝트를 정의한 경우 ref 매개변수는 프로젝트에서 현재 사용 중인 파일 버전 (원격 프로젝트 커밋 SHA)을 표시합니다. 원격 프로젝트에 새 커밋이 있는 경우 Looker에서 IDE에 Update Dependencies 버튼을 표시하여 최신 원격 프로젝트 파일을 가져올 수 있습니다. 그런 다음 매니페스트 잠금 파일의 ref 값이 업데이트되어 해당 브랜치 또는 출시 태그의 최신 커밋 SHA가 표시됩니다.
    • 원격 프로젝트가 특정 커밋 SHA의 ref를 사용하여 매니페스트 파일에 정의된 경우, 매니페스트 잠금 파일의 ref 매개변수는 동일한 커밋 SHA가 됩니다.

비공개 원격 저장소의 사용자 인증 정보 구성

사용자 인증 정보 가져오기 설정에는 프로젝트 매니페스트 파일에 정의된 각 원격 저장소의 URL 목록, 저장소에 사용되는 인증 유형 (https 또는 ssh), Looker가 저장소에 성공적으로 연결할 수 있는지 여부가 표시됩니다.

사용자 인증 정보 추가하기

저장소에 사용자 인증 정보를 추가하려면 다음 안내를 따르세요.

  1. 저장소 이름 위로 마우스를 가져가면 테스트구성 버튼이 표시되고 구성을 클릭합니다.

  2. Looker에서 원격 저장소의 사용자 인증 정보를 구성할 수 있는 대화상자가 표시됩니다. 대화상자에 특정 저장소에 필요한 사용자 인증 정보 유형이 표시됩니다.

    • 저장소에 인증을 위해 사용자 이름과 비밀번호(또는 개인 액세스 토큰)가 필요한 경우 사용자 이름과 비밀번호 또는 토큰을 입력하고 Save Changes(변경사항 저장)를 클릭합니다.

    • 저장소에 SSH 키가 필요한 경우(예: 위의 예시 참고) Looker는 로컬 SSH 키를 보여주는 대화상자를 표시합니다. 키 복사를 클릭하여 SSH 키를 클립보드에 복사하고 저장소의 키 목록에 추가합니다.

    원격 프로젝트가 LookML 저장소인 경우, 해당 LookML 프로젝트가 원래 Git에 연결되었을 때 저장소에 추가된 SSH 키와 같은 기존 SSH 키가 이미 있을 수 있습니다. 새 SSH 키를 저장소에 추가할 때 기존 SSH 키를 그대로 둡니다.

  3. 사용자 인증 정보를 저장한 후 테스트 버튼을 클릭하여 Looker의 저장소 액세스 권한을 테스트합니다.

    연결 테스트를 통과하고 저장소에 연결하면 사용자 인증 정보 가져오기 섹션의 저장소 이름 옆에 녹색 체크표시가 나타납니다.

사용자 인증 정보 수정

저장소의 사용자 인증 정보를 수정하려면 다음 안내를 따르세요.

  1. 사용자 인증 정보를 이미 구성한 저장소에 마우스를 가져가면 테스트수정 버튼이 표시되고 수정을 클릭합니다.

  2. 저장소에 인증을 위해 사용자 이름 및 비밀번호 (또는 개인 액세스 토큰)가 필요한 경우 사용자 인증 정보 지우기를 클릭한 다음 확인 팝업에서 예, 사용자 인증 정보를 지웁니다를 클릭합니다.

  3. Git Authentication 구성 팝업에 새 사용자 인증 정보를 입력하고 변경사항 저장을 클릭합니다.

가져온 프로젝트의 파일 보기

Looker IDE에서 가져온 프로젝트 파일을 왼쪽 탐색창의 imported_projects 폴더에 표시합니다. 가져온 프로젝트 파일을 클릭하여 콘텐츠를 볼 수 있습니다.

로컬 프로젝트원격 프로젝트의 파일이 imported_projects 폴더에 나열됩니다.

IDE에서 파일을 일괄 수정할 때는 가져온 프로젝트 파일이 표시되지 않으므로 수정할 수 없습니다.

또한 객체 브라우저에서 활성 프로젝트에 포함된 가져온 프로젝트 파일의 객체를 볼 수 있습니다. Looker IDE의 탐색 메뉴에서 객체 브라우저에 액세스합니다.

또한 develop 권한이 있는 사용자는 메타데이터 패널을 사용하여 가져온 프로젝트의 객체에 대한 정보(예: 객체가 정의된 가져온 파일로 이동하는 링크)를 볼 수 있습니다. 자세한 내용은 LookML 객체의 메타데이터 문서 페이지를 참고하세요.

가져온 프로젝트의 파일 포함

모델 파일의 include 매개변수는 해당 모델에서 사용할 수 있는 프로젝트 파일을 지정합니다. 매니페스트 파일에서 로컬 또는 원격 가져온 프로젝트를 지정하면 모델 파일에서 include 매개변수를 사용하여 가져온 프로젝트의 파일을 지정할 수 있습니다. 매니페스트 파일에 프로젝트가 나열된 파일만 포함할 수 있습니다.

다른 프로젝트의 파일을 include하려면 슬래시(//) 두 개와 가져온 프로젝트의 이름을 사용하여 파일 이름을 사용합니다. 가져온 프로젝트 이름 뒤에 슬래시(/)를 넣고 포함할 파일의 전체 경로를 따릅니다.

예를 들어 다음 include 명령어는 가져온 e_flights 프로젝트의 users 뷰 파일과 가져온 e_commerce 프로젝트의 orders 뷰를 나타냅니다.

include: "//e_flights/views/users.view.lkml"
include: "//e_commerce/public/orders.view.lkml"

IDE 폴더를 사용 설정한 경로를 지정하는 방법에 대한 자세한 내용은 IDE에서 폴더 사용하기 문서 페이지의 경로 구문 섹션을 참고하세요.

와일드 카드를 사용하여 여러 파일을 포함할 수 있습니다. 예를 들어 가져온 e_flights 프로젝트의 /views/ 디렉터리에 모든 뷰 파일을 포함하려면 다음 안내를 따르세요.

include: "//e_flights/views/*.view"

또한 와일드 카드를 사용하여 특정 디렉터리 수준으로 범위를 지정하거나 가져온 프로젝트의 재귀 디렉터리를 지정할 수 있습니다.

include: "//e_flights/**/*.view.lkml"
include: "//e_commerce/*/*.view.lkml"

IDE 폴더를 사용한 와일드 카드를 사용하는 방법에 대한 자세한 내용은 IDE에서 폴더 사용하기 문서 페이지의 와일드 카드 예 섹션을 참고하세요.

모델 파일 포함

다른 프로젝트의 모델 파일은 포함할 수 없습니다. 대신 프로젝트 간에 탐색을 재사용, 구체화 또는 확장하려면 가져온 프로젝트에서 별도의 탐색 파일을 만든 후 해당 프로젝트를 다른 프로젝트에 포함할 수 있습니다. 자세한 내용은 include 매개변수 문서 페이지의 모델에 탐색 포함 섹션을 참조하세요.

다른 파일이 포함된 파일 포함

다른 파일이 포함된 파일을 포함하면 파일이 포함된 다음 프로젝트로 전달되기 전에 모든 포함 항목이 확인됩니다.

예를 들어 현재 프로젝트에서 다른 프로젝트(proj_A)에서 파일(A)을 가져오고 가져온 파일에 프로젝트 proj_BB가 포함된 include 매개변수가 포함된 경우, A 파일을 현재 프로젝트로 가져오기 전에 A 파일이 A 파일에 포함됩니다.

데이터 파일 가져오기

프로젝트의 데이터 섹션에 저장된 파일은 가져올 수 없습니다. map_layer 매개변수와 같이 가져온 프로젝트의 데이터 파일을 참조하려면 파일의 전체 경로와 파일 이름을 사용합니다. 예를 들면 다음과 같습니다.

map_layer: json_from_imported_project {
  file: "//path_to_imported_project/folder/filename.topojson"
  ...
}

가져온 프로젝트의 파일 참조

뷰 파일을 프로젝트로 가져온 후에는 ${view_name.field_name} 구문을 사용하여 뷰 파일이 해당 프로젝트의 네이티브인 것처럼 가져온 뷰의 필드를 참조할 수 있습니다. 예를 들어 프로젝트 매니페스트 파일에 ga_360_block 프로젝트를 가져왔고 모델 파일에 다음 include 문이 있다고 가정해 보겠습니다.

include: "//ga_360_block/ga_block.view"

${ga_block.hits_total} 구문을 사용하여 포함된 ga_block 뷰에서 hits_total 필드를 참조합니다.

가져온 프로젝트의 파일에서 상수 사용

LookML 상수를 사용하면 프로젝트 전체에서 재사용할 수 있는 프로젝트의 매니페스트 파일에 값을 정의할 수 있습니다. constant 매개변수의 export 하위 매개변수는 해당 상수를 참조하는 파일을 다른 프로젝트로 가져올 때 상수 값을 재정의할 수 있는지 지정합니다.

export 매개변수의 가능한 값은 다음과 같습니다.

  • none: export의 기본값입니다. 상수는 가져오기 프로젝트에서 재정의할 수 없습니다. 가져오기 프로젝트는 가져온 프로젝트의 매니페스트 파일에 지정된 상수 값을 사용합니다.
  • override_optional: 상수 값은 가져오기 프로젝트에서 재정의할 수 있습니다. 가져오는 프로젝트의 매니페스트 파일에 값이 제공되지 않으면 가져온 프로젝트의 원래 값이 사용됩니다.
  • override_required: 가져오기 프로젝트가 가져온 프로젝트의 매니페스트 파일에 원래 지정된 상수 값을 재정의해야 합니다. 가져오기 프로젝트에 새 상수 값이 제공되지 않으면 Looker에 오류가 표시됩니다.

상수를 참조하는 파일을 프로젝트로 가져올 때 프로젝트의 매니페스트 파일에서 local_dependency 또는 remote_dependencyoverride_constant 하위 매개변수를 사용하여 해당 상수에 새 값을 제공할 수 있습니다. 단, 이 상수의 원본 프로젝트는 exportoverride_optional 또는 override_required로 설정되어야 합니다. 가져온 프로젝트의 상수 값을 재정의하면 프로젝트에서 override_constant 매개변수와 함께 지정된 값을 사용합니다.

상수는 원래 정의된 프로젝트의 파일에서만 사용할 수 있습니다. 따라서 가져온 파일의 프로젝트에 정의된 상수는 가져온 프로젝트에서만 사용할 수 있고 가져오기 프로젝트에서 정의한 파일은 사용할 수 없습니다.

가져오기 프로젝트 파일에서 상수를 사용하려면 constant 매개변수를 사용하여 가져오기 프로젝트의 매니페스트 파일에서 새 상수를 정의해야 합니다. 이 방식으로 정의된 상수는 가져오기 프로젝트에 정의된 파일에만 사용할 수 있습니다.

예를 들어 단일 Looker 인스턴스에서 데이터베이스마다 별도의 프로젝트를 사용하여 여러 데이터베이스를 관리한다고 가정해 보겠습니다. 이 예에서는 각 데이터베이스에 대해 데이터 스키마가 동일하며, 분석을 한 번 정의하고 이를 각 데이터 세트에 적용하는 것이 목표라고 가정해 보겠습니다.

이 예에서 proj_core를 다른 프로젝트로 가져오려는 뷰를 정의한 기본 프로젝트가 있다고 가정해 보겠습니다. 또한 가져오려는 뷰 중 하나는 다음과 같이 정의되는 orders 뷰입니다.


view: orders {
  sql_table_name: "@{schema_name}.orders"
}

orders 뷰의 기반이 되는 스키마는 proj_core 매니페스트 파일에 정의된 schema_name 상수를 사용하여 sql_table_name 매개변수에 지정됩니다. 아래 예에서는 schema_name 상수가 export: override_required로 설정되므로 schema_name를 가져오는 모든 프로젝트는 override_constant 매개변수를 사용하여 값을 재정의해야 합니다.


constant: schema_name {
  value: "proj_core_schema"
  export: override_required
}

이 예시에서는 orders 뷰를 proj_a라는 로컬 프로젝트로 가져오려고 한다고 가정해 보겠습니다. proj_a의 데이터베이스에는 기본 프로젝트인 proj_coreorders 테이블과 동일한 구조를 가진 orders라는 테이블도 있습니다.

proj_coreproj_a는 같은 인스턴스에 있으므로 local_dependency를 사용하여 proj_aorders 뷰를 가져올 수 있습니다. 그런 다음 local_dependencyoverride_constant 하위 매개변수를 사용하여 proj_a 상수의 매니페스트 파일에서 proj_a_schema 스키마를 가리키도록 schema_name 상수를 업데이트할 수 있습니다.


project_name: "proj_a"

local_dependency: {
  project: "proj_core"
  override_constant: schema_name {
    value: "proj_a_schema"
  }
}

이 예시에서는 project_core에서 schema_name 상수가 export: override_required로 설정되어 있으므로 proj_a(가져오기 프로젝트)에서 값을 재정의하지 않으면 Looker에 오류가 표시됩니다.

proj_a에서 schema_name 상수를 재정의하면 새 뷰 파일을 만들고 필드를 처음부터 정의하지 않고 proj_coreorders 뷰에 정의한 필드를 사용할 수 있습니다. 이 예에서 orders 뷰는 프로젝트마다 다른 테이블에 해당합니다.

  • proj_core에서 orders 뷰는 데이터베이스의 proj_core_schema.orders 테이블을 기반으로 합니다.
  • proj_a에서 orders 뷰는 데이터베이스의 proj_a_schema.orders 테이블을 기반으로 합니다.