ClickHouse 学习
DDL
添加数据库字段
alter table user_tags add column last_subject String;
alter table user_tags add column class_trust_valids Int8;
删除列
ALTER TABLE [db].name [ON CLUSTER cluster] DROP COLUMN ...
日期函数 当toDate 遇到空的串报异常时
select toDate('');
DB::Exception: Cannot parse date: value is too short: Cannot parse Date from String: While processing toDate('').:) select toDateOrZero('');┌─toDateOrZero('')─┐
│ 1970-01-01 │
└──────────────────┘:) SELECT toDateOrNull('')┌─toDateOrNull('')─┐
│ ᴺᵁᴸᴸ │
└──────────────────┘:) SELECT toDate(parseDateTimeBestEffortOrNull('20210601'))┌─toDate(parseDateTimeBestEffortOrNull('20210601'))─┐
│ 2021-06-01 │
└───────────────────────────────────────────────────
ClickHouse 视图
- 普通视图:不会存储数据
- 物化视图:1、储存数据;2、有引擎,在磁盘存储;3、同步映射表数据
普通视图
CREATE [OR REPLACE] VIEW [IF NOT EXISTS] [db.]table_name [ON CLUSTER] AS SELECT ...
物化视图
CREATE MATERIALIZED VIEW [IF NOT EXISTS] [db.]table_name [ON CLUSTER] [TO[db.]name] [ENGINE = engine] [POPULATE] AS SELECT ...
例子:
CREATE MATERIALIZED VIEW IF NOT EXISTS view_2 ENGINE = MergeTree() PARTITION BY ds ORDER BY (unionid) POPULATE AS
SELECT distinct unionid, ds
from user_tags
where service_wx <> '' AND (grade = '2018' OR grade = '2017' OR grade = '2016' OR grade = '2015' OR grade = '2014' OR grade = '2013' OR grade = '2012' OR grade = '2011' OR grade = '2010' )
AND is_teacher=0 and (is_parent=1 or is_student=1)
;
- 视图定义包括关键字POPULATE,决定了物化视图的更新策略:若有POPULATE 则在创建视图的过程会将源表已经存在的数据一并导入,类似于 create table … as
- 若无POPULATE 则物化视图在创建之后没有数据
如果物化视图是由两个或者多个表Join生成,那么仅当左表插入数据时才更新,右表插入数据不更新(待验证),Join的数据类型一定要对等!它不会像Mysql一样做隐式类型转换!!不然就会出现类似: DB::Exception: Received from localhost:9000. DB::Exception:Type mismatch of columns to JOIN by: user_name String at left, uv Int32 at right.
参考:https://blog.csdn.net/whiteBearClimb/article/details/111284176
网站
中文教程网站https://clickhouse.com/docs/zh/sql-reference/syntax/
相关文章:
zTree实现节点修改的实时刷新
一、应用场景 在实际应用中会遇到动态操作树各节点的需求,在增加树节点后如何实时动态刷新树就十分有必要了。二、项目实践 比如要在test1234节点下新建子节点,首先要选中test1234节点,添加成功后,根据test1234结点的TID去后台请求…

magento常用软件
常见问题: 1. 装完插件导致后台配置出现 Access denied 信息,需要重置账号权限,方可恢复正常。 2. 大多数无法安装插件时,请删除 /downloader/pearlib/pear.ini 文件,最后到 Connect Manager 里保存下设置&#…

连接惠普打印机(通过WIFI)
第一步 找到打印机型号 第二步 到惠普官方网站下载对应驱动 第三步 安装驱动 第四步 安装驱动后选择WIFI连接(IP在打印机显示屏幕上显示,如果输入打印机屏幕IP连接失败;需要获取打印机真正的IP地址,在HP设备工具箱中获取ÿ…
ADO.NET的连接模式
1、连接模式:客户机一直保持和数据库服务器的链接,适合数据传输量少,系统规模不大、客户机和服务器在同一网络内的环境。 使用连接模式下数据访问的步骤如下: a、使用connection对象连接数据库 b、使用command(命令&am…

App调用safar
/调用safar打开网页 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:"http://www.cnblogs.com/foxmin"]]; 调用app store (省略号后面加的是产品的id等一些参数) // [[UIApplication sharedApplication] openURL:[NSURL URLWithString:"i…

Spring Boot 整合Redis 实现缓存
本文提纲一、缓存的应用场景二、更新缓存的策略三、运行 springboot-mybatis-redis 工程案例四、springboot-mybatis-redis 工程代码配置详解运行环境:Mac OS 10.12.xJDK 8 Redis 3.2.8Spring Boot 1.5.1.RELEASE一、缓存的应用场景 什么是缓存?在互联网…

Sqlite3支持的数据类型 日期函数 Sqlite3 函数
Sqlite3支持的数据类型 NULL INTEGER REAL TEXT BLOB 但实际上,sqlite3也接受如下的数据类型: smallint 16 位元的整数。 interger 32 位元的整数。 decimal(p,s) p 精确值和 s 大小的十进位整数,精确值p是指全部有几个数(digits)大小值&…

Element el-switch 组件样式修改 将文字显示到组件内
Element el-switch 现在的样式无法将文字显示到组件内 ,需要自己修改样式。具体如下 <el-switch:disabled"sitem.select.length-1"class"switch"v-model"sitem.or"active-color"#13ce66"inactive-color"#409EFF&qu…

jquery中输入验证中一个不错的效果
在表单的输入验证中,经常要当用户没能正确输入后,要提示“XXXX输入错误”这一类的信息,如何能搞到动态一点呢,今天发现jquery中的一个不错的效果,笔记之。 1 包含jquery <script src"images/jquery-1.2.6.min…

【2018.2.25】c++预习练习
学了一学期c语言之后预习c,一些最基础的东西做起来还是得心应手的,先练练手感?C primer plus 和教材同步学习,大概会比上学期抓瞎学习要好得多吧。 1 #include<iostream>2 int main()3 {4 using namespace std;5 cout <<…

在做项目中遇到的JS问题
name和value: 例如: <input type"text" name"txt"/> name用于定义这个input收到的值的变量名,在上面的input输入“hello",那么就有txt"hello";用于dom操作取值 在用js改变某个div属性进行传值操作时࿰…

用Duplex实现消息广播
http://blog.csdn.net/fangxinggood/archive/2011/01/15/6142861.aspx WCF中定义3种消息交换模式: 1. Request/Reply; 2. One-Way; 3. Duplex。 Request/Reply 是缺省模式,即同步调用。在调用服务方法后需要等待服务的消息返回,即便该方法返…

mongoose手动生成ObjectId
如果需要手动生成使用mongoose.Types.ObjectId()方法。 var mongoose require(mongoose); var id mongoose.Types.ObjectId();

Coolpad F61刷机解锁成功
这几天是高校开学的日子,各大运营商纷纷进驻校园,打出种种优惠,抢新鲜用户。 我一直觉得我现在的移动号码收费太贵,每个月不知不觉就是100多块,对我这个以公司为家(公司电话就是我的电话)的宅人而言,是有点夸张了。特别是和国外的运营商相比,如果你有朋友在国外&…

Django 数据库
一、操作数据库 Django配置连接数据库: 在操作数据库之前,首先先要连接数据库。这里我们以配置MySQL为例来讲解。Django连接数据库,不需要单独的创建一个连接对象。只需要在settings.py文件中做好数据库相关的配置就可以了。示例代码如下&…

MapReduce 中 UDF、UDAF、UDTF
UDF UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAFUDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容 UDAF UDFA是用户自定义的聚类函数,是基于表的所有记录进行的计算操作 …

计算机网络面试知识总结1
1.TCP报头格式 TCP协议头至少20个字节 (1)源端口 16位,主要用于标志报文的返回地址,其中包含初始化通信的端口 (2)目的端口 16位,指明了要把数据传送到哪 (3)序列号 32位…

C# 导出到Excel (使用NPOI 1.2.4)
最近研究下用C#导出Excel。最后选择要用NPOI来导出。在网上看到了好多的教程啊。于是我兴奋的模仿起来了。先创建个空的excel试试吧。结果:提示无法将类型“NPOI.SS.UserModel.Sheet”隐式转换为“NPOI.HSSF.UserModel.HSSFSheet”。存在一个显式转换(是否缺少强制转…

Putty 工具 保存配置的 小技巧
用Putty 已经很长时间了,但一直被一个问题困扰,有时候是懒得去弄,反正也不怎么碍事,今天小研究了下,把这个问题解决了,心里也舒服了。 Putty是一个免费小巧的Win32平台下的telnet,rlogin和ssh客户端。 它的…

PyODPS 学习 实现查询数据 并更新数据
PyODPS是MaxCompute的Python版本的SDK,提供简单方便的Python编程接口。PyODPS支持类似Pandas的快速、灵活和富有表现力的数据结构。您可以通过PyODPS提供的DataFrame API使用Pandas的数据结果处理功能。本文用于帮助您快速开始使用PyODPS,并且能够用于实…

跟面向对象卯上了,看看ES6的“类”
上回我们说到ES5的面向对象,以及被大家公认的最佳的寄生组合式继承。时代在进步,在ES6中对于面向对象这个大boss理所应当地进行了一次大改,从原先那种比较长的写法转变为“小清新”写法。我们一起来看一下。 在ES6中是有类这个概念࿰…

JS数组去重精简版
看了很多人写的好几个去重方法,我在这里精简组合下,适用于已排序与未排序的数组。 废话不多说,上代码。 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>数组去重</title></hea…

[Buzz.Today]2011.05.25
>> VMWare的Open Source Pass - CloudFoundry VMWare推出了开源Pass:CloudFoundary,但是现在只是支持少数几种语言与环境:Java Spring, ROR and Node.JS。。 Source Code on GitHub: https://github.com/cloudfoundry 随便瞄了两眼&…

NeHe OpenGL第三十九课:物理模拟
NeHe OpenGL第三十九课:物理模拟 物理模拟简介: 还记得高中的物理吧,直线运动,自由落体运动,弹簧。在这一课里,我们将创造这一切。 物理模拟介绍 如果你很熟悉物理规律,并且想实现它,这篇文章…

max(min)-device-width和max(min)-width的区别
max-device-width和max-width的区别表现在如下几个方面: 1. max-device-width是设备整个显示区域的宽度,例如,真实的设备屏幕宽度。 2. max-width是目标显示区域的宽度,例如,浏览器宽度。 3. 如果使用max-device-width…

一篇文看懂Hadoop
我们很荣幸能够见证Hadoop十年从无到有,再到称王。感动于技术的日新月异时,希望通过这篇内容深入解读Hadoop的昨天、今天和明天,憧憬下一个十年。 本文分为技术篇、产业篇、应用篇、展望篇四部分 技术篇 2006年项目成立的一开始,“…

MaxCompute动态更新表中某个(多个)字段的数据
功能 MaxCompute支持了delete、update功能,但当您需要使用多个insert、update、delete对目标表进行批量操作时,需要编写多条SQL语句,然后进行多次全表扫描才能完成操作。MaxCompute提供的merge into功能,只需要进行一次全表扫描操…

字符串数组的赋值
例如:main(){chars[30]; strcpy(s,"Good News!"); /*给数组赋字符串*/ }上面程序在编译时,遇到chars[30]这条语句时,编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为TurboC2.0的函数)时, 首先在目标文件的某处建…

NetBeans使用介绍(五)
第9章 Swing菜单 Swing菜单是我们经常用到的一种控件,NetBeans对菜单进行了很好的封装,是我们应用起来非常方便。下面,我们就来简单的了解一下Swing菜单。 菜单:Jmenu 菜单项:JmenuItem 复选菜单项:JcheckB…

Pycharm中如何安装python库
1首先打开pycharm工具,选择File中的Setting选项,如下图所示 2在打开的setting界面中我们点击python的解释器,你会看到很多导入的第三方库,如下图所示,点击最右边的加号 3在弹出的available packages界面中,…