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 格式数据为例操作:


相关推荐
f***01931 天前
clickhouse-介绍、安装、数据类型、sql
数据库·sql·clickhouse
j***63083 天前
clickhouse-介绍、安装、数据类型、sql
数据库·sql·clickhouse
IT油腻大叔6 天前
MySQL VS ClickHouse 索引结构对比分析
mysql·clickhouse
-KamMinG6 天前
解决 ClickHouse 备份性能问题:从原生 BACKUP 迁移到 clickhouse-backup 的实战经验
clickhouse
2301_8075832310 天前
ubuntu22.04集群部署clickhouse详细步骤
linux·clickhouse·zookeeper
Azure++12 天前
Centos安装clickhouse
linux·clickhouse·centos
阳爱铭15 天前
ClickHouse 中至关重要的两类复制表引擎——ReplicatedMergeTree和 ReplicatedReplacingMergeTree
大数据·hive·hadoop·sql·clickhouse·spark·hbase
liao__ran20 天前
ClickHouse CPU 排查快速参考指南
运维·服务器·clickhouse
XueminXu20 天前
ClickHouse查看数据库、表、列等元数据信息
clickhouse·system·元数据·databases·system.tables·system.columns·system.settings