ClickHouse连接器

概述

Clickhouse连接器允许在外部ClickHouse数据库中查询和创建表。这可用于在ClickHouse和Hive等不同系统之间或在两个不同的ClickHouse实例之间联接数据。

配置

基础配置

要配置ClickHouse连接器,在etc/catalog中创建一个目录属性文件,例如clickhouse.properties,将ClickHouse连接器挂载为clickhouse目录。使用以下内容创建文件,并根据设置替换连接属性。

基本属性设置:

connector.name=clickhouse
connection-url=jdbc:clickhouse://example.net:8123
connection-user=username
connection-password=yourpassword
  • 是否允许连接器删除表
allow-drop-table=true
  • 是否开启查询下推功能。

连接器的下推功能默认打开,也可以如下设置:

clickhouse.query.pushdown.enabled=true
  • 是否区分表名大小写

与openLooKeng不同,ClickHouse的语法是大小写敏感的,如果您的数据库表中存在大写字段,可以按如下设置。

case-insensitive-name-matching=true

多套ClickHouse数据库或服务器

可以根据需要创建任意多的目录,因此,如果有额外的ClickHouse服务器,只需添加另一个不同的名称的属性文件到etc/catalog中(确保它以.properties结尾)。例如,如果将属性文件命名为clickhouse2.properties,openLooKeng将使用配置的连接器创建一个名为clickhouse2的目录。

通过openLooKeng查询ClickHouse

通过SHOW SCHEMAS来查看可用的ClickHouse数据库:

SHOW SCHEMAS FROM clickhouse;

如果有一个名为data的ClickHouse数据库,可以通过执行SHOW TABLES查看数据库中的表:

SHOW TABLES FROM clickhouse.data;

若要查看数据模式中名为hello的表中的列的列表,请使用以下命令中的一种:

DESCRIBE clickhouse.data.hello;
SHOW COLUMNS FROM clickhouse.data.hello;

你可以访问数据模式中的hello表:

SELECT * FROM clickhouse.data.hello;

如果对目录属性文件使用不同的名称,请使用该目录名称,而不要使用上述示例中的clickhouse

openLooKeng和ClickHouse之间的映射数据类型

ClickHouse到openLooKeng类型映射

下表显示了ClickHouse数据类型到openLooKeng的映射关系。

数据类型映射表:

ClickHouse类型openLooKeng类型说明
Int8TINYINT
Int16SMALLINT
Int32INTEGER
Int64BIGINT
float32REAL
float64DOUBLE
DECIMAL(P,S)DECIMAL(P,S)
DECIMAL32(S)DECIMAL(P,S)
DECIMAL64(S)DECIMAL(P,S)
DECIMAL128(S)DECIMAL(P,S)
StringVARCHAR
DateTimeTIMESTAMP
Fixedstring(N)CHAR
UInt8SMALLINT
UInt16INT
UInt32BIGINT
UInt64BIGINT
Int128,Int256,UInt256不涉及

openLooKeng到ClickHouse类型映射

下表显示了从openLooKeng到ClickHouse数据类型的映射关系。

openLooKeng类型ClickHouse数据库类型说明
BOOLEANInt8
TINYINTInt8
SMALLINTInt16
INTEGERInt32
BIGINTInt64
REALfloat32
DOUBLEfloat64
DECIMAL(P,S)DECIMAL(P,S)
varcharString
varchar(n)String
CHAR(n)FixedString(n)
VARBINARYString
JSON不涉及
DATEDATE
TIME不涉及
TIME WITH TIME ZONE不涉及
TIMESTAMPDateTime
TIMESTAMP WITH TIME ZONE不涉及

openLooKeng到ClickHouse函数映射

下面列举ClickHouse插件支持下推的函数。说明:“$n”是占位符,用于在函数中表示参数。

聚合统计函数

count($1)
min($1)
max($1)
sum($1)
avg($1)
CORR($1,$2)
STDDEV($1)
stddev_pop($1)
stddev_samp($1)
skewness($1)
kurtosis($1)
VARIANCE($1)
var_samp($1)

数学函数

ABS($1)
ACOS($1)
ASIN($1)
ATAN($1)
ATAN2($1,$2)
CEIL($1)
CEILING($1)
COS($1)
e()
EXP($1)
FLOOR($1)
LN($1)
LOG10($1)
LOG2($1)
MOD($1,$2)
pi()
POW($1,$2)
POWER($1,$2)
RAND()
RANDOM()
ROUND($1)
ROUND($1,$2)
SIGN($1)
SIN($1)
SQRT($1)
TAN($1)

字符串函数

CONCAT($1,$2)
LENGTH($1)
LOWER($1)
LTRIM($1)
REPLACE($1,$2)
REPLACE($1,$2,$3)
RTRIM($1)
STRPOS($1,$2)
SUBSTR($1,$2,$3)
POSITION($1,$2)
TRIM($1)
UPPER($1)

时间日期函数

YEAR($1)
MONTH($1)
QUARTER($1)
WEEK($1)
DAY($1)
HOUR($1)
MINUTE($1)
SECOND($1)
DAY_OF_WEEK($1)
DAY_OF_MONTH($1)
DAY_OF_YEAR($1)

ClickHouse连接器的限制

语法

暂不支持CREATE TABLE操作。

INSERT语句需要使用CAST强制转换,例如table_name_test表中的数据类型为smallint:

insert into table_name_test values (cast(1 as smallint));

由于查询语句的执行顺序不同,ClickHouse支持 as 表达式的别名在where中使用,但在openLooKeng中不允许。

类型限制

暂不支持ClickHouse中的uuid等类型,所有支持类型已在映射表中列出。

有奖捉虫

“有虫”文档片段

0/500

存在的问题

文档存在风险与错误

● 拼写,格式,无效链接等错误;

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 版本号不匹配:文档版本或内容描述和实际软件不一致;

● 对重要数据或系统存在风险的操作,缺少安全提示;

● 排版不美观,影响阅读;

内容描述不清晰

● 描述存在歧义;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

内容获取有困难

● 很难通过搜索引擎,openLooKeng官网,相关博客找到所需内容;

示例代码错误

● 命令、命令参数等错误;

● 命令无法执行或无法完成对应功能;

内容有缺失

● 关键步骤错误或缺失,无法指导用户完成任务,比如安装、配置、部署等;

● 逻辑不清晰,该分类、分项、分步骤的没有给出

● 图形、表格、文字等晦涩难懂

● 缺少必要的前提条件、注意事项等;

● 描述存在歧义

0/500

您对文档的总体满意度

非常不满意
非常满意

请问是什么原因让您参与到这个问题中

您的邮箱

创Issue赢奖品
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
有奖捉虫