ClickHouse--10--临时表、视图、向表中导入导出数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


1.临时表

1.1 特征

ClickHouse 支持临时表,临时表具备以下特征:

  • 当会话结束或者链接中断时,临时表将随会话一起消失。
  • 临时表仅能够使用 Memory 表引擎,创建临时表时不需要指定表引擎。
  • 无法为临时表指定数据库。它是在数据库之外创建的,与会话绑定。
  • 如果临时表与另一个表名称相同,那么当在查询时没有显式的指定 db 的情况下,
    将优先使用临时表。
  • 对于分布式处理,查询中使用的临时表将被传递到远程服务器。

1.2 创建一个临时表

示例


2.视图

ClickHouse 中视图分为普通视图和物化视图,两者区别如图所示


2.1 普通视图

  • 普通视图不存储数据,它只是一层 select 查询映射,类似于表的别名或者同义词,能简化查询,对原有表的查询性能没有增强的作用,具体性能依赖视图定义的语句,
  • 当从视图中查询时,视图只是替换了映射的查询语句。普通视图当基表删除后不可用。

    示例:



2.2 物化视图

  • 物化视图是查询结果集的一份持久化存储,所以它与普通视图完全不同,而非常趋近于表。"查询结果集"的范围很宽泛,可以是基础表中部分数据的一份简单拷贝,也可以是多 表 join 之后产生的结果或其子集,或者原始数据的聚合指标等等。
  • 物化视图创建好之后,若源表被写入新数据则物化视图也会同步更新,POPULATE 关键字决定了物化视图的更新策略,若有 POPULATE 则在创建视图的过程会将源表已经存在的 数据一并导入,类似于 create table ... as,若无 POPULATE则物化视图在创建之后 没有数据,只会在创建只有同步之后写入源表的数据,clickhouse 官方并不推荐使用 populated,因为在创建物化视图的过程中同时写入的数据不能被插入物化视图。
  • 物化视图是种特殊的数据表,创建时需要指定引擎,可以用 show tables 查看。另外,物化视图不支持 alter 操作。
  • 产生物化视图的过程就叫做"物化"(materialization),广义地讲,物化视图是 数据库中的预计算逻辑+显式缓存,典型的空间换时间思路,所以用得好的话,它可以避免 对基础表的频繁查询并复用结果,从而显著提升查询的性能。

    示例:


3.向表中导入导出数据

ClickHouse 中 支 持 多 种 数 据 格 式 数 据 导 入 和 导 出 , 支 持 格 式 有ORC,Parquet,Avro,Protobuf,xml,json,csv 等 , 具 体 操 作 参 照 官 网 :https://clickhouse.com/docs/en/sql-reference/statements/alter/update

3.1 案例

  • 下面以向表导入导出 CSV 格式数据为例操作:


相关推荐
阿演21 小时前
我把这个桌面数据库工具又升级了一轮:现在支持 ClickHouse,还能可视化建表和改表了
数据库·clickhouse·ai编程·数据库连接工具
海南java第二人1 天前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
海南java第二人2 天前
ClickHouse 主键索引详解:不是唯一标识,而是排序规则
clickhouse
海南java第二人3 天前
ClickHouse 列式存储深度解析:优点、缺点与选型实战
数据库·clickhouse
努力攻坚操作系统4 天前
ClickHouse虚拟列
clickhouse
海南java第二人4 天前
ClickHouse 备份与恢复完全指南:从物理拷贝到内置备份的实战选择
clickhouse·备份与恢复
海南java第二人4 天前
ClickHouse Sharding 分片与 Partitioning 分区:区别、联系与生产实践
clickhouse·分区·分片
狼与自由6 天前
mysql到clickhouse
数据库·mysql·clickhouse
云天AI实战派6 天前
跨境出海全流程实战:用 Medusa + Hyperswitch + ClickHouse 搭建落地页、支付订阅、客服工单与多语言 SEO 闭环
大数据·人工智能·clickhouse·独立开发·跨境出海·medusa
海南java第二人7 天前
ClickHouse 实际应用类面试通关:项目案例、生产踩坑与实战经验
clickhouse·面试·实际应用类