Clickhouse系列之连接工具连接、数据类型和数据库

基本操作

  • 一、使用连接工具连接
  • 二、数据类型
    • 1、数字类型
      • Int
      • Float
      • Decimal
    • 2、字符串类型
      • String
      • FixedString
      • UUID
    • 3、时间类型
      • DateTime
      • DateTime64
      • Date
    • 4、复合类型
      • Array
      • Enum
    • 5、特殊类型
      • Nullable
  • 三、数据库

一、使用连接工具连接

上一篇介绍了clickhouse的命令行登录,今天来介绍一下使用连接工具是如何登录的。
首先下载dbeaver连接工具,然后直接打开软件,如下图操作。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果发现8123不通,先排查防火墙是否关闭或者是否已添加8123端口,如果不是防火墙的问题,那么要查看/etc/clickhouse-server/config.xml文件里的<listen_host></listen_host>标签的值是否为0.0.0.0,如果不是则要修改为0.0.0.0,然后重启clickhosue服务:systemctl restart clickhouse-server。如果上述两个都正常是能够正常连接的,正常的端口如下图:
在这里插入图片描述

二、数据类型

1、数字类型

Int

在这里插入图片描述

Float

在这里插入图片描述

Decimal

如果要求更高精度的数值运算,则需要使用定点数。ClickHouse提供了Decimal32、Decimal64和Decimal128三种精度的定点数。可以通过两种形式声明定点:简写方式有Decimal32(S)、Decimal64(S)、Decimal128(S)三种,原生方式为Decimal(P,S),其中:
·P代表精度,决定总位数(整数部分+小数部分),取值范围是1~38;
·S代表规模,决定小数位数,取值范围是0~P。

2、字符串类型

字符串类型可以细分为String、FixedString和UUID三类。

String

字符串由String定义,长度不限。因此在使用String的时候无须声明大小。它完全代替了传统意义上数据库的Varchar、Text、Clob和Blob等字符类型。

FixedString

FixedString类型和传统意义上的Char类型有些类似,对于一些字符有明确长度的场合,可以使用固定长度的字符串。定长字符串通过FixedString(N)声明,其中N表示字符串长度。

UUID

UUID是一种数据库常见的主键类型,在ClickHouse中直接把它作为一种数据类型。UUID共有32位,它的格式为8-4-4-4-12。如果一个UUID类型的字段在写入数据时没有被赋值,则会依照格式使用0填充,例如:
00000000-0000-0000-0000-000000000000

3、时间类型

时间类型分为DateTime、DateTime64和Date三类。ClickHouse目前没有时间戳类型。时间类型最高的精度是秒,也就是说,如果需要处理毫秒、微秒等大于秒分辨率的时间,则只能借助UInt类型实现。

DateTime

DateTime类型包含时、分、秒信息,精确到秒,支持使用字符串形式写入,例如:
2019-06-22 00:00:00

DateTime64

DateTime64可以记录亚秒,它在DateTime之上增加了精度的设置,例如:
2019-06-22 00:00:00.00

Date

Date类型不包含具体的时间信息,只精确到天,它同样也支持字符串形式写入,例如:
2019-06-22

4、复合类型

除了基础数据类型之外,ClickHouse还提供了数组、枚举等复合类型。

Array

在同一个数组内可以包含多种数据类型,例如数组[1,2.0]是可行的。但各类型之间必须兼容,例如数组[1,‘2’]则会报错。在定义表字段时,数组需要指定明确的元素类型,例如:
CREATE TABLE Array_TEST (
c1 Array(String)
) engine = Memory

Enum

ClickHouse支持枚举类型,这是一种在定义常量时经常会使用的数据类型,ClickHouse提供了Enum8和Enum16两种枚举类型。
CREATE TABLE Enum_TEST (
c1 Enum8(‘ready’ = 1, ‘start’ = 2, ‘success’ = 3, ‘error’ = 4)
) ENGINE = Memory;

在定义枚举集合的时候,有几点需要注意。首先,Key和Value是不允许重复的,要保证唯一性。其次,Key和Value的值都不能为Null,但Key允许是空字符串。在写入枚举数据的时候,只会用到Key字符串部分,例如:
INSERT INTO Enum_TEST VALUES(‘ready’);

数据在写入的过程中,会对照枚举集合项的内容逐一检查。如果Key字符串不在集合范围内则会抛出异常

5、特殊类型

Nullable

准确来说,Nullable并不能算是一种独立的数据类型,它更像是一种辅助的修饰符,需要与基础数据类型一起搭配使用。
CREATE TABLE Null_TEST (
c1 String,
c2 Nullable(UInt8)
) ENGINE = Memory;

三、数据库

创建数据库:
CREATE DATABASE IF NOT EXISTS db_name

查看数据库:
SHOW DATABASES
┌─name───┐
│ DB_TEST │
│ default │
│ system │
└───────┘

切换数据库:
use db_name

删除数据库:
DROP DATABASE [IF EXISTS] db_name

如果你有什么意见或建议,请在评论区发表评论!如果能帮助到你学习新知识,欢迎点赞、收藏+关注

下集预告,Clickhouse的数据表相关知识,包括:数据表定义、临时表、分区表还有数据表的基本操作(修改、删除、清空等操作)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大厂AI课学习笔记NO.52】2.3深度学习开发任务实例(5)需求采集考虑维度

今天来学习&#xff0c;怎么做需求分析&#xff0c;如何明确数据采集需求。 我把自己考试通过的学习笔记&#xff0c;都分享到这里了&#xff0c;另外还有一个比较全的思维脑图&#xff0c;我导出为JPG文件了。下载地址在这里&#xff1a;https://download.csdn.net/download/g…

软件设计师软考题目解析02 --每日五题

想说的话&#xff1a;要准备软考了。0.0&#xff0c;其实我是不想考的&#xff0c;但是吧&#xff0c;由于本人已经学完所有知识了&#xff0c;只是被学校的课程给锁在那里了&#xff0c;不然早找工作去了。寻思着反正也无聊&#xff0c;就考个证玩玩。 本人github地址&#xf…

C++之std::async

std::async是C提供的一个异步处理函数。 函数原型&#xff1a; template<typename _Fn, typename... _Args> future<__async_result_of<_Fn, _Args...>> async(launch __policy, _Fn&& __fn, _Args&&... __args); 参数说明: int thFun(in…

MT8791迅鲲900T联发科5G安卓核心板规格参数_MTK平台方案定制

MT8791安卓核心板是一款搭载了旗舰级配置的中端手机芯片。该核心板采用了八核CPU架构设计&#xff0c;但是升级了旗舰级的Arm Cortex-A78核心&#xff0c;两个大核主频最高可达2.4GHz。配备了Arm Mali-G68 GPU&#xff0c;通过Mali-G88的先进技术&#xff0c;图形处理性能大幅提…

xtu oj 1233 Cycle Matrix 2.0

题目描述 给定N&#xff0c;输出一个N*N的矩阵&#xff0c;矩阵为N层&#xff0c;每层是一个字符&#xff0c;从A到Z。 比如说N3,矩阵为 CCCCC CBBBC CBABC CBBBC CCCCC输入 第一行是一个整数K&#xff08;K≤50&#xff09;,表示样例数。 每个样例占1行&#xff0c;为一个整…

更新从MySQL中读取数据时发现MySQL中的时间字段会相差8小时?

这里写自定义目录标题 修改事件A中的某些字段的数据&#xff0c;规则表中事件A对应的规则字段不发生改变 业务需求&#xff1a;需要将MySQL中的两张表同步到ES中&#xff08;新增、修改、删除同步&#xff09;&#xff0c;优化事件查询速度 解决方案&#xff1a;使用logstash-i…

对实现移动应用界面设计的思考

1. 屏幕 1.1. 屏幕的职责 现在的移动设备都使用触摸屏&#xff0c;触摸屏承担了两项职责&#xff1a;展示界面和处理用户操作指令。界面上展示的东西又可以分为内容和样式。比如展示一行大标题&#xff0c;标题文字是内容&#xff0c;字体、字号、颜色、背景色等等是样式。处…

Python 实现 ATR 指标计算(真实波幅):股票技术分析的利器系列(10)

Python 实现 ATR 指标计算&#xff08;真实波幅&#xff09;&#xff1a;股票技术分析的利器系列&#xff08;10&#xff09; 介绍算法解释 代码rolling函数介绍核心代码 完整代码 介绍 ATR&#xff08;真实波幅&#xff09;是一种技术指标&#xff0c;用于衡量市场波动性的程…

北航历届复试总结

政治题 科技兴国 英文翻译&#xff08;读一遍英文再翻译&#xff09; 随机抽一段计算机相关的英文论文&#xff0c;读一遍后翻译。建议全读完后再翻译&#xff0c;这样遇到不会的单词可以靠上下文猜一猜意思。之后如果你英语不强&#xff08;像我这种菜鸡&#xff09;&#xf…

【AHK】 MacOS复制粘贴习惯/MacOS转win键位使用习惯修改建议

自从转Mos后&#xff0c;转回win习惯又很不适应&#xff0c;怎么尽可能地降低两者的操作差异呢&#xff1f;通过AHK将大部分的Alt键位操作适当修改即可&#xff0c;特别是Home和End这类键&#xff0c;感觉是Mac的使用习惯更舒适 !c:: send,^c return!v:: send,^v return!x:: se…

content-type

content-type是什么 Content-Type 是 HTTP 协议中的一个头部字段&#xff08;Header Field&#xff09;&#xff0c;用于指示发送的实体数据的媒体类型&#xff08;Media Type&#xff09;。该字段用于告知服务器或客户端接收到的数据的内容类型&#xff0c;以便正确地处理和解…

如何获取 mysql 外键索引的元数据信息?

背景 对数据进行统一的管理处理&#xff0c;后续方便使用。 基本信息 见上一篇的处理。 select * from information_schema.KEY_COLUMN_USAGE where REFERENCED_TABLE_SCHEMA test \G;*************************** 1. row ***************************CONSTRAINT_CATALOG:…

Linux--ACL权限管理

一.ACL权限管理简介 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种文件权限管理机制&#xff0c;它提供了比传统的UGO&#xff08;用户、组、其他&#xff09;权限更灵活的权限设置方式。以下是ACL的一些主要功能&#xff1a; 针对特定用户或…

【Linux】docker构建环境编译运行linux内核

文章目录 1. 使用docker构建linux内核编译运行环境1.1. 为普通用户安装docker并验证是否安装成功1.1.1. 安装docker稳定版1.1.2. 启动docker1.1.3. 将当前用户加入docker用户组1.1.4. 验证docker是否安装成功 1.2. docker基本使用1.2.1. 列出所有镜像1.2.2. 查看当前所有容器的…

Vue3学习——路由

多级路由 routes:[{path:/about,component:About,},{path:/home,component:Home,children:[ //通过children配置子级路由{path:news, //此处一定不要写&#xff1a;/newscomponent:News},{path:message,//此处一定不要写&#xff1a;/messagecomponent:Message}]} ]命名路由 …

lower_bound详解

lower_bound是C标准模板库(STL)中的一个算法&#xff0c;用于在有序区间中查找第一个大于或等于给定值的元素的位置。这个函数非常有用&#xff0c;特别是当我们需要在有序数据集中进行二分查找时。下面是对lower_bound函数的详细讲解&#xff0c;包括其用法、原理、实现细节以…

pyqt如何实现拖拽打开文件(通过windows的快捷方式打开文件)

桌面端的开发中如何通过windows的快捷方式打开文件&#xff0c;那么如何将需要打开的数据传递给qt程序呢&#xff1f; 研究了一下发现很简单 通过sys.argv可以轻松的实现传参 sys.argv import sys print(sys.argv)这个方法可以获取系统传递给程序的参数&#xff0c;默认是个列…

企业型多域名SSL证书

多域名SSL证书是目前市场上用的比较多的一种&#xff0c;主要解决多个不同规则的域名申请&#xff0c;但不适合主域名&#xff08;根域名&#xff09;相同的域名&#xff0c;因为这种域名直接申请通配符。 企业型其实就是OV类型或者EV类型&#xff0c;由于在CA/B产品名称规范中…

pi(2)

上一次我们说到了这个程序 #include <iostream> #include <cmath> #include <limits> int continuedFractionTerm(int n) { if (n 0) return 1; if (n % 2 0) { return 2 * n 1; } else { return 2 * n; } } std::pair<int, int> be…

jetson nano——安装archiconda

目录 1.archiconda3我在这提供了下载链接&#xff0c;点解下面链接即可1.看好文件所在位置&#xff0c;如果装错了&#xff0c;那么环境变量的路径自己进行相应的修改。2.添加环境变量 2.可能部分伙伴输入一些激活&#xff0c;啥的命令激活不了&#xff0c;那么输入下面这些代码…