sql_table_name (뷰용)

이 페이지에서는 의 일부인 sql_table_name 매개변수를 설명합니다.

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

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

용도

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

결제 가능
데이터베이스의 테이블 이름

특수 규칙
  • 데이터베이스 연결 내에서 테이블에 액세스할 수 있어야 합니다.
  • 테이블이 다른 스키마에 있는 경우 스키마를 지정해야 합니다.
  • 테이블이 다른 데이터베이스에 있는 경우 데이터베이스와 스키마를 지정해야 하며 다른 데이터베이스는 같은 머신에 있고 동일한 SQL 언어에 있어야 합니다.

정의

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 ;;
}

또한 데이터베이스 사용자의 기본 검색 경로에 없는 데이터베이스 또는 스키마를 기반으로 해야 하는 경우도 있습니다. 그런 다음, 다음과 같이 참조할 수 있습니다.

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

제휴 조인

서로 다른 데이터베이스의 두 테이블을 조인하는 것을 제휴 조인이라고 합니다. 두 데이터베이스가 동일한 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 언어에 있는 데이터베이스를 조인하려면 단일 소스에서 모든 데이터를 가져올 수 있도록 한 데이터베이스를 다른 데이터베이스에 복제하는 것이 좋습니다.

별도의 머신에 있는 두 개의 MySQL 데이터베이스에서 조인하려면 CONNECTIONFEDERATED 테이블을 만들어 두 데이터베이스 연결에서 통합 조인을 실행하면 됩니다. 기본적으로 MySQL 데이터베이스에 있는 다른 서버의 테이블에 대한 연결을 모두 설정합니다. 자세한 내용은 이 MySQL 문서를 참조하세요.

Examples

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

view: customers {
  sql_table_name: customer_1 ;;
}

customers 뷰가 analytics 스키마의 customer_1 테이블을 사용하도록 합니다.

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

일반 과제

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

viewsexplore 또는 join 매개변수로 참조되며, 이는 차례로 모델에서 참조됩니다. 사용되는 데이터베이스 연결이 모델에 따라 결정됩니다 (모델의 connection 참조). 데이터베이스 연결 자체는 Looker의 관리 섹션에 정의됩니다. sql_table_name 매개변수에서 테이블을 참조하는 경우 연결된 연결 내에서 테이블에 액세스할 수 있어야 합니다.

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

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

sql_table_name: [Customers.PaymentInfo] ;;

언어에 큰따옴표 또는 작은따옴표가 필요한 경우 해당 문자를 대괄호로 묶어야 합니다.