PrestoDB 및 Trino

이 페이지에서는 Looker를 PrestoDB 또는 Trino에 연결하는 방법을 설명합니다.

네트워크 트래픽 암호화

Looker 애플리케이션과 데이터베이스 사이에 네트워크 트래픽을 암호화하는 것이 가장 좋습니다. 안전한 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려해 보세요.

데이터베이스에 대한 Looker 연결 만들기

Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요. 다음은 일부 설정에 대한 설명입니다.

  • 언어: PrestoDB 또는 Trino를 선택합니다.

    PrestoSQL이 Trino로 리브랜딩되었습니다. 352 이전 버전의 Trino를 사용하는 경우 Looker 언어 메뉴에서 PrestoSQL을 선택합니다.

  • 호스트: 데이터베이스 호스트 이름입니다.

  • 포트: 데이터베이스 포트입니다. 기본 포트는 8080입니다.

  • 데이터베이스: Presto 용어의 '카탈로그' 또는 '커넥터'입니다.

  • 사용자 이름: 쿼리를 실행할 사용자의 사용자 이름입니다.

    이 정보는 SSL이 사용 설정된 경우에만 데이터베이스 서버로 전송됩니다.

  • 비밀번호: 쿼리를 실행할 사용자의 비밀번호입니다.

    이 정보는 SSL이 사용 설정된 경우에만 데이터베이스 서버로 전송됩니다.

  • 스키마: 스키마가 지정되지 않은 경우 사용할 기본 스키마입니다.

  • 인증: 데이터베이스 계정 또는 OAuth를 선택합니다.

    • 데이터베이스 계정을 사용하여 Looker에 연결하는 데 사용할 데이터베이스 사용자 계정의 사용자 이름비밀번호를 지정합니다.
    • 연결에 OAuth를 구성하려면 OAuth를 사용합니다.
  • PDT 사용 설정: 이 전환 버튼으로 영구 파생 테이블(PDT)을 사용 설정합니다. 그러면 추가 PDT 필드와 연결에 대한 PDT 재정의 섹션이 표시됩니다.

  • 임시 데이터베이스: PDT를 쓸 스키마입니다. (버전 3.50에서는 Presto에 PDT 지원이 추가되었습니다. PDT 지원을 위해 Presto를 구성하는 방법에 대한 자세한 내용은 이 페이지의 PDT를 위한 PrestoDB 또는 Trino 구성 섹션을 참조하세요.)

  • 추가 JDBC 매개변수: PrestoDB JDBC 드라이버, Trino JDBC 드라이버, Starburst JDBC 드라이버의 모든 추가 매개변수입니다.

  • SSL: SSL 연결을 사용 설정하려면 선택합니다.

  • SSL 확인: 이 필드를 무시합니다. 모든 SSL 연결은 PrestoDB JDBC 매개변수, Trino JDBC 드라이버, Starburst JDBC 드라이버에 따라 다른 위치를 사용하도록 별도의 지침이 제공되지 않은 한 기본 Java 트러스트 저장소를 사용합니다. 추가 JDBC 매개변수 필드에 이러한 매개변수를 입력합니다.

제대로 연결되었는지 확인하려면 테스트를 클릭합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요.

이러한 설정을 저장하려면 연결을 클릭합니다.

연결 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요.

PDT용 PrestoDB 또는 Trino 구성

OAuth를 사용하는 연결에는 PDT가 지원되지 않습니다.

PDT 지원은 PrestoDB 또는 Trino에 사용하는 커넥터에 따라 다릅니다. 이 섹션에서는 스크래치 데이터베이스에 필요한 구성 설정을 설명합니다. 이 예시에서는 사용 중인 커넥터가 hive라고 가정합니다.

Hive 카탈로그 속성 파일에는 이 섹션에서 설명하는 몇 가지 구성 속성이 포함됩니다.

Presto가 Hive 메타스토어 결과를 캐시하고 Looker가 테이블을 즉시 볼 수 있어야 하므로 다음이 필요합니다.

hive.metastore-cache-ttl = 0s

Looker가 PDT를 삭제하고 이름을 바꿀 수 있어야 하므로 다음 두 속성이 필요합니다.

hive.allow-rename-table=true
hive.allow-drop-table=true

참고로, 내부 Presto 테스트 서버에서는 모든 Hive 스키마에 사용되는 다음 hive.properties 파일을 사용합니다.

hive.s3.connect-timeout=1m
hive.s3.max-backoff-time=10m
hive.s3.max-error-retries=50
hive.metastore-cache-ttl = 0s
hive.metastore-refresh-interval = 5s
hive.s3.max-connections=500
hive.s3.max-client-retries=50
connector.name=hive-hadoop2
hive.s3.socket-timeout=2m
hive.s3.staging-directory=/mnt/tmp/
hive.s3.use-instance-credentials=true
hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml
hive.parquet.use-column-names=true
hive.allow-drop-table=true
hive.metastore.uri=thrift://<metastore-server>:9083
hive.storage-format=ORC
hive.allow-rename-table=true

Trino 연결을 위한 OAuth 구성

Looker는 Trino 연결에 OAuth를 지원합니다. 즉, 각 Looker 사용자가 데이터베이스에 인증하고 Looker가 사용자의 자체 OAuth 사용자 계정으로 데이터베이스에서 쿼리를 실행하도록 승인합니다.

OAuth를 사용하면 데이터베이스 관리자가 다음 태스크를 수행할 수 있습니다.

  • 데이터베이스에 대해 쿼리를 실행하는 Looker 사용자 감사
  • 데이터베이스 수준 권한을 사용하여 역할 기반 액세스 제어 시행
  • 데이터베이스에 액세스하는 모든 프로세스와 작업에 OAuth 토큰 사용(데이터베이스 ID와 비밀번호를 여러 위치에 임베딩하지 않아도 됨)
  • 직접 데이터베이스를 통해 특정 사용자의 승인 취소

OAuth를 사용하는 Trino 연결의 경우 OAuth 토큰이 만료되면 사용자는 주기적으로 다시 로그인해야 합니다.

데이터베이스 수준 OAuth 연결의 경우 다음에 유의하세요.

  • 사용자가 OAuth 토큰 만료를 허용하면 사용자가 소유한 일정이나 알림이 영향을 받습니다. 이를 방지하기 위해 Looker는 현재 활성 OAuth 토큰이 만료되기 전에 각 일정과 각 알림의 소유자에게 알림 이메일을 전송합니다. Looker에서는 토큰이 만료되기 14일, 7일, 1일 전에 알림 이메일을 전송합니다. 사용자는 Looker 사용자 페이지로 이동하여 데이터베이스에 Looker를 다시 승인하고 일정 및 알림이 중단되지 않도록 할 수 있습니다. 자세한 내용은 사용자 계정 설정 맞춤설정하기 문서 페이지를 참조하세요.
  • OAuth를 사용하는 데이터베이스 연결은 '사용자별'이므로 캐싱 정책은 쿼리뿐만 아니라 사용자별로 적용됩니다. 즉, Looker는 캐싱 기간 내에 동일한 쿼리가 실행될 때마다 캐시된 결과를 사용하는 대신 동일한 사용자가 캐싱 기간 내에 동일한 쿼리를 실행한 경우에만 캐시된 결과를 사용합니다. 캐싱에 대한 자세한 내용은 쿼리 캐싱 문서 페이지를 참조하세요.
  • OAuth를 사용하는 Trino 연결에는 영구 파생 테이블(PDT)이 지원되지 않습니다.
  • Looker 관리자가 다른 사용자로 가장하면 관리자가 해당 사용자의 OAuth 액세스 토큰을 사용합니다. 사용자의 액세스 토큰이 만료되면 관리자는 가장한 사용자를 대신하여 새 토큰을 만들 수 없습니다. sudo 명령어 사용 방법은 사용자 문서 페이지를 참조하세요.
  • OAuth를 사용하여 Looker에서 Azure AD에 로그인할 때 Looker는 명시적인 사용자 동의 대화상자를 표시하지 않습니다. Looker에 OAuth를 설정하면 Looker 인스턴스의 Trino 데이터 액세스를 암시적으로 동의하는 것으로 간주됩니다.

애플리케이션 등록

Trino에 대해 OAuth를 사용 설정하려면 먼저 지원되는 ID 공급업체를 사용하여 애플리케이션을 등록합니다. Looker는 Trino에 OAuth를 사용하는 데 Microsoft Entra ID(이전의 Azure AD)만 지원합니다.

기본 요건

  • Azure 구독이 필요합니다.
  • Microsoft Entra ID에 관리 권한이 있어야 합니다.

애플리케이션을 등록하려면 다음 단계를 수행합니다.

  1. Azure 포털로 이동하여 해당 사용자 인증 정보로 로그인합니다.
  2. Azure 포털 검색창에서 "Microsoft Entra ID"를 검색하고 결과 중에서 선택합니다.
  3. Microsoft Entra ID 서비스에서 관리 카테고리의 앱 등록 섹션에 있는 새 등록을 클릭합니다.
  4. 다음과 같이 등록 양식을 작성합니다.
    • 이름: Looker Trino Connection과 같이 애플리케이션을 설명하는 이름을 입력합니다.
    • 지원되는 계정 유형: 원하는 액세스 제한 방법에 따라 적합한 옵션을 선택합니다. 내부 사용 사례의 경우 이 조직 디렉터리에 있는 계정만을 선택할 수 있습니다.
    • 리디렉션 URI: 플랫폼을 선택한 후 Looker 리디렉션 URI를 입력합니다. 다음과 같이 표시됩니다. https://YOUR_LOOKER_HOSTNAME/external_oath/redirect
  5. 등록을 클릭합니다.
  6. 나중에 Looker 연결에 입력할 클라이언트 ID, 테넌트 ID, 클라이언트 보안 비밀번호를 수집합니다.
    • 개요 페이지에서 클라이언트 ID테넌트 ID를 찾을 수 있습니다.
    • 클라이언트 보안 비밀번호를 모르면 새 보안 비밀을 만들어야 합니다. 관리 섹션에서 인증서 및 보안 비밀을 클릭한 후 새 클라이언트 보안 비밀번호를 클릭합니다.
  7. 관리 섹션에서 API 노출을 클릭합니다.
  8. 애플리케이션 ID URI 옆에 있는 추가를 클릭합니다.
  9. 클라이언트 ID를 입력합니다. api://CLIENT_ID 형식이어야 합니다.

그런 후 Azure 포털의 단계에 따라 Looker에 사용할 새 범위를 만듭니다.

  1. 이 API로 정의된 범위 섹션에서 범위 추가를 클릭합니다.
  2. 새 범위의 범위 이름을 추가합니다. Looker에서는 범위 이름이 TrinoUsers.Read.All이라고 가정합니다.

    TrinoUsers.Read.All 이름은 읽기 전용 권한을 암시하지만 이름 자체는 실제로 어떠한 권한도 설정하거나 적용하지 않습니다. 데이터베이스에 대해 읽기 액세스만 허용하려면 범위를 설정해야 합니다.

  3. 표시 이름설명을 추가합니다.

  4. 동의할 수 있는 사람 선택기에서 관리자 및 사용자를 선택합니다.

  5. 범위 추가를 클릭합니다.

  6. 승인된 클라이언트 애플리케이션 섹션에서 클라이언트 애플리케이션 추가를 클릭합니다.

  7. 클라이언트 ID와 새로 생성된 범위를 입력합니다.

  8. 애플리케이션 추가를 클릭합니다.

그런 후 필요한 API 권한을 Looker에 부여하기 위해 다음 단계를 수행합니다.

  1. 관리 섹션에서 API 권한을 클릭합니다.
  2. 권한 추가를 클릭합니다.
  3. 상단에서 내 API 탭을 선택합니다.
  4. 앱 등록 목록에서 바로 전에 만든 등록(예: Looker Trino Connection)을 선택합니다.
  5. 위임된 권한 체크박스를 선택합니다.
  6. TrinoUsers.Read.All 체크박스를 선택합니다.
  7. 권한 추가를 선택합니다.

OAuth를 사용하도록 데이터베이스 구성

그런 후 OAuth를 사용하도록 Trino 데이터베이스를 구성하려면 Trino config.properties 파일에 다음 줄을 추가합니다. (대문자로 표시된 처음 5개 변수 줄을 사용자의 자체 값으로 바꿉니다.)

  • YOUR_HTTPS_PORT
  • PATH_TO_YOUR_SSL_CERTIFICATE
  • YOUR_TENANT_ID
  • YOUR_CLIENT_ID
  • YOUR_SHARED_SECRET
# enable SSL for OAuth
http-server.https.enabled=true
http-server.https.port=YOUR_HTTPS_PORT
http-server.https.keystore.path=PATH_TO_YOUR_SSL_CERTIFICATE

# enable OAuth 2.0
http-server.authentication.type=oauth2
http-server.authentication.oauth2.issuer=https://sts.windows.net/YOUR_TENANT_ID/
http-server.authentication.oauth2.client-id=NA_required_but_not_used
http-server.authentication.oauth2.client-secret=NA_required_but_not_used

# turn off oidc discovery - Trino will inspect tokens locally instead
http-server.authentication.oauth2.oidc.discovery=false

# URLs that Trino requires for OAuth
http-server.authentication.oauth2.jwks-url=https://login.microsoftonline.com/common/discovery/v2.0/keys
http-server.authentication.oauth2.auth-url=NA_required_but_not_used
http-server.authentication.oauth2.token-url=NA_required_but_not_used

# add audience that matches the Azure AD's Application ID URI
http-server.authentication.oauth2.additional-audiences=api://YOUR_CLIENT_ID

# set shared-secret required for internal Trino communication when authentication is enabled, see: https://github.com/trinodb/trino/issues/12397
# can be generated with the following Linux command: openssl rand 512 | base64
internal-communication.shared-secret=YOUR_SHARED_SECRET

# optionally, allow some insecure http traffic
# http-server.authentication.allow-insecure-over-http=true

쿼리 실행을 위해 로그인

데이터베이스 연결이 OAuth를 사용하도록 설정되었으면 쿼리를 실행하기 전 Microsoft Entra ID에 로그인하라는 메시지가 사용자에게 표시됩니다. 여기에는 Explore, 대시보드, Looker, SQL Runner의 쿼리가 포함됩니다.

사용자는 또한 자신의 계정 페이지의 OAuth 연결 사용자 인증 정보 섹션에서 Microsoft Entra ID에 로그인할 수 있습니다.

Looker를 사용하여 Microsoft Entra ID에 로그인하려면 다음 안내를 따르세요.

  1. Looker 사용자 메뉴를 클릭합니다.
  2. 계정을 선택합니다.
  3. 계정 페이지의 OAuth 연결 사용자 인증 정보 섹션에서 로그인을 클릭합니다.

이렇게 하면 로그인 대화상자가 표시됩니다. Microsoft Entra ID 사용자 인증 정보를 입력하고 로그인을 선택하여 Looker에 데이터베이스 계정 액세스 권한을 부여합니다.

Looker를 통해 Microsoft Entra ID에 로그인하면 사용자 계정 맞춤설정 문서 페이지에 설명된 대로 계정 페이지를 통해 언제든지 사용자 인증 정보를 로그아웃하거나 재승인할 수 있습니다.

참조

Hive 커넥터 구성에 대한 자세한 내용은 PrestoDB Hive 커넥터, Trino Hive 커넥터, Starburst Hive 커넥터를 참조하세요.

기능 지원

Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.

PrestoDB는 Looker 24.20부터 다음 기능을 지원합니다.

특성 지원 여부
지원 수준
지원됨
Looker(Google Cloud 핵심 서비스)
대칭 집계
파생 테이블
영구 SQL 파생 테이블
영구 기본 파생 테이블
안정적인 뷰
쿼리 종료
SQL 기반 피벗
시간대
SSL
소계
JDBC 추가 파라미터
대소문자 구분
위치 유형
목록 유형
백분위수
고유 백분위수
아니요
SQL Runner 표시 프로세스
SQL Runner 설명 테이블
SQL Runner 표시 색인
아니요
SQL Runner 선택 10
SQL Runner 카운트
SQL 설명
OAuth 사용자 인증 정보
아니요
컨텍스트 주석
연결 풀링
아니요
HLL 스케치
집계 인식
증분 PDT
아니요
밀리초
마이크로초
아니요
구체화된 뷰
아니요
대략적인 고유값

Trino는 Looker 24.20부터 다음 기능을 지원합니다.

특성 지원 여부
지원 수준
지원됨
Looker(Google Cloud 핵심 서비스)
대칭 집계
파생 테이블
영구 SQL 파생 테이블
영구 기본 파생 테이블
안정적인 뷰
아니요
쿼리 종료
SQL 기반 피벗
시간대
SSL
소계
JDBC 추가 파라미터
대소문자 구분
위치 유형
목록 유형
백분위수
고유 백분위수
아니요
SQL Runner 표시 프로세스
SQL Runner 설명 테이블
SQL Runner 표시 색인
아니요
SQL Runner 선택 10
SQL Runner 카운트
SQL 설명
OAuth 사용자 인증 정보
컨텍스트 주석
연결 풀링
아니요
HLL 스케치
집계 인식
증분 PDT
아니요
밀리초
마이크로초
아니요
구체화된 뷰
아니요
대략적인 고유값

다음 단계

데이터베이스를 Looker에 연결한 후 사용자의 로그인 옵션을 구성합니다.