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

이 페이지에서는 MySQL 테이블에서 데이터를 읽기 위해 MySQL 테이블 엔진을 사용하는 방법을 설명합니다.

참고

ClickHouse Cloud에서는 MySQL ClickPipe도 사용해 MySQL 테이블의 데이터를 ClickHouse로 손쉽게 옮길 수 있습니다(현재 공개 베타).

MySQL 테이블 엔진을 사용하여 ClickHouse를 MySQL에 연결하기

MySQL 테이블 엔진을 사용하면 ClickHouse를 MySQL에 연결할 수 있습니다. SELECTINSERT SQL 문은 ClickHouse 또는 MySQL 테이블에서 모두 실행할 수 있습니다. 이 문서에서는 MySQL 테이블 엔진의 기본 사용 방법을 설명합니다.

1. MySQL 구성

  1. MySQL에서 데이터베이스를 생성하십시오:
  CREATE DATABASE db1;
  1. 테이블을 생성하십시오:
  CREATE TABLE db1.table1 (
    id INT,
    column1 VARCHAR(255)
  );
  1. 샘플 행을 삽입합니다:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (1, 'abc'),
    (2, 'def'),
    (3, 'ghi');
  1. ClickHouse에서 연결할 때 사용할 사용자를 생성합니다:
  CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';
  1. 필요에 따라 권한을 부여합니다. (시연 목적상 mysql_clickhouse 사용자에게 관리자 권한을 부여합니다.)
  GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';
참고

ClickHouse Cloud에서 이 기능을 사용하는 경우, ClickHouse Cloud IP 주소에 MySQL 인스턴스 접근을 허용해야 할 수 있습니다. 송신(egress) 트래픽에 대한 자세한 내용은 ClickHouse Cloud Endpoints API를 확인하십시오.

2. ClickHouse에서 테이블 정의하기

  1. 이제 MySQL 테이블 엔진을 사용하는 ClickHouse 테이블을 CREATE합니다.
  CREATE TABLE mysql_table1 (
    id UInt64,
    column1 String
  )
  ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')

최소한 다음 파라미터가 필요합니다:

parameterDescriptionexample
host호스트 이름 또는 IPmysql-host.domain.com
databaseMySQL 데이터베이스 이름db1
tableMySQL 테이블 이름table1
userMySQL에 연결할 때 사용할 사용자 이름mysql_clickhouse
passwordMySQL에 연결할 때 사용할 비밀번호Password123!
참고

전체 파라미터 목록은 MySQL 테이블 엔진 문서를 참조하십시오.

3. 통합 테스트하기

  1. MySQL에서 샘플 행을 삽입합니다:
  INSERT INTO db1.table1
    (id, column1)
  VALUES
    (4, 'jkl');
  1. MySQL 테이블에 있던 기존 행들이 ClickHouse 테이블에 있고, 방금 추가한 새 행도 함께 포함되어 있는지 확인합니다.
  SELECT
      id,
      column1
  FROM mysql_table1

4개의 행이 보여야 합니다.

  Query id: 6d590083-841e-4e95-8715-ef37d3e95197

  ┌─id─┬─column1─┐
  │  1 │ abc     │
  │  2 │ def     │
  │  3 │ ghi     │
  │  4 │ jkl     │
  └────┴─────────┘

  4 rows in set. Elapsed: 0.044 sec.
  1. ClickHouse 테이블에 행을 하나 추가합니다:
  INSERT INTO mysql_table1
    (id, column1)
  VALUES
    (5,'mno')
  1. MySQL에 새로운 행이 생성된 것을 확인하십시오:
  mysql> select id,column1 from db1.table1;

새 행이 표시되어야 합니다.

  +------+---------+
  | id   | column1 |
  +------+---------+
  |    1 | abc     |
  |    2 | def     |
  |    3 | ghi     |
  |    4 | jkl     |
  |    5 | mno     |
  +------+---------+
  5 rows in set (0.01 sec)

요약

MySQL 테이블 엔진을 사용하면 ClickHouse를 MySQL에 연결해 양방향으로 데이터를 교환할 수 있습니다. 더 자세한 내용은 MySQL 테이블 엔진 문서 페이지를 참고하십시오.