首页 > 其他分享 >ClickHouse(18)ClickHouse集成ODBC表引擎详细解析

ClickHouse(18)ClickHouse集成ODBC表引擎详细解析

时间:2023-12-18 16:56:22浏览次数:45  
标签:int 18 ODBC 引擎 ClickHouse 解析 clickhouse

目录

ODBC集成表引擎使得ClickHouse可以通过ODBC方式连接到外部数据库.

为了安全地实现 ODBC 连接,ClickHouse 使用了一个独立程序 clickhouse-odbc-bridge. 如果ODBC驱动程序是直接从 clickhouse-server中加载的,那么驱动问题可能会导致ClickHouse服务崩溃。 当有需要时,ClickHouse会自动启动 clickhouse-odbc-bridge。 ODBC桥梁程序与clickhouse-server来自相同的安装包.

该引擎支持Nullable数据类型。

创建表

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1],
    name2 [type2],
    ...
)
ENGINE = ODBC(connection_settings, external_database, external_table)

表结构可以与源表结构不同:

  • 列名应与源表中的列名相同,但您可以按任何顺序使用其中的一些列。
  • 列类型可能与源表中的列类型不同。 ClickHouse尝试将数值映射到ClickHouse的数据类型。
  • 设置 external_table_functions_use_nulls 来定义如何处理 Nullable 列. 默认值是 true, 当设置为 false 时 - 表函数将不会使用 nullable 列,而是插入默认值来代替 null. 这同样适用于数组数据类型中的 null 值.

引擎参数

  • connection_settings — 在 odbc.ini 配置文件中,连接配置的名称.
  • external_database — 在外部 DBMS 中的数据库名.
  • external_tableexternal_database中的表名.

用法示例

通过ODBC从本地安装的MySQL中检索数据

本示例已经在 Ubuntu Linux 18.04 和 MySQL server 5.7 上测试通过。

请确保已经安装了 unixODBC 和 MySQL Connector。

默认情况下(如果从软件包安装),ClickHouse以用户clickhouse的身份启动. 因此,您需要在MySQL服务器中创建并配置此用户。

$ sudo mysql
mysql> CREATE USER 'clickhouse'@'localhost' IDENTIFIED BY 'clickhouse';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'clickhouse'@'clickhouse' WITH GRANT OPTION;

然后在/etc/odbc.ini中配置连接.

$ cat /etc/odbc.ini
[mysqlconn]
DRIVER = /usr/local/lib/libmyodbc5w.so
SERVER = 127.0.0.1
PORT = 3306
DATABASE = test
USERNAME = clickhouse
PASSWORD = clickhouse

您可以从安装的 unixodbc 中使用 isql 实用程序来检查连接情况。

$ isql -v mysqlconn
+---------------------------------------+
| Connected!                            |
|                                       |
...

MySQL中的表:

mysql> CREATE TABLE `test`.`test` (
    ->   `int_id` INT NOT NULL AUTO_INCREMENT,
    ->   `int_nullable` INT NULL DEFAULT NULL,
    ->   `float` FLOAT NOT NULL,
    ->   `float_nullable` FLOAT NULL DEFAULT NULL,
    ->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)

mysql> insert into test (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)

mysql> select * from test;
+--------+--------------+-------+----------------+
| int_id | int_nullable | float | float_nullable |
+--------+--------------+-------+----------------+
|      1 |         NULL |     2 |           NULL |
+--------+--------------+-------+----------------+
1 row in set (0,00 sec)

ClickHouse中的表,从MySQL表中检索数据:

CREATE TABLE odbc_t
(
    `int_id` Int32,
    `float_nullable` Nullable(Float32)
)
ENGINE = ODBC('DSN=mysqlconn', 'test', 'test')
SELECT * FROM odbc_t
┌─int_id─┬─float_nullable─┐
│      1 │           ᴺᵁᴸᴸ │
└────────┴────────────────┘

资料分享

ClickHouse经典中文文档分享

参考文章

标签:int,18,ODBC,引擎,ClickHouse,解析,clickhouse
From: https://www.cnblogs.com/the-pig-of-zf/p/17911626.html

相关文章

  • 第18期|产业区块链一周快讯速览
    政策公告上海市发布《上海市促进外贸稳规模提质量的若干政策措施》4月3日,上海市人民政府办公厅关于印发《上海市促进外贸稳规模提质量的若干政策措施》的通知。提出探索上海口岸船公司、货代、进出口企业间保函交换无纸化试点。鼓励船公司和港口企业开展基于区块链技术的业务单证无......
  • (2023.12.18)wifi的频宽配置
    //网关设备上的WiFi问题单ht_capab:频宽可调HighThroughput高吞吐量能力参数VHT:VeryHighThroughput现在也叫WiFi5GuardInterval:保护间隔(无线提速参数)AX2和AX5:指的是2.4G频段和5G频段HT40+:次通道高于主通道HT40-:次通道低于主通道SHORT-GI-20:disabledifnotsetWPA2:体......
  • 国标GB28181智能视频监控LiteCVR设备列表显示不全的原因排查
    随着科技的不断发展,安防视频监控技术也在不断创新和升级。近年来,一些新技术不断涌现,为安防视频监控领域带来了更多的机遇和挑战。有用户在现场部署LiteCVR,服务器重启后,设备列表显示不全,只显示国标设备,不显示Ehome设备,如下图: GB28181视频监控国标平台/视频云存储/安防监控LiteCVR......
  • 安防视频监控常见技术及GB28181国标LiteCVR视频平台应用
    最近,安防视频监控领域正在迅速发展并应用了许多新技术。以下是几种常见的新技术应用:1)人工智能(AI):AI技术在安防视频监控中被广泛应用。通过使用深度学习算法和模式识别技术,AI可以自动检测、识别和跟踪人员、车辆和物品。这不仅有助于提高安防系统的报警精确性,还可以减轻安保人员在大......
  • GB28181视频监控平台LiteCVR出现用户已过期与401报错,是什么原因?
    安防视频监控新技术的应用使得监控系统变得更加智能化、灵活化,并且提供了更多的便利性和安全性。这些新技术的不断发展也为我们的日常生活和社会安全提供了更大的保障。GB28181视频监控平台LiteCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onv......
  • 国标GB28181协议LiteCVR视频监控技术与视频识别技术的应用
    视频监控技术是指通过安装摄像头和其他相关设备,对特定区域进行实时的视频监控和录制。视频监控技术主要包括视频采集、视频传输、视频存储和视频回放等功能。项目-mark5348以LiteCVR安防视频平台为例,智慧安防平台LiteCVR支持高清视频的接入和传输、分发,平台采用了开放式的网络结构......
  • 12.18
    ROOT/addAgent.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>新增房产经纪人信息</title><style>.form{width:600px;margin:0......
  • 2023-12/18数据结构练习
    给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。1#include<stdio.h>2inta[1009],b[1009];3intmain(){4intn,p;5scanf("%d%d",&n,&p);6intx,i,j;7for(i=0;i......
  • kubernetes1.18.2安装kube-prometheus
    注:使用kube-prometheus安装非常方便,前面的prometheus+grafana+metrics-server都不用安装,已经集成在里面。1、clonegithub地址gitclonehttps://github.com/coreos/kube-prometheus.gitcdkube-prometheus2、查看manifest路径下所有的yaml文件[root@master1manifests]#lltotal......
  • CF1876D Lexichromatography记录
    CF1876DLexichromatography题目链接:https://codeforces.com/problemset/problem/1876/D题意给一个$n$个数的数组$a$染色,每个元素被染为红色或蓝色。求满足下面两个条件的染色方案数:将蓝色和红色的数分别取出成为两个数列,则蓝色序列字典序小于红色序列。任意一个子数组......