sql_table_name (뷰)

이 페이지에서는 에 속하는 sql_table_name 매개변수를 언급합니다.

sql_table_namesql_table_name (조인용) 매개변수 문서 페이지에 설명된 대로 조인의 일부로도 사용할 수 있습니다.

sql_table_name은 Explore의 일부로도 사용할 수 있으며, 이에 대한 설명은 sql_table_name (Explore용) 매개변수 문서 페이지를 참고하세요.

사용

view: view_name {
  sql_table_name: table_name ;;
}
계층 구조
sql_table_name
기본값
뷰의 이름

수락
데이터베이스의 테이블 이름

특별 규칙

정의

sql_table_name 파라미터는 에서 쿼리할 데이터베이스의 테이블을 지정합니다.

파생 테이블을 기반으로 뷰를 만들려면 sql_table_name 매개변수를 사용하지 마세요. 대신 derived_table 문서 페이지에 설명된 derived table 매개변수를 사용하세요. 뷰 파일에 sql_table_namederived_table이 모두 있으면 Looker IDE에서 오류가 반환됩니다.

뷰에 sql_table_name 또는 derived_table 매개변수가 포함되어 있지 않으면 Looker는 뷰가 데이터베이스 테이블을 기반으로 하고 데이터베이스 테이블의 이름이 의 이름과 일치한다고 가정합니다. 즉, 다음과 같습니다.

view: my_name { ... }

다음과 논리적으로 동일합니다.

view: my_name {
  sql_table_name: my_name ;;
}

이 기본 동작으로 대체하고 sql_table_name를 사용하지 않는 것이 일반적입니다. 하지만 유용할 수 있는 주요 상황이 있습니다. 먼저, 지저분한 테이블 이름을 정리하는 등 기본 테이블과 다른 이름을 뷰에 지정하고 싶을 수 있습니다.

view: orders {
  sql_table_name: prod_orders_2 ;;
}

또한 데이터베이스 사용자의 기본 검색 경로에 없는 데이터베이스나 스키마를 기반으로 뷰를 만들어야 하는 경우도 있습니다. 그런 다음 다음과 같이 <schema_name>.<table_name> 형식을 사용하여 테이블 이름을 범위 지정할 수 있습니다.

view: desired_view_name {
  sql_table_name: database_name.schema_name.table_name ;;
}

범위 지정 테이블 이름

테이블 이름만 사용하여 테이블을 참조하면 Looker는 Looker 관리자가 데이터베이스 연결의 연결 설정에서 구성한 기본 검색 경로 (데이터베이스 및 스키마)를 사용합니다. 자세한 내용은 이 페이지의 고려사항 섹션을 참고하세요.

데이터베이스 사용자의 기본 검색 경로에 없는 다른 데이터베이스 및 스키마의 테이블을 참조해야 하는 경우 <database_name>.<schema_name>.<table_name> 형식을 사용하여 테이블 이름을 범위 지정하여 다른 데이터베이스 또는 스키마를 가리킬 수 있습니다.

  • 다른 스키마의 테이블을 참조하려면 이 페이지의 에 표시된 것처럼 <schema_name>.<table_name>를 사용하세요.
  • 다른 데이터베이스의 테이블을 참조하려면 전체 <database_name>.<schema_name>.<table_name>를 사용합니다.

Google BigQuery 연결의 경우 <project_name>.<dataset_name>.<table_name> 형식을 사용하여 테이블 이름을 범위 지정하여 다른 프로젝트 및 데이터 세트의 테이블을 참조할 수 있습니다. 자세한 내용은 Google BigQuery 연결 문서 페이지를 참고하세요.

제휴 조인

서로 다른 데이터베이스의 두 테이블을 조인하는 것을 제휴 조인이라고 합니다. 두 데이터베이스가 동일한 SQL 언어에 있고, 언어가 페더레이션 조인을 지원하며, Looker의 동일한 연결에서 두 데이터베이스에 모두 액세스할 수 있는 경우 Looker를 사용하여 페더레이션 조인을 실행할 수 있습니다. 데이터베이스 구성에 따라 테이블이 동일한 물리적 머신에 있어야 할 수도 있습니다.

이러한 조건에서 뷰의 sql_table_name 매개변수에 각 테이블의 데이터베이스 이름을 지정하여 제휴 조인을 만들 수 있습니다.

view: view_1 {
  sql_table_name: database_name.table_1 ;;
}

view: view_2 {
  sql_table_name: another_database_name.table_2 ;;
}

그런 다음 sql_on 파라미터를 사용하여 이러한 뷰를 조인합니다.

explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
  }
}

SQL 언어가 다른 데이터베이스를 조인하려면 단일 소스에서 모든 데이터를 가져올 수 있도록 한 데이터베이스를 다른 데이터베이스로 복제하는 것이 좋습니다.

예시

이 예시에서는 customers 뷰가 기본 스키마의 customer_1 테이블을 사용하도록 합니다.

view: customers {
  sql_table_name: customer_1 ;;
}

이 예에서는 스키마 이름을 포함하도록 테이블 이름을 범위 지정하여 (<schema_name>.<table_name> 형식 사용) analyticscustomer_1 테이블을 기반으로 customers 뷰를 만듭니다.

view: customers {
  sql_table_name: analytics.customer_1 ;;
}

고려사항

view에서 참조하는 테이블은 현재 연결에서 액세스할 수 있어야 합니다.

sql_table_name 매개변수가 view 객체 내에서 사용되면 해당 view 객체는 explore 객체에서 참조될 수 있으며, 이 객체는 model 객체에서 참조됩니다. 모델 객체에는 정의된 데이터베이스 connection이 있습니다. sql_table_name 파라미터에서 데이터베이스 테이블을 참조하는 경우 모델 파일에 지정된 연결 내에서 테이블에 액세스할 수 있어야 합니다.

기본 데이터베이스스키마 (또는 Google BigQuery의 경우 결제 프로젝트데이터 세트)는 데이터베이스 연결을 위해 Looker 관리자가 데이터베이스에 Looker 연결을 만들 때 정의합니다.

친숙하지 않은 표 이름에는 추가 형식이 필요할 수 있습니다.

일부 다이얼렉트에서는 지원되지 않는 문자가 포함된 표 이름('친숙하지 않은' 표 이름이라고도 함)을 대괄호, 큰따옴표 또는 작은따옴표로 묶어야 합니다. 예를 들어 테이블 이름 Customers.PaymentInfo에는 테이블 이름에 마침표가 포함되어 있어 스키마 Customers의 테이블 PaymentInfo으로 해석될 수 있습니다. 이 문제를 해결하려면 방언에 대괄호가 필요한 경우 다음과 같이 테이블 이름을 대괄호로 묶으면 됩니다.

sql_table_name: [Customers.PaymentInfo] ;;

방언에 큰따옴표나 작은따옴표가 필요한 경우 해당 문자의 대괄호를 대체합니다.