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


相关推荐
天道有情战天下2 天前
ClickHouse使用Docker部署
clickhouse·docker·容器
冷雨夜中漫步3 天前
ClickHouse常见问题——ClickHouseKeeper配置listen_host后不生效
java·数据库·clickhouse
qq_339191143 天前
docker 启动一个clickhouse , docker 创建ck数据库
clickhouse·docker·容器
Kookoos5 天前
ABP + ClickHouse 实时 OLAP:物化视图与写入聚合
clickhouse·c#·linq·abp vnext·实时olap
喂完待续6 天前
【Big Data】AI赋能的ClickHouse 2.0:从JIT编译到LLM查询优化,下一代OLAP引擎进化路径
大数据·数据库·clickhouse·数据分析·olap·big data·序列晋升
阿里云大数据AI技术15 天前
鹰角网络基于阿里云 EMR Serverless StarRocks 的实时分析工程实践
starrocks·clickhouse·阿里云·emr·实时分析
更深兼春远17 天前
flink+clinkhouse安装部署
大数据·clickhouse·flink
Sais_Z21 天前
ClickHouse的学习与了解
数据库·clickhouse
风中凌乱24 天前
ClickHouse-Backup的安装与部署
clickhouse