探索ClickHouse——使用MaterializedView存储kafka传递的数据

这篇具有很好参考价值的文章主要介绍了探索ClickHouse——使用MaterializedView存储kafka传递的数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


在 《探索ClickHouse——连接Kafka和Clickhouse》中,我们讲解了如何使用kafka engin连接kafka,并读取topic中的数据。但是遇到了一个问题,就是数据只能读取一次,即使后面还有新数据发送到该topic,该表也读不出来。
为了解决这个问题,我们引入MaterializedView。

创建表

该表结构直接借用了《探索ClickHouse——使用Projection加速查询》中的表结构。

CREATE TABLE materialized_uk_price_paid_from_kafka ( price UInt32, date Date, postcode1 LowCardinality(String), postcode2 LowCardinality(String), type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0), is_new UInt8, duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0), addr1 String, addr2 String, street LowCardinality(String), locality LowCardinality(String), town LowCardinality(String), district LowCardinality(String), county LowCardinality(String) ) ENGINE = MergeTree ORDER BY (postcode1, postcode2, addr1, addr2);

CREATE TABLE materialized_uk_price_paid_from_kafka
(
price UInt32,
date Date,
postcode1 LowCardinality(String),
postcode2 LowCardinality(String),
type Enum8(‘terraced’ = 1, ‘semi-detached’ = 2, ‘detached’ = 3, ‘flat’ = 4, ‘other’ = 0),
is_new UInt8,
duration Enum8(‘freehold’ = 1, ‘leasehold’ = 2, ‘unknown’ = 0),
addr1 String,
addr2 String,
street LowCardinality(String),
locality LowCardinality(String),
town LowCardinality(String),
district LowCardinality(String),
county LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (postcode1, postcode2, addr1, addr2)
Query id: 55b16049-a865-4d54-9333-d661c6280a09
Ok.
0 rows in set. Elapsed: 0.005 sec.

创建MaterializedView

CREATE MATERIALIZED VIEW uk_price_paid_from_kafka_consumer_view TO materialized_uk_price_paid_from_kafka AS SELECT splitByChar(' ', postcode) AS p, toUInt32(price_string) AS price, parseDateTimeBestEffortUS(time) AS date, p[1] AS postcode1, p[2] AS postcode2, transform(a, ['T', 'S', 'D', 'F', 'O'], ['terraced', 'semi-detached', 'detached', 'flat', 'other']) AS type, b = 'Y' AS is_new, transform(c, ['F', 'L', 'U'], ['freehold', 'leasehold', 'unknown']) AS duration, addr1, addr2, street, locality, town, district, county FROM uk_price_paid_from_kafka;

这样kafka topic中的数据被清洗到materialized_uk_price_paid_from_kafka表中。

查询

select * from materialized_uk_price_paid_from_kafka;

探索ClickHouse——使用MaterializedView存储kafka传递的数据,clickhouse,clickhouse,kafka,数据库
我们在给topic发送下面的内容

“{5FA8692E-537B-4278-8C67-5A060540506D}”,“19500”,“1995-01-27 00:00”,“SK10 2QW”,“T”,“N”,“L”,“38”,“”,“GARDEN STREET”,“MACCLESFIELD”,“MACCLESFIELD”,“MACCLESFIELD”,“CHESHIRE”,“A”,“A”

再查询表

select * from materialized_uk_price_paid_from_kafka;

探索ClickHouse——使用MaterializedView存储kafka传递的数据,clickhouse,clickhouse,kafka,数据库文章来源地址https://www.toymoban.com/news/detail-729114.html

到了这里,关于探索ClickHouse——使用MaterializedView存储kafka传递的数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用clickhouse kafka表引擎消费kafka写入clickhouse

    1:seatunnel 消费kafka数据写入clickhouse 文章目录 系列文章目录 文章目录 前言 1.创建kafka 引擎表  2.创建clickhouse MergeTree表 3.创建kafka物化视图写入结构表 三、问题 1、修改物化视图 总结 本文使用 seatunnel 消费kafka数据写入clickhouse 文章的kafka topic以及格式,用另一种方式写入cl

    2024年02月17日
    浏览(41)
  • 探索ClickHouse——使用Projection加速查询

    在测试Projection之前,我们需要先创建一张表,并导入大量数据。 我们可以直接使用指令,从URL指向的文件中获取内容并导入表。但是担心网络不稳定,我们先将文件下载下来。 28497127 pp-complete.csv -rw-rw-r-- 1 fangliang fangliang 4982107267 Aug 29 05:13 pp-complete.csv 即这个文件约有2850万行

    2024年02月07日
    浏览(29)
  • Clickhouse 数据存储

            数据是以分区目录的形式组织的,每个分区独立分开存储.这种形式,查询数据时,可以有效的跳过无用的数据文件。         分区键的取值,生成分区ID,分区根据ID决定。根据分区键的数据类型不同,分区ID的生成目前有四种规则: (1)不指定分区键 (2)整形 (

    2024年02月14日
    浏览(30)
  • ClickHouse配置Hdfs存储数据

    背景 由于公司初始使用Hadoop这一套,所以希望ClickHouse也能使用Hdfs作为存储 看了下ClickHouse的文档,拿Hdfs举例来说,有两种方式来完成,一种是直接关联Hdfs上的数据文件,比如说 TSV 格式的文件,这种模式不支持插入数据。第二种是将Hdfs作为存储,可以理解为云存储方式,这

    2024年02月10日
    浏览(28)
  • ClickHouse和Doris超大数据集存储

    ClickHouse和Doris是两种流行的超大数据集存储方案。虽然它们都面向超大数据集存储,但是它们的设计和实现却不尽相同。在本文中,我们将从实战经验的角度,介绍ClickHouse和Doris的区别,并讨论它们的适用场景。 ClickHouse是俄罗斯互联网公司Yandex开发的列存储数据库。它最初

    2024年02月09日
    浏览(31)
  • 万字长文详述ClickHouse在京喜达实时数据的探索与实践

    京喜达技术部在社区团购场景下采用JDQ+Flink+Elasticsearch架构来打造实时数据报表。随着业务的发展 Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频次深度分页导出导致ES宕机、不能精确去重统计,多个字段聚合计算时性能下降明显。所以引入ClickHouse来处理这些

    2024年02月06日
    浏览(25)
  • 【入门篇】ClickHouse最优秀的开源列式存储数据库

    ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 在传统的行式数据库系统中,数据按如下顺序存储: Row WatchID JavaEnable Title GoodEvent EventTime #0 89354350662 1 Investor Relations 1 2016-05-18 05:19:20 #1 90329509958 0 Contact us 1 2016-05-18 08:10:20 #2 89953706054 1 Mission 1 2016-05-18 07:38:00 #N …

    2024年02月04日
    浏览(33)
  • ClickHouse 与 Kafka 整合: 实时数据流处理与分析解决方案

    随着数据量的不断增长,实时数据处理和分析变得越来越重要。ClickHouse 和 Kafka 都是在现代数据技术中发挥着重要作用的工具。ClickHouse 是一个高性能的列式数据库,专为 OLAP 和实时数据分析而设计。Kafka 是一个分布式流处理平台,用于构建实时数据流管道和流处理应用程序

    2024年02月22日
    浏览(36)
  • 使用 Spring Boot 整合 Kafka:实现高效的消息传递

    Kafka 是一种流处理平台,用于在分布式系统中处理高吞吐量的数据流。它是一种基于发布订阅模式的消息系统,能够处理来自多个应用程序的数据流。Kafka 具有高度的可扩展性、可靠性和性能,使得它成为处理大数据的流行选择。 Spring Boot 是一种开源框架,用于简化 Java 应用

    2024年02月14日
    浏览(36)
  • 【大数据】Kafka 数据存储

    Kafka 中的消息是存储在磁盘上的,一个分区副本对应一个 日志 (Log)。为了防止 Log 过大,Kafka 又引入了 日志分段 (LogSegment)的概念,将 Log 切分为多个 LogSegment ,相当于一个巨型文件被平均分配为多个相对较小的文件,这样也便于消息的维护和清理。事实上,Log 和 LogS

    2024年01月17日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包