皇冠新体育APP

IT技术之家

clickhouse数据处理_clickhouse 明细记录_cxscode

发布信息的时间:2023-08-25 16:14:14 数据库 48次 标签:sql 数据仓库
建表CREATE TABLE log_db.event_log( `ename` String, `app_id` UInt64, `channel` String, `source` String, `platform` String, `openid` String, `order_id` String, `server_id` String, `server_name` String, `imei` String,...

創建库

CREATE/ATTACH DATABASE user_log ENGINE = Ordinary;
ATTACH 也会建库,是metadata导航下不是出现.sqlzip档案,大部分主要用于metadata元数据报告sqlzip档案删掉除后,可以恢复库表组成用到

建表
CREATE TABLE log_db.event_log
(
    `ename` String,
    `app_id` UInt64,
    `channel` String,
    `source` String,
    `platform` String,
    `openid` String,
    `order_id` String,
    `server_id` String,
    `server_name` String,
    `imei` String,
    `oaid` String,
    `idfa` String,
    `system` String,
    `device_name` String,
    `role_id` String,
    `role_name` String,
    `role_level` UInt64,
    `ip` IPv4,
    `amount` Float32,
    `pay_type` UInt64 DEFAULT 0,
    `product_id` String DEFAULT '',
    `product_name` String DEFAULT '',
    `logday` Date,
    `logtime` DateTime
) ENGINE = MergeTree() PARTITION BY toYYYYMM(logtime) ORDER BY (app_id, logtime) SETTINGS index_granularity = 8192
调用字符
ALTER TABLE event_log ADD COLUMN `to_app_id` UInt64;
ALTER TABLE t_event_log ADD COLUMN `to_openid` String;
# 修改游戏数据类型
alter table user modify column user_name Nullable(String);


# 删除字段

alter table youi_log_db.t_event_log drop column pay_mode;
删了统计数据
ALTER TABLE log_db.event_log DELETE WHERE ename = 'login'
系统更新数据分析(未测试软件)
ALTER TABLE <table_name> UPDATE col1 = expr1, ... WHERE <filter>

注意:
1. 该命令必须在版本号大于1.1.54388才可以使用,适用于 mergeTree 引擎

2. 该系统ps命令是异步审理的,能够可以通过查询表 system.mutations 来查询系统ps命令的能否审理完了

举例:


:) select event_status_key, count(*) from test_update where event_status_key in (0, 22) group by event_status_key;
 
┌─event_status_key─┬──count()─┐
│                0 │ 17824710 │
│               22 │     1701 │
└──────────────────┴──────────┘
 
:) ALTER TABLE test_update UPDATE event_status_key=0 where event_status_key=22;
 
0 rows in set. Elapsed: 0.067 sec.
 
 
:) select event_status_key, count(*) from test_update where event_status_key in (0, 22) group by event_status_key;
 
 ┌─event_status_key─┬──count()─┐
 │                0 │ 17826411 │
 └──────────────────┴──────────┘
① 检索列不能够实行创新

:) ALTER TABLE test_update UPDATE event_key = 41 WHERE event_key = 40;
?
Received exception from server (version 18.12.17):
Code: 420. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Cannot UPDATE key column `event_key`.
② 分布式表不能进行更新

Received exception from server (version 18.12.17):
Code: 48. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Mutations are not supported by storage Distributed.
ALTER TABLE UPDATE/DELETE不支持分布式DDL,因此需要在分布式环境中手动在每个节点上local的进行更新/删除数据。

③ 不适反应合頻繁版本升级或point版本升级 随着Clickhouse最新运作愈来愈耗成本,这样过于频繁地的通过最新运作,几率会弄崩云计算平台,请独立运作。 clickhouse 操作使用:

1.CK中添加列:ALTER TABLE 表名称 ON 集群名称 ADD COLUMN 列名称 类型 DEFAULT 注解
eg:ALTER TABLE 表名称 ON 集群名称 ADD COLUMN lvl Int32 DEFAULT 'lvl'
2.CK中修改注释:alter table 表名称 ON 集群名称 COMMENT COLUMN 列名称 注解;
alter table adm_sch_d05_content_live_service_di_local ON 集群名称 COMMENT COLUMN `pv_sid` 'lvl';
3.CK中修改数据类型:ALTER table adm_sch_d05_content_live_service_di_local on 集群名称 MODIFY COLUMN `ord_dt` String;
ALTER table 表名称 ON 集群名称 MODIFY COLUMN 列名称 数据类型;
ALTER table adm_sch_d05_content_live_service_di on 集群名称 MODIFY COLUMN `ord_dt` String;
4.CK中删除列??alter table 表名称 ON 集群名称?drop column 列名称;
ALTER table adm_sch_d05_content_live_service_di_local on 集群名称? drop column `pv_sid`;
注意问题:
不可以修改列名称,CK中不支持修改列名称。
hive表中的日期为String类型到CK中不可以转为Date,会报错。必须为Sting.

普通报错: Too many partitions for single INSERT block(more than 100) 拷贝统计资料布局在100个磁盘分区以上的,导致报错。 好比用准确时间磁盘分区,载入数据文件划分在100天之内会进而引发报错 处里: 1.变大读取设计布局 2.调整安装?Too many partitions for single INSERT block(more than 100) - xibuhaohao - blog园

一鍵此次mysql数据资料 clickhouse从MySQL数据资料同部数据资料_渡°的网站-CSDN网站_mysql数据资料同部clickhouse
CREATE TABLE tmp ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('hostip:3306','db','table','user','passwd');