Hue 의 편집기는 인터프리터 목록으로 구성된다. Hive · Impala 외에 Oracle · PostgreSQL · MySQL · Trino 같은 외부 데이터베이스를 추가하면 같은 화면에서 조회할 수 있다. 연결은 대부분 SQLAlchemy 인터페이스를 쓴다.
주의할 점은 Hue 가 쓰는 메타데이터 DB 설정과 완전히 별개라는 것이다. [desktop] [[database]] 는 Hue 자신의 저장소이고, 아래 설정은 사용자가 조회할 대상이다.
Cloudera Manager 환경이면 Hue 서비스의 hue_safety_valve.ini 안전 밸브에, 직접 설치한 환경이면 /etc/hue/hue.ini 에 넣는다.
[notebook]
[[interpreters]]
[[[oracle_dw]]]
name = Oracle DW
interface = sqlalchemy
options = '{"url": "oracle://${DB_USER}:${DB_PASSWORD}@oracle-host:1521/?service_name=ORCLPDB1"}'
[[[postgres_app]]]
name = PostgreSQL App
interface = sqlalchemy
options = '{"url": "postgresql://${DB_USER}:${DB_PASSWORD}@pg-host:5432/appdb"}'
저장 후 Hue 를 재시작한다.
SQLAlchemy 만으로는 붙지 않는다. 데이터베이스별 파이썬 드라이버를 Hue 가 쓰는 가상환경 안에 설치해야 한다.
| 대상 | 패키지 | 추가 요건 |
|---|---|---|
| Oracle | oracledb 또는 cx_Oracle |
cx_Oracle 은 Instant Client 필요 |
| PostgreSQL | psycopg2-binary |
|
| MySQL · MariaDB | mysqlclient 또는 PyMySQL |
|
| Trino | trino |
|
| MS SQL | pyodbc |
시스템 ODBC 드라이버 필요 |
/opt/cloudera/parcels/CDH/lib/hue/build/env/bin/pip install psycopg2-binary
모든 Hue 서버 호스트에 설치해야 한다. 패키지가 없으면 편집기에서 해당 인터프리터를 고를 때 모듈을 찾을 수 없다는 오류가 난다. 파셀을 업그레이드하면 가상환경이 새로 만들어지므로 설치 작업을 다시 해야 한다. 이 점 때문에 운영에서는 외부 DB 조회를 Hue 대신 전용 도구로 분리하는 선택도 흔하다.
접속 문자열에 비밀번호가 평문으로 들어간다. 설정 파일 권한을 제한하고, 가능하면 조회 전용 계정을 따로 만들어 최소 권한만 준다. 사용자별 인증이 필요하면 options 에 사용자 입력을 받도록 구성하는 방법이 있으나 지원 범위가 버전마다 다르므로 확인이 필요하다.