文件引擎其实是一个不常用的特殊表引擎,结合文件引擎的基础介绍
这边有一个需求:ClickHouse的日志数据存储在表中,不像其他数据库引擎有文件中的日志,能够方便同步和分析,那现在就想仿照其他数据库,将ClickHouse的查询日志表中数据部分过滤同步到文件中,便于其他日志组件将数据汇聚一起分析
table: query_log ---> filter comment with sql ---> create MATERIALIZED view ---> save into files
这边还需要引入一个概念:物化视图
什么是物化视图
物化视图(Materialized View)是一种特殊类型的表 它能够根据定义在其上的SQL查询结果自动更新数据 它并不存储查询表达式本身,而是实际计算和存储了该查询的结果集 当源表有新的数据插入、修改或满足特定条件时,物化视图会实时或者按照配置的策略执行预定义的聚合或其他计算,并将结果写入到物化视图对应的表中
使用场景
- 通过Select请求聚合并查询数据
- 在写入时将数据准备为新格式
- 在写入到特定聚合时准备数据
比较常见的使用:按月、按年分表同步,针对原始表按照指标定期做数据聚合产生中间统计表等
如何实现这个需求
建立一个使用表引擎的表,作为物化视图的目标表
CREATE TABLE default.query_log_file
(
    `event_time` DateTime,
    `user` LowCardinality(String),
    `query_id` String,
     `read_rows` UInt64,
    `read_bytes` UInt64,
    `result_rows` UInt64,
    `result_bytes` UInt64,
    `memory_usage` UInt64,
    `exception` String
)
ENGINE = File(TabSeparated);
确定需要查询的SQL
SELECT   
    event_time,   
    user,   
    query_id AS query,   
    read_rows,   
    read_bytes,   
    result_rows,   
    result_bytes,   
    memory_usage,   
    exception  
FROM clusterAllReplicas('cluster_name', system, query_log)  
WHERE (event_date = yesterday()) AND query_duration_ms > 30000 AND (is_initial_query = 1) AND (query NOT LIKE 'INSERT INTO%')  
ORDER BY query_duration_ms desc  
LIMIT 100
创建物化视图
CREATE MATERIALIZED VIEW query_log_file_view TO default.query_log_file AS 
SELECT 
  event_time,   
    user,   
    query_id,   
    read_rows,   
    read_bytes,   
    result_rows,   
    result_bytes,   
    memory_usage,   
    exception  
FROM system.query_log
WHERE query_duration_ms > 3 AND (is_initial_query = 1) AND (query NOT LIKE 'INSERT INTO%') 
测试
产生测试数据:执行一些查询、alter语句,最好是慢查询,查看是否被视图捕获,查看是否写入文件 如果写入文件,那么后续的采集就基于文件来处理即可,按周写入的format来解析
如果喜欢我的文章的话,可以去GitHub上给一个免费的关注吗?
Featured Tags
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    工具类
                                
                            
        				
                            
                				
                                    XML
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    JAVA
                                
                            
        				
                            
                				
                                    Java
                                
                            
        				
                            
                				
                                    Mybatis
                                
                            
        				
                            
        				
                            
                				
                                    反射
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    代理模式
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    日志
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    工厂方法模式
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    装饰器模式
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    结果集映射
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Web
                                
                            
        				
                            
                				
                                    RESTful
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    WebAPI规范
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SQL
                                
                            
        				
                            
                				
                                    Redis
                                
                            
        				
                            
        				
                            
                				
                                    Jira
                                
                            
        				
                            
                				
                                    SynapseRT
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    有限状态机 State Machine
                                
                            
        				
                            
                				
                                    statemachine
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SpringBoot
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    IDEA
                                
                            
        				
                            
                				
                                    Tomcat
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    Vue
                                
                            
        				
                            
                				
                                    Docker
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Springboot
                                
                            
        				
                            
        				
                            
                				
                                    Apache Ignite
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    项目发布与调试
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    白帽子讲web安全
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    黑名单
                                
                            
        				
                            
                				
                                    通用化
                                
                            
        				
                            
                				
                                    企业中台实践
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    MacOS
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    docker
                                
                            
        				
                            
        				
                            
                				
                                    minio
                                
                            
        				
                            
                				
                                    springboot
                                
                            
        				
                            
                				
                                    分布式存储
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Postgres
                                
                            
        				
                            
                				
                                    数据备份
                                
                            
        				
                            
                				
                                    数据恢复
                                
                            
        				
                            
                				
                                    Elasticsearch
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    K8S
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    抖音小程序
                                
                            
        				
                            
                				
                                    开发实践
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    SpringCloud
                                
                            
        				
                            
                				
                                    PostgreSQL
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Skywalking
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Nacos
                                
                            
        				
                            
        				
                            
                				
                                    Kubernetes
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Secret
                                
                            
        				
                            
                				
                                    ConfigMap
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Git
                                
                            
        				
                            
                				
                                    GitOps
                                
                            
        				
                            
        				
                            
                				
                                    云原生
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    RocketMQ
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    ActiveMQ-Artemis
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    ClickHouse
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Kamailio
                                
                            
        				
                            
                				
                                    SIP
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    sipp
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    Homer
                                
                            
        				
                            
                				
                                    heplify
                                
                            
        				
                            
                				
                                    heplify-server
                                
                            
        				
                            
                				
                                    HEP
                                
                            
        				
                            
        				
                            
        				
                            
                				
                                    MySQL
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    OpenSIPS
                                
                            
        				
                            
                				
                                    sip
                                
                            
        				
                            
                				
                                    DeepSeek
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
                				
                                    Manticore Search
                                
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
                            
        				
        			
                