MAPREDUCE服务 MRS-配置ClickHouse对接RDS MySQL数据库:ClickHouse通过MySQL引擎对接RDS服务

时间:2024-06-29 16:25:01

ClickHouse通过MySQL引擎对接RDS服务

MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。

MySQL引擎使用语法:
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')

MySQL数据库引擎参数说明:

  • host:port :RDS服务MySQL数据库实例IP地址和端口。
  • database :RDS服务MySQL数据库名。
  • user :RDS服务MySQL数据库用户名。
  • password:RDS服务MySQL数据库用户密码,命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。

MySQL引擎使用示例:

  1. 连接到RDS服务的MySQL数据库。详细操作可以参考RDS服务MySQ L实例 连接。
  2. 在MySQL数据库上创建表,并插入数据。

    创建表mysql_table:

    CREATE TABLE `mysql_table` (

    `int_id` INT NOT NULL AUTO_INCREMENT,

    `float` FLOAT NOT NULL,

    PRIMARY KEY (`int_id`));

    插入表数据:

    insert into mysql_table (`int_id`, `float`) VALUES (1,2);

  3. 登录ClickHouse客户端安装节点。执行以下命令,切换到客户端安装目录。

    cd /opt/client

  4. 执行以下命令配置环境变量。

    source bigdata_env

  5. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建ClickHouse表的权限,具体请参见ClickHouse用户及权限管理章节,为用户绑定对应角色。如果当前集群未启用Kerberos认证,则无需执行本步骤。

    1. 如果是 MRS 3.1.0版本集群,则需要先执行:export CLICKHOUSE_SECURITY_ENABLED=true
    2. kinit 组件业务用户

      例如,kinit clickhouseuser。

  6. 使用客户端命令连接ClickHouse。

    clickhouse client --host clickhouse实例IP --user 用户名 --password --port 端口号

    输入用户密码

  7. 在ClickHouse中创建MySQL引擎的数据库,创建成功后自动与MySQL服务器交换数据。

    CREATE DATABASE mysql_db ENGINE = MySQL('RDS服务MySQL数据库实例IP地址:MySQL数据库实例端口', 'MySQL数据库名', 'MySQL数据库用户名', 'MySQL数据库用户名密码');

  8. 切换到新建的数据库mysql_db,并查询表数据

    USE mysql_db;

    在ClickHouse中查询MySQL数据库表数据。

    SELECT * FROM mysql_table;

    ┌─int_id─┬─float─┐
    │      1   │     2   │
    └─────┴──── ┘

    新增插入数据后也可以正常进行查询。

    INSERT INTO mysql_table VALUES (3,4);

    SELECT * FROM mysql_table;
    ┌─int_id─┬─float─┐
    │      1   │       2 │
    │      3   │       4 │
    └─────┴──── ┘

support.huaweicloud.com/cmpntguide-mrs/mrs_01_24113.html