大数据-135 - ClickHouse 集群 - 数据类型 实际测试

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据-135 - ClickHouse 集群 - 数据类型 实际测试

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(已更完)

Spark(已更完)

Flink(已更完)

ClickHouse(正在更新···)

章节内容

上节我们完成了如下的内容:


单机安装

单机测试

集群安装

集群启动

上节情况

上节已经完成了ClickHouse 的安装和启动。

测试连接

clickhouse-client -m --host h121.wzk.icu --port 9000 --user default --password clickhouse@wzk.icu

如果可以从 122 连接到 121 说明你的服务已经搭建好了。

你可以测试以下,是否三台节点之间都是互通的,确保服务和服务之间一切正常,方便我们后续的学习研究。

检验集群

任意连接一个节点,我们进行测试

h121

clickhouse-client -m --host h121.wzk.icu --port 9000 --user default --password clickhouse@wzk.icu
SELECT * FROM system.clusters WHERE cluster = 'perftest_3shards_1replicas';

h122

clickhouse-client -m --host h122.wzk.icu --port 9001 --user default --password clickhouse@wzk.icu

h123

clickhouse-client -m --host h123.wzk.icu --port 9001 --user default --password clickhouse@wzk.icu

数据类型

简单介绍

支持DML,为了提高性能,较传统数据库而言,ClickHouse提供了复合数据类型。ClickHouse的Update和Delete就是由Alter变种实现的。

启动测试

我这里采用了 h121 机器的服务,当然如果你使用别的机器的服务也可以。

clickhouse-client -m --host h121.wzk.icu --port 9000 --user default --password clickhouse@wzk.icu

整型

固定长度的整型,包括有符号整型,和无符号整型。

SELECT 255;
SELECT -128;

执行的结果截图如下图:

浮点型

建议尽可能以整数形式存储数据,例如,将固定精度的数字转换为整数值,如时间用毫秒为单位表示,因为浮点型计算行为可能引起四舍五入的误差。

SELECT 1-0.9;
SELECT 1/0;
SELECT 0/0;

执行的结果如下图:

Decimal

如果要求更高精度,可以选择Decimal类型,格式:Decimal(P,S)

  • P:代表精度,决定总位数(正数部分+小数部分),取值0-38
  • S:代表规模,决定小数位数,取值范围是0-P

ClickHouse对Decimal提供三种简写:

  • Decimal32
  • Decimal64
  • Decimal128

相加、减精度取大

SELECT toDecimal32(2, 4) + toDecimal32(2, 2);
SELECT toDecimal32(4, 4) + toDecimal32(2, 2);

运行结果的截图如下图所示:

相乘精度取和

SELECT toDecimal32(2, 2) * toDecimal32(4, 4)

运行结果的截图如下图所示:

相除精度取被除数

SELECT toDecimal32(4, 4) / toDecimal32(2, 2)

运行结果的截图如下图所示:

字符串

String

字符串可以任意长度,它可以包含任意的字符集,包含空字节。

FixedString(N)

固定长度为N的字符串,N必须是严格的正自然数。当服务端读取长度小于N的字符串时候,通过在字符串末尾添加空字节来达到N字节长度。当服务端读取长度小于N的字符串的时候,将返回错误。


SELECT toFixedString('abc', 5), LENGTH(toFixedString('abc', 5)) AS LENGTH;

执行结果如下图:

UUID

ClickHouse将UUID这种在传统数据库中充当主键的类型直接做成了数据类型

创建新表

CREATE TABLE UUID_TEST(
  `c1` UUID,
  `c2` String
)ENGINE = memory;

执行结果如下图:

插入数据

INSERT INTO UUID_TEST SELECT generateUUIDv4(), 't1';
INSERT INTO UUID_TEST(c2) VALUES('t2');

执行结果如下图:

查询结果

SELECT * FROM UUID_TEST;

执行结果如下图:

枚举类型

包括 Enum8 和 Enum16 类型,保存 string = integer 的对应关系。

Enum8 用 String = Int8 对描述

Enum16 用 String = Int16 对描述。

创建新表

CREATE TABLE t_enum (
  x Enum8('hello' = 1, 'word' = 2)
) ENGINE = TinyLog;

执行结果如下所示:

注意:这个列 x 只能存储定义列出的值,“Hello” 或者 “world”,如果插入其他值则会报错。

插入数据

INSERT INTO t_enum VALUES ('hello'), ('word'), ('hello');

执行结果如下图:

查询数据

SELECT * FROM t_enum;

如果需要看到对应行的数值,则必须将Enum转换为整数类型。

SELECT CAST(x, 'Int8') FROM t_enum;

执行结果如下图:

数组

Array(T):由 T 类型元素组成的数组。

T可以是任意类型,包含数组类型,但不推荐使用多维数组,ClickHouse对多维数组的支持有限。

例如,不能再MergeTree表中存储多维数组。


创建数组

SELECT array(1, 2.0) AS x, toTypeName(x);
SELECT [1, 2] AS x, toTypeName(x);

执行结果如下图:

如果是声明字段的时候,则需要指明数据类型:

CREATE TABLE Array_test (
  `c1` Array(String)
) ENGINE = Memory;

元组

Tuple(T1,T2):元组,每个元素都有单独的类型。

创建元组的示例:

SELECT tuple(1, 'a') AS x, toTypeName(x);

执行的结果如下图:

注意:在定义表字段的时候也需要指明数据类型。

Date、DateTime

日期类型、用两个字节存储,表示 1970-01-01 (无符号)到当前的日期值。

布尔型

没有单独的类型来存储布尔值,可以使用 UInt8 类型,取值限制为 0 或 1。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
zdl
|
1月前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
155 56
|
17天前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
112 9
|
25天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
29 6
|
2天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
9 0
|
27天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
28 1
|
1月前
|
SQL 存储 大数据
单机顶集群的大数据技术来了
大数据时代,分布式数仓如MPP成为热门技术,但其高昂的成本让人望而却步。对于多数任务,数据量并未达到PB级,单体数据库即可胜任。然而,由于SQL语法的局限性和计算任务的复杂性,分布式解决方案显得更为必要。esProc SPL作为一种开源轻量级计算引擎,通过高效的算法和存储机制,实现了单机性能超越集群的效果,为低成本、高效能的数据处理提供了新选择。
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
37 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
539 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
74 1
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
50 4
下一篇
DataWorks