네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상 및 Cloudera Impala

이 안내를 사용하는 언어

Looker는 다음과 같은 Impala 데이터베이스에 연결합니다.

  • Cloudera Impala 3.1 이상
  • 네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상
  • 네이티브 드라이버를 사용하는 Cloudera Impala

네트워크 트래픽 암호화

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

Cloudera Impala에 연결하도록 Looker 구성

Looker는 JDBC 연결을 통해 데이터베이스에 연결합니다. Impala 데이터베이스의 경우 Looker는 기본적으로 포트 21050에서 impalad 데몬을 실행하는 서버에 연결합니다. 자세한 내용은 Cloudera 웹사이트 문서에서 JDBC와 함께 작동하도록 Impala 구성 섹션을 참조합니다.

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

Looker 연결 구성은 사용 중인 보안에 따라 달라집니다.

Kerberos 또는 사용자 인증 없이 클러스터에 연결

Kerberos 또는 사용자 인증을 사용하지 않는 연결을 구성하려면 다음 단계를 따릅니다.

  1. 연결 설정 페이지에서 사용자 이름비밀번호 필드를 비워둡니다. (필드 이름 옆의 *은 이러한 필드가 필수적임을 암시하지만, 그렇지 않습니다.)
  2. 추가 JDBC 매개변수 필드에 ;auth=noSasl을 입력합니다.

연결 문자열 확인

로그 파일에서 JDBC 연결 문자열을 확인하려면 Looker 관리 패널의 왼쪽 메뉴에서 로그를 클릭합니다. 그런 다음 jdbc 또는 noSasl와 같은 검색어로 로그를 필터링합니다. 로그 행은 다음과 같이 표시됩니다.

jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl

JDBC와 함께 작동하도록 Impala 데이터베이스를 구성하는 방법에 대한 자세한 내용은 외부 Cloudera 웹사이트 문서를 참조합니다.

LDAP 인증이 필요한 클러스터에 연결

Apache Sentry 및 Kerberos가 포함된 클러스터를 포함하여 LDAP 인증이 필요한 클러스터의 경우 연결 설정 페이지에서 Looker가 액세스할 스키마에 대한 액세스 권한이 있는 사용자 이름비밀번호를 입력합니다.

Kerberos로 보호되지만 Apache Sentry를 사용하지 않는 클러스터에 연결

이 연결을 올바르게 구성하려면 Looker 분석가 팀의 도움이 필요할 수 있습니다.

일반적으로 Cloudera 환경을 사용한 Kerberos 인증은 Apache Sentry를 통해 처리됩니다. 자세히 알아보려면 Cloudera 문서를 참조합니다.

Kerberos 인증을 사용하여 Looker 데이터베이스에 직접 연결하도록 Looker를 구성하려면 이 페이지의 단계를 수행합니다.

Kerberos 클라이언트 구성 설정

먼저 여러 소프트웨어를 설치하고 Looker 머신에 여러 파일이 있는지 확인해야 합니다.

Kerberos 클라이언트

kinit를 실행하여 Kerberos 클라이언트가 Looker 머신에 설치되었는지 확인합니다. Kerberos 클라이언트가 설치되지 않은 경우 Kerberos 클라이언트의 바이너리를 설치합니다.

예를 들어 Redhat/CentOS에서는 다음과 같습니다.

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog

자바 8

Java 8은 Looker 머신과 Looker 사용자의 PATHJAVA_HOME에 설치되어 있어야 합니다. 필요한 경우 looker 디렉터리에 로컬로 설치합니다.

자바 암호화 확장 프로그램
  1. Oracle 웹사이트에서 자바 8용 자바 암호화 확장 프로그램(JCE)을 다운로드하고 설치합니다.

    • 자바 설치에 사용되는 jre/lib/security 디렉터리를 찾습니다.
    • 이 디렉터리에서 local_policy.jarUS_export_policy.jar JAR 파일을 삭제합니다.
    • 이 두 파일을 JCE Unlimited Strength Jurisdiction Policy Files 다운로드에 포함된 JAR 파일로 바꿉니다.

    JCE가 설치된 Java 8 이전의 Java 버전을 사용할 수는 있지만 권장하지 않습니다.

  2. Java 및 source ~/.bash_profile의 올바른 설치를 가리키도록 ~looker/.bash_profileJAVA_HOMEPATH를 업데이트하거나 로그아웃했다가 다시 로그인합니다.

  3. java -version로 Java 버전을 확인합니다.

  4. echo $JAVA_HOME으로 JAVA_HOME 환경 변수를 확인합니다.

gss-jaas.conf

다음 콘텐츠를 사용해 looker 디렉터리에 gss-jaas.conf라는 파일을 만듭니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

테스트에 필요한 경우 다음과 같이 debug=true를 이 파일에 추가할 수 있습니다.

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

Looker를 실행하는 서버에 유효한 krb5.conf 파일도 있어야 합니다. 기본적으로 이 파일은 /etc/krb5.conf에 있습니다. 다른 위치에 있는 경우 환경(셸 환경의 KRB5_CONFIG)에 표시되어야 합니다.

다른 Kerberos 클라이언트 머신에서 복사해야 할 수도 있습니다.

lookerstart.cfg

looker 디렉터리(looker 시작 스크립트가 포함된 디렉터리)에 다음 줄이 포함된 lookerstart.cfg라는 파일을 만들어 gss-jaas.confkrb5.conf 파일을 가리킵니다.

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

krb5.conf 파일이 /etc/krb5.conf에 없으면 다음 변수도 추가해야 합니다.

  -Djava.security.krb5.conf=/path/to/krb5.conf

디버깅을 위해 다음 변수를 추가합니다.

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

그런 다음 ./looker restart를 사용하여 Looker를 다시 시작합니다.

Kerberos를 사용하여 인증

사용자 인증
  1. krb5.conf/etc/에 없는 경우 환경 변수 KRB5_CONFIG를 사용하여 위치를 표시합니다.

  2. klist 명령어를 실행하여 Kerberos 티켓 캐시에 유효한 티켓이 있는지 확인합니다.

  3. 티켓이 없으면 kinit username@REALM 또는 kinit username을 실행하여 티켓을 만듭니다.

  4. Looker와 함께 사용되는 계정은 헤드리스일 가능성이 높으므로 Kerberos에서 keytab 파일을 가져와서 사용자 인증 정보를 저장하면 장기간 사용할 수 있습니다. kinit -k -t looker_user.keytab username@REALM과 같은 명령어를 사용하여 Kerberos 티켓을 얻습니다.

티켓 자동 갱신

Kerberos 티켓 캐시에 활성 티켓을 유지하기 위해 자주 실행되는 크론 작업을 설정합니다. 실행 빈도는 클러스터 구성에 따라 다릅니다. klist는 티켓이 얼마나 빨리 만료되는지를 나타냅니다.

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

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

다음과 같이 연결 세부정보를 작성합니다(자세한 내용은 데이터베이스에 Looker 연결 문서 페이지 참조).

  • 이름: 연결의 이름입니다. LookML 모델에서 연결을 참조하는 방법은 다음과 같습니다.
  • 언어: Cloudera Impala 3.1 이상 ,네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상 또는 네이티브 드라이버를 사용하는 Cloudera Impala입니다.

  • 호스트: 호스트 이름입니다.

  • 포트: 데이터베이스 포트입니다(기본적으로 21050).

  • 데이터베이스: 모델링할 기본 스키마/데이터베이스입니다. 테이블에 데이터베이스를 지정하지 않으면 이 값으로 간주됩니다.

  • 사용자 이름: 비워둡니다.

  • 비밀번호: 비워둡니다.

  • PDT 사용 설정: 이 전환 버튼으로 영구 파생 테이블을 사용 설정합니다. PDT가 사용 설정되면 연결 창에 추가 PDT 설정과 PDT 재정의 섹션이 표시됩니다.

  • 임시 데이터베이스: PDT를 저장하기 위한 임시 스키마/데이터베이스입니다. 미리 만들어야 합니다.

  • 추가 JDBC 매개변수: JDBC 문자열의 추가 매개변수입니다. Kerberos 주 구성원을 여기에 나타냅니다(예: ;principal=impala/impala.company.com@REALM). 표준은 세 부분으로 구성된 주 구성원입니다. 첫 번째(impala)는 일반적으로 서비스의 이름이고 마지막 (REALM)은 일반적으로 렐름입니다.

  • SSL: SSL 연결을 사용하려면 선택합니다. SSL 인증서가 널리 알려진 인증 기관에서 발급되지 않았고 커스텀 인증서를 사용하는 경우 다음을 수행해야 합니다.

    • 인증서 파일을 Looker 서버에 복사합니다. 이는 고객 호스팅 Looker 배포에만 사용할 수 있습니다.
    • 다음 매개변수를 추가 JDBC 매개변수 필드에 추가합니다.
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

Impala 데이터베이스의 올바른 JDBC 문자열을 만드는 방법에 대한 자세한 내용은 Cloudera 문서를 참조합니다.

  • 데이터베이스 시간대: 데이터베이스에 저장된 데이터의 시간대입니다. 일반적으로 비워두거나 UTC로 설정할 수 있습니다.

권장사항은 서버 이름(이 예시에서는 impala.company.com)을 서버의 표준 이름과 IP 주소의 역방향 DNS 조회 결과로 만드는 것입니다. 하지만 서버 이름은 Kerberos 도메인 컨트롤러에 나열된 이름과 같아야 합니다.

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

서버 이름이 정규화된 도메인 이름이 아닌 호스트 이름으로 설정되는 경우가 있습니다. 이 경우 역방향 조회가 의도한 대로 해결되도록 /etc/hosts/etc/nsswitch.conf 파일을 수정해야 할 수 있습니다.

연결을 테스트하여 올바르게 구성되었는지 확인합니다.

디버깅

리소스

PDT 권한

영구 파생 테이블(PDT)의 스크래치 스키마에 연결하는 사용자에게 읽기/쓰기 권한이 있어야 합니다.

기능 지원

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

네이티브 드라이버를 사용하는 Cloudera Impala

네이티브 드라이버를 사용하는 Cloudera Impala는 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
아니요
밀리초
마이크로초
구체화된 뷰
아니요
대략적인 고유값

Cloudera Impala 3.1 이상

Cloudera Impala 3.1 이상에서는 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
아니요
밀리초
마이크로초
구체화된 뷰
아니요
대략적인 고유값

네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상

네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상에서는 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에 연결한 후 사용자의 로그인 옵션을 구성합니다.