当前位置: 首页 > news >正文

ClickHouse集成Mysql表引擎跨服务器读表说明

MySQL表引擎

Clickhouse 上的MySQL引擎可以对存在远程MySQL服务器上的数据执行SELECT查询。

调用格式:

MySQL('host:port', 'database', 'table', 'user', 'password', replace_query, 'on_duplicate_clause');

调用参数

  • host:port — MySQL 服务器地址。

  • database — 数据库的名称。

  • table — 表名称。

  • user — 数据库用户。

  • password — 用户密码。

  • replace_query — 将 INSERT INTO 查询是否替换为 REPLACE INTO 的标志。如果 replace_query=1,则替换查询

  • 'on_duplicate_clause' — 将 ON DUPLICATE KEY UPDATE 'on_duplicate_clause' 表达式添加到 INSERT 查询语句中。例如:impression = VALUES(impression) + impression。如果需要指定 'on_duplicate_clause',则需要设置 replace_query=0。如果同时设置 replace_query = 1'on_duplicate_clause',则会抛出异常。

此时,简单的WHERE子句(例如 =, !=, >, >=, <, <=)是在MySQL服务器上执行。

其余条件以及LIMIT采样约束语句仅在对MySQL的查询完成后才在ClickHouse中执行。

MySQL引擎不支持NULL值,因此,当从MySQL表中读取数据时,NULL将转换为指定列类型的默认值(通常为0或空字符串)。

示例:

select * from    MySQL('host:port', 'database', 'table', 'user', 'password', replace_query, 'on_duplicate_clause');

mysql 远程表映射

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

MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到MySQL服务器中,因此您可以执行诸如SHOW TABLESSHOW CREATE TABLE之类的操作。

但您无法对其执行以下操作:

  • RENAME
  • CREATE TABLE
  • ALTER

创建数据库

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

引擎参数

  • host:port — MySQL服务地址
  • database — MySQL数据库名称
  • user — MySQL用户名
  • password — MySQL用户密码

支持的数据类型

MySQLClickHouse
UNSIGNED TINYINTUInt8
TINYINTInt8
UNSIGNED SMALLINTUInt16
SMALLINTInt16
UNSIGNED INT, UNSIGNED MEDIUMINTUInt32
INT, MEDIUMINTInt32
UNSIGNED BIGINTUInt64
BIGINTInt64
FLOATFloat32
DOUBLEFloat64
DATEDate
DATETIME, TIMESTAMPDateTime
BINARYFixedString

其他的MySQL数据类型将全部都转换为String.

全局变量支持​

为了更好地兼容,您可以在SQL样式中设置全局变量,如@@identifier.

支持这些变量:

  • version
  • max_allowed_packet

!!! warning "警告" 到目前为止,这些变量是存根,并且不对应任何内容。

示例: SELECT @@version;

MySQL操作示例:

mysql> USE test;
Database changedmysql> CREATE TABLE `mysql_table` (->   `int_id` INT NOT NULL AUTO_INCREMENT,->   `float` FLOAT NOT NULL,->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)mysql> select * from mysql_table;
+------+-----+
| int_id | value |
+------+-----+
|      1 |     2 |
+------+-----+
1 row in set (0,00 sec)

http://www.lryc.cn/news/478108.html

相关文章:

  • 【AI构思渲染】别眨眼!这些图片立马变效果图!
  • 多特征变量序列预测(10)基于麻雀优化算法的CEEMDAN-SSA-Transformer-BiLSTM预测模型
  • 算法学习(十)—— 字符串
  • 「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
  • masm汇编字符输入小写转大写演示
  • 防火墙|WAF|漏洞|网络安全
  • 继承机制深度解析:从基础到进阶的完整指南
  • 8. 数据结构——邻接表、邻接矩阵的基本操作
  • OpenCV Python 版使用教程(二)摄像头调用
  • 基础算法——排序算法(冒泡排序,选择排序,堆排序,插入排序,希尔排序,归并排序,快速排序,计数排序,桶排序,基数排序,Java排序)
  • 几种常见的处理ARP欺骗的方法:静态ARP表和VLAN等
  • 突破1200°C高温性能极限!北京科技大学用机器学习合成24种耐火高熵合金,室温延展性极佳
  • ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源 或者超时失效
  • Python学习笔记-断点操作结合异常处理
  • Java实现JWT登录认证
  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • 山东路远生态科技有限公司竣工投产仪式暨产品发布会圆满举行
  • java: 题目:银行账户管理系统
  • PH热榜 | 2024-11-06
  • 五、Java并发 Java Google Guava 实现
  • ssm公交车信息管理系统+vue
  • 如何删除react项目的默认图标,使在浏览器中不显示默认图标favicon.ico
  • 【React】react-app-env.d.ts 文件
  • 设计模式讲解01-建造者模式(Builder)
  • wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
  • Promise 简单介绍及深入挖掘
  • 103 - Lecture 1
  • Ubuntu 20.04禁用或者移除 cloud-init
  • DevOps开发运维简述
  • C++之list的使用