Tableau Online
Tableau Online은 공식 MySQL 데이터 소스를 사용하여 MySQL 인터페이스를 통해 ClickHouse Cloud 또는 온프레미스 ClickHouse 구성에 연결할 수 있습니다.
ClickHouse Cloud 설정
MySQL 인터페이스 활성화
이 서비스에 대해 MySQL 인터페이스를 활성화하도록 스위치를 켭니다.
그러면 이 서비스에 대해 포트 3306이 열리고, 고유한 MySQL 사용자 이름이 포함된 MySQL 연결 화면이 표시됩니다.

또는, 기존 서비스에 대해 MySQL 인터페이스를 활성화하려면 다음을 수행합니다.
MySQL 인터페이스 활성화
이 서비스에 대해 MySQL 인터페이스를 활성화하도록 스위치를 켭니다.
그러면 이 서비스에 대해 포트 3306이 열리고, 고유한 MySQL 사용자 이름이 포함된 MySQL 연결 화면이 표시됩니다.

ClickHouse Cloud에서 readonly MySQL 사용자 생성
ClickHouse Cloud는 기본 사용자와 동일한 비밀번호를 사용하는 mysql4<subdomain> 사용자를 자동으로 생성합니다.
<subdomain> 부분은 ClickHouse Cloud 호스트 이름의 첫 번째 부분에 해당합니다.
이 사용자 이름 형식은 보안 연결을 설정하지만 TLS 핸드셰이크에 SNI (Server Name Indication) 데이터를 포함하지 않는 도구와의 호환성을 위해 필요합니다.
SNI 정보가 없으면 시스템은 올바른 내부 라우팅을 수행할 수 없으므로, 사용자 이름에 포함된 <subdomain> 힌트가 필요한 라우팅 정보를 제공합니다.
MySQL 콘솔 클라이언트가 이러한 특성을 갖는 도구의 한 예입니다.
권장 모범 사례는 새로운 readonly MySQL 사용자를 생성하는 것입니다.
foobar.us-east1.aws.clickhouse.cloud와 같은 ClickHouse Cloud 호스트 이름의 경우 <subdomain> 부분은 foobar가 되며, 사용자 정의 MySQL 사용자 이름은 mysql4foobar_team1처럼 지정할 수 있습니다.
ClickHouse Cloud에서 여러 MySQL 사용자 문제 해결
새 MySQL 사용자를 생성한 후 MySQL CLI 클라이언트로 접속할 때 다음과 같은 오류가 표시되는 경우:
이 경우, 사용자 이름이 (위)에서 설명한 것처럼 mysql4<subdomain>_<username> 형식을 따르는지 확인하십시오.
온프레미스 ClickHouse 서버 설정
공식 문서를 참고하여 MySQL 인터페이스가 활성화된 ClickHouse 서버를 설정하는 방법을 알아보십시오.
서버의 config.xml에 항목을 추가하는 것 외에도
MySQL 인터페이스를 사용할 사용자에 대해서도 Double SHA1 password encryption 을(를) 사용하는 것이 필수입니다.
셸에서 Double SHA1로 암호화된 임의의 비밀번호를 생성하려면 다음과 같이 합니다:
출력 결과는 다음과 같아야 합니다:
첫 번째 줄은 생성된 비밀번호이고, 두 번째 줄은 ClickHouse를 설정할 때 사용할 수 있는 해시입니다.
다음은 생성된 해시를 사용하는 mysql_user에 대한 설정 예시입니다:
/etc/clickhouse-server/users.d/mysql_user.xml
password_double_sha1_hex 항목을 직접 생성한 Double SHA1 해시로 교체하십시오.
추가로, SHOW [FULL] COLUMNS 쿼리 결과에서 ClickHouse 타입 대신 MySQL 네이티브 타입을 표시하기 위해
use_mysql_types_in_show_columns를 사용할 것을 권장합니다.
이렇게 하면 MySQL 커넥터를 사용할 때 BI 도구가 데이터베이스 스키마를 올바르게 파악할 수 있습니다.
예를 들어:
/etc/clickhouse-server/users.d/mysql_user.xml
또는 기본 프로파일이 아닌 다른 프로파일에 할당할 수 있습니다.
mysql 바이너리를 사용할 수 있다면 명령줄에서 연결을 테스트할 수 있습니다.
위에서 사용한 샘플 사용자 이름(mysql_user)과 비밀번호(LZOQYnqQN4L/T6L0)를 사용하면 명령줄 명령은 다음과 같습니다.
마지막으로 ClickHouse 서버가 원하는 IP 주소(들)에서 연결을 수신하도록 구성합니다. 예를 들어 config.xml에서 모든 주소에서 수신하도록 하려면 다음 설정의 주석을 해제합니다:
Tableau Online를 ClickHouse에 연결하기 (온프레미스, SSL 없음)
Tableau Cloud 사이트에 로그인한 후 새 Published Data Source를 추가합니다.

사용 가능한 커넥터 목록에서 "MySQL"을 선택합니다.

ClickHouse 설정 과정에서 확인해 둔 연결 정보를 입력합니다.

Tableau Online이 데이터베이스를 분석하여 사용 가능한 테이블 목록을 제공합니다. 원하는 테이블을 오른쪽 캔버스로 드래그합니다. 또한 "Update Now"를 클릭하여 데이터를 미리 보고, 분석된 필드 유형이나 이름을 세부적으로 조정할 수 있습니다.

그다음 오른쪽 상단의 "Publish As"를 클릭하면 됩니다. 그러면 Tableau Online에서 새로 생성된 데이터셋을 평소와 같이 사용할 수 있습니다.
NB: Tableau Online을 Tableau Desktop과 함께 사용하여 ClickHouse 데이터셋을 공유하려는 경우, Data Source 드롭다운에서 MySQL을 선택했을 때 표시되는 설정 가이드를 따라 Tableau Desktop에서도 기본 MySQL 커넥터를 사용해야 합니다. 설정 가이드는 여기에 표시됩니다. M1 Mac을 사용하는 경우, 드라이버 설치 우회 방법은 이 문제 해결 스레드를 참고하십시오.
Tableau Online을 ClickHouse에 연결하기 (Cloud 또는 온프레미스 SSL 설정)
Tableau Online MySQL 연결 설정 마법사를 통해 SSL 인증서를 제공하는 것은 불가능하므로, Tableau Desktop에서 먼저 연결을 설정한 뒤 이를 Tableau Online으로 내보내는 방법만 사용할 수 있습니다. 다만 이 절차는 비교적 간단합니다.
Windows 또는 Mac에서 Tableau Desktop을 실행한 뒤 "Connect" -> "To a Server" -> "MySQL"을 선택합니다. 먼저 로컬 환경에 MySQL 드라이버를 설치해야 할 수도 있습니다. 이는 Data Source 드롭다운에서 MySQL을 선택했을 때 표시되는 이 설정 가이드를 따라 설치할 수 있습니다. M1 Mac을 사용하는 경우, 드라이버 설치 우회 방법은 이 트러블슈팅 스레드를 확인하십시오.

MySQL 연결 설정 UI에서 "SSL" 옵션이 활성화되어 있는지 확인하십시오. ClickHouse Cloud의 SSL 인증서는 Let's Encrypt에서 서명되었습니다. 이 루트 인증서는 여기에서 다운로드할 수 있습니다.
ClickHouse Cloud 인스턴스의 MySQL 사용자 자격 증명과 다운로드한 루트 인증서 경로를 입력합니다.

필요한 테이블을 (Tableau Online에서와 마찬가지로) 평소와 같이 선택한 다음, "Server" -> "Publish Data Source" -> Tableau Cloud를 선택합니다.

중요: "Authentication" 옵션에서 "Embedded password"를 선택해야 합니다.

추가로 "Update workbook to use the published data source"를 선택합니다.

마지막으로 "Publish"를 클릭하면, 임베디드 자격 증명이 포함된 데이터 소스가 Tableau Online에서 자동으로 열립니다.
알려진 제한 사항(ClickHouse 23.11)
알려진 제한 사항은 모두 ClickHouse 23.11에서 수정되었습니다. 다른 호환성 문제를 발견하면 주저하지 말고 문의하거나 새 이슈를 등록하십시오.


