본문으로 바로가기
본문으로 바로가기

Looker Studio

Partner Integration

Looker Studio는 공식 Google MySQL 데이터 소스를 통해 MySQL 인터페이스로 ClickHouse에 연결할 수 있습니다.

ClickHouse Cloud 설정

Connect your app 선택

ClickHouse Cloud Service를 생성한 후 Connect your app 화면에서 드롭다운 목록에서 MySQL을 선택합니다.

MySQL 인터페이스 선택 드롭다운을 보여주는 ClickHouse Cloud 자격 증명 화면

MySQL 인터페이스 활성화

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

MySQL 인터페이스 활성화 토글과 연결 세부 정보를 보여주는 ClickHouse Cloud MySQL 인터페이스 화면

또는, 기존 서비스에 대해 MySQL 인터페이스를 활성화하려면 다음을 수행합니다.

Connect 선택

서비스가 Running 상태인지 확인한 다음 MySQL 인터페이스를 활성화하려는 서비스를 클릭합니다. 왼쪽 메뉴에서 "Connect"를 선택합니다.

Connect 옵션이 강조 표시된 ClickHouse Cloud 서비스 연결 화면

MySQL 선택

Connect With 드롭다운에서 MySQL을 선택합니다.

MySQL 옵션 선택을 보여주는 ClickHouse Cloud 연결 화면

MySQL 인터페이스 활성화

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

MySQL 인터페이스가 활성화된 상태에서 연결 세부 정보를 보여주는 ClickHouse Cloud 연결 화면

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처럼 지정할 수 있습니다.

readonly settings profile 생성

readonly 사용자에 적용할 settings profile을 생성하고, readonly 설정을 1로 지정합니다:

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

새로운 readonly MySQL 사용자 생성

다음 형식을 따르는 이름으로 사용자를 생성합니다:

mysql4<subdomain>_<username>

새 사용자에 readonly_profile을 적용하고 비밀번호가 double SHA1 형식인지 확인합니다. 예시는 다음과 같습니다:

CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';

새 사용자에게 원하는 테이블에 접근할 수 있는 권한 부여

새 사용자가 원하는 테이블이나 데이터베이스와 상호 작용할 수 있도록 필요한 권한을 부여합니다. 예를 들어, system.query_log에만 접근 권한을 부여하려는 경우:

GRANT SELECT ON system.query_log TO mysql4foobar_readonly;
참고

readonly 사용자에 대해서는 접근을 허용하려는 테이블에만 SELECT 권한을 부여해야 합니다.

새로 생성한 사용자는 MySQL 인터페이스를 사용하여 ClickHouse Cloud 서비스에 연결하는 데 사용할 수 있습니다.

ClickHouse Cloud에서 여러 MySQL 사용자 문제 해결

새 MySQL 사용자를 생성한 후 MySQL CLI 클라이언트로 접속할 때 다음과 같은 오류가 표시되는 경우:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54

이 경우, 사용자 이름이 ()에서 설명한 것처럼 mysql4<subdomain>_<username> 형식을 따르는지 확인하십시오.

온프레미스 ClickHouse 서버 설정

공식 문서를 참고하여 MySQL 인터페이스가 활성화된 ClickHouse 서버를 설정하는 방법을 알아보십시오.

서버의 config.xml에 항목을 추가하는 것 외에도

<clickhouse>
    <mysql_port>9004</mysql_port>
</clickhouse>

MySQL 인터페이스를 사용할 사용자에 대해서도 Double SHA1 password encryption 을(를) 사용하는 것이 필수입니다.

셸에서 Double SHA1로 암호화된 임의의 비밀번호를 생성하려면 다음과 같이 합니다:

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

출력 결과는 다음과 같아야 합니다:

LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4

첫 번째 줄은 생성된 비밀번호이고, 두 번째 줄은 ClickHouse를 설정할 때 사용할 수 있는 해시입니다.

다음은 생성된 해시를 사용하는 mysql_user에 대한 설정 예시입니다:

/etc/clickhouse-server/users.d/mysql_user.xml

<users>
    <mysql_user>
        <password_double_sha1_hex>fbc958cc745a82188a51f30de69eebfc67c40ee4</password_double_sha1_hex>
        <networks>
            <ip>::/0</ip>
        </networks>
        <profile>default</profile>
        <quota>default</quota>
    </mysql_user>
</users>

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

<profiles>
    <default>
        <use_mysql_types_in_show_columns>1</use_mysql_types_in_show_columns>
    </default>
</profiles>

또는 기본 프로파일이 아닌 다른 프로파일에 할당할 수 있습니다.

mysql 바이너리를 사용할 수 있다면 명령줄에서 연결을 테스트할 수 있습니다. 위에서 사용한 샘플 사용자 이름(mysql_user)과 비밀번호(LZOQYnqQN4L/T6L0)를 사용하면 명령줄 명령은 다음과 같습니다.

mysql --protocol tcp -h localhost -u mysql_user -P 9004 --password=LZOQYnqQN4L/T6L0
mysql> show databases;
+--------------------+
| name               |
+--------------------+
| INFORMATION_SCHEMA |
| default            |
| information_schema |
| system             |
+--------------------+
4 rows in set (0.00 sec)
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.

마지막으로 ClickHouse 서버가 원하는 IP 주소(들)에서 연결을 수신하도록 구성합니다. 예를 들어 config.xml에서 모든 주소에서 수신하도록 하려면 다음 설정의 주석을 해제합니다:

<listen_host>::</listen_host> 

Looker Studio를 ClickHouse에 연결하기

먼저 Google 계정으로 https://lookerstudio.google.com 에 로그인한 후 새 데이터 소스를 생성합니다:

Looker Studio 인터페이스에서 새 데이터 소스를 생성하는 화면

Google에서 제공하는 공식 MySQL 커넥터(이름은 MySQL로 표시됨)를 검색합니다:

Looker Studio 커넥터 목록에서 MySQL 커넥터를 검색하는 화면

연결 정보를 입력합니다. MySQL 인터페이스 포트는 기본적으로 9004이며, 서버 구성에 따라 다를 수 있습니다.

Looker Studio에서 ClickHouse MySQL 연결 정보를 입력하는 화면

이제 ClickHouse에서 데이터를 가져오는 방법은 두 가지입니다. 먼저, Table Browser 기능을 사용할 수 있습니다:

Looker Studio에서 Table Browser를 사용하여 ClickHouse 테이블을 선택하는 화면

또는 사용자 정의 쿼리를 지정하여 데이터를 가져올 수도 있습니다:

Looker Studio에서 사용자 정의 SQL 쿼리를 사용하여 ClickHouse에서 데이터를 가져오는 화면

마지막으로, 자동으로 분석된 테이블 구조를 확인하고 필요하다면 데이터 타입을 조정할 수 있습니다.

Looker Studio에서 분석된 ClickHouse 테이블 구조를 확인하는 화면

이제 데이터를 탐색하거나 새 보고서를 생성할 수 있습니다!

ClickHouse Cloud에서 Looker Studio 사용하기

ClickHouse Cloud를 사용할 때는 먼저 MySQL 인터페이스를 활성화해야 합니다. 연결 대화 상자의 「MySQL」 탭에서 활성화할 수 있습니다.

ClickHouse Cloud 설정에서 MySQL 인터페이스 활성화

Looker Studio UI에서 「Enable SSL」 옵션을 선택합니다. ClickHouse Cloud의 SSL 인증서는 Let's Encrypt에서 서명한 것입니다. 이 루트 인증서는 여기에서 다운로드할 수 있습니다.

ClickHouse Cloud SSL 설정으로 Looker Studio 연결 구성

나머지 단계는 바로 앞의 섹션에서 설명한 단계와 동일합니다.