kh

阅读 / 问答 / 标签

trojan-spy.win32.keylogger.kh怎么杀

从名称来看这是一种木马(Trojan定义的为木马病毒)spy一般是间谍软件的定义。Win32是指32位的操作系统Keylogger估计是键盘记录型的因此你的机器可能中了键盘记录型的间谍型木马病毒了。具体怎么杀?这个很难说清楚的!你使用的这个能将它查报出来的杀毒软件有报这个病毒具体的路径么?有的话就简单一些了。直接用IceSword(冰刃)这个软件到安全模式下去将病毒文件删除掉;没有的话就烦了。你可以给我以消息。

uttrakhand是什么港口

Uttarakhand…. 游人的一个天堂在印度的浩大和丰富多样的浩瀚的北部和生长在庄严喜马拉雅山, Uttrakhand - Devbhumi (神的土地的令人敬畏的秀丽和镇静平静)吸引了不同的宗教游人和朝圣包括举世闻名的炭灰Dham或Shri Badrinath的四个印度朝圣目的地- Kedarnath - Gangotri - Yamunotri,花举世闻名的榖、Hemkund Sahib神圣的锡克的朝圣- Lokpal、Nanakmatta和Meetha - Reetha Sahib和Piran Kaliyar回教朝圣画了精神履行的朝圣和寻找者对Uttarakhand。 富有的文化传统、罕见的自然秀丽和这土地凉快和精神充沛的气候圣洁Ganga和Yamuna河的起源是它的主要吸引力。 Uttarakhand是冒险体育、水上运动、野生生物和滑雪的一个天堂。 范围从登山的纯粹品种到航空体育喜欢滑动的手,滑翔伞做Uttrakhand一冒险体育的最有吸引力的目的地不仅在印度,而且世界。 Uttarakhand有植物群和动物区系,是不同的以及罕见。 这做Uttarakhand生态旅游的一个理想的地点。 生态旅游包括森林探险队,迁徙在森林足迹、自然步行、Mahaseer和其他鱼种类抓住和发行。 然而,在所有这些活动的最大优先权为保留区域的生态学脆弱制定。 一个乾净,新和精神充沛的环境做Uttarakhand一个首选的目的地放松和解开。 从在Mussoorie、Rishikesh、Dehra Dun和Haridwar的最现代的设施对它被雪复盖的峰顶未触动过,原始秀丽,河和山。 Uttarakhand提供游人可能娱乐和休闲的可能的寻求的所有。 我们有所有Uttarakhand在我们的手并且经营与直接专家,给我们整个操作更好的控制。 我们是在事务14年,在我们使卓着的专门技术和许多非常满意的顾客获得期间。 可以安排您的完全Uttarakhand游览,到达所有门户- Saharanpur、Haridwar、Dehra Dun、Kotdwar、Ramnagar、Haldwani、Kathgodam、Pantnagar、Tanakpur或者德里,有旅馆设施的、调动、摩托车、视域看见,游览和特别安排和,优秀导游或者董事以及规则假期游览的当然我们。 望采纳,谢谢。

RugoYUKISIJUFSoTONGKHBHHX 请网友帮忙翻译

这是什么?

MarkHutter人物简介

MarkHutterMarkHutter是一名演员,代表作品有《Deadin5Heartbeats》、《PowerPlay》等。外文名:MarkHutter职业:演员代表作品:《Deadin5Heartbeats》、《PowerPlay》合作人物:JeffSanto

quartus ii 怎样将时钟脉冲调为1khz

兄弟,能否把问题说明得清楚一些!是程序设计还是波形调试的时候!程序就转化时间,调试就修改波形周期就可以了!不知道你说的到底是什么情况下的!希望能帮你解决问题

求诗歌《Xanadu—Kubla Khan》中文八言翻译

上都坐着忽必烈汗 Sat on both Kublai Khan恢宏皇城乐御其邦the grand Imperial Le Royal its state............方圆十里绵延息壤stretching ten-mile radius of interest群塔列环高墙带疆soil, group ring wall with a tower out in Xinjiang ok??

MikhailDorozhkin主要经历

MikhailDorozhkinMikhailDorozhkin是一名演员,代表作品有《第三个愿望》、《Poklonnik》等。外文名:MikhailDorozhkin职业:演员代表作品:《第三个愿望》合作人物:ValeriShevchenko

音质Kbps/kHz什么意思?哪种最好?

kbpsmbps等是数据数率的意思比如2Mbps就相当与256kb/s的速率mp3格式的音乐一般128kbps以上就很好了mp3格式最大可以达到320kbps数率越大音质当然越好咯

在mp3格式中,khz和kbps分别可以说明什么?

KHz,千赫兹,是频率,也可以说是采样率,一般都是44.1KHz的,因为这是音乐CD的标准。KHz不重要。Kbps又称比特率,指的是数字信号的传输速率,也就是每秒钟传送多少个千位的信息。Kbps一方面决定了mp3文件的大小,另一方面决定音质,Kbps值大的清晰度一般会高一点。希望帮到你

音乐文件的 kbps 和 khz 代表什么意思??!

kbps就是1024 bit每秒。正常CD采样率是44.1KHz,每个样本用16bit,立体声是两个声道,那么标准CD是44.1K×16×2=1411.2kbps。mp3采用高压缩保真算法,压缩比率一般是8:1,12:1。也就是一张压缩率是12:1的mp3容量相当于12张CD的容量,mp3的kbps就是CD的八分之一或十二分之一约为192kbps、128kbps。播放的时候通过解码器把192kbps转换成1411.2kbps音频流(实际上肯定达不到),然后送到耳机。khz代表千赫兹,是交流电和电磁波频率的单位,也用于信号带宽的度量和描述。

KornKhunatipapisiri是谁

KornKhunatipapisiriKornKhunatipapisiri,1994年11月13日出生于泰国孔敬,泰国男演员。代表作品《一年生》。外文名:KornKhunatipapisiri、________________别名:Oaujun,吴俊国籍:泰国星座:天蝎座身高:179cm出生地:泰国孔敬出生日期:1994年11月13日职业:演员、模特代表作品:《一年生》《爱情来了》演艺经历2013年出演电影《Rose:LastLove》。2014年出演电影《爱情来了》,饰演Zee。2015年出演电影《爱情来了》的第二部《爱你爱你》;同年出演电视剧《丑小鸭之男生乐园》,饰演Rayji。2016年出演电视剧《爱不单行》,饰演YoungKongfa;同年出演电视剧《一年生》,饰演Tew。2017年出演电视剧《舞蹈奇迹》。同年出演电视剧《一年生2》,饰演Tew。2018年出演电视剧《生日快乐》,同年参演电视剧《我们的天空》。2019年出演电视剧《沙粒公主》。主要作品参演电视剧沙粒公主-2019-08-24,饰演配角我们的天空-2018-11-23,饰演Tew(Ep.5)生日快乐-2018-10-07,饰演配角-2017-05-13一年生-2016-08-20,饰演Tew爱不单行-2016-06-19,饰演YoungKongfa丑小鸭之男生乐园-2015-10-25,饰演Rayji参演电影爱你爱你-2015-08-20爱情来了-2014-02-27,饰演Zee-2013,饰演主角

David Beckham姓什么?名什么?

姓beckham名david

DAVID BACKHAM的个人资料

  David Robert Joseph Beckham (译:大卫·罗伯特·约瑟夫·贝克汉姆),OBE是一名英格兰足球运动员,前任英格兰代表队队长,目前效力于美国洛杉矶银河。曾于1999年及2001年夺得世界足球先生亚军,是运动品牌阿迪达斯的代言人。贝克汉姆在球场上司职右前卫或中前卫,最著名的是他右脚精准的长传、传中和极其出色的定位球,在俱乐部和国家队生涯中都以此获得了大量助攻和进球。南非世界杯英格兰出局后,英国媒体力挺贝克汉姆出任国家队主教练,他本人也表示愿意执教英格兰队,但条件还未成熟,他目前仍然非常支持卡佩罗留任。  中文名: 大卫·贝克汉姆  外文名: David Beckham  国籍: 英格兰  民族: 英格兰  出生地: 伦敦 雷顿斯通  出生日期: 1975年5月2日  身高: 1.83米  体重: 75公斤  运动项目: 足球  所属运动队: 英格兰国家队,洛杉矶银河  专业特点: 传球精准,任意球脚法独步天下  位置: 中场  喜欢的城市: 因弗内斯,希贝尼克,布德瓦  贝克汉姆(Beckham)   英文全名:David Robert Joseph Beckham 全名:大卫·罗伯特·约瑟夫·贝克汉姆(注:其实姓氏Beckham中的h不发音)   港译名:碧咸   星座:金牛座   血型:O   头发:浅棕色   眼睛:绿色   衣服尺码:XL 鞋子尺码:UK9(相当于我国的43码)   球衣号码:7(国家队) 7(曼联)、23(皇马 洛杉矶银河)、32(AC米兰)、77(托特纳姆热刺)   场上位置:中场(右前卫)   称号:“万人迷”、“小贝”、“Becks”、“大卫”、“贝”、“碧咸”、“David”  合同信息:5年   总价值:2.5亿美元   代言品牌:adidas,armani,got milk   现属球队:洛杉矶银河队    球鞋赞助商:阿迪达斯   2008年总收入3300万美元   2009年总收入3240万欧元(年薪:490万奖金:150万 场外:2600万)   效力过的俱乐部:普雷斯顿北区1994/95,曼彻斯特联1995/03(24号、10号、7号),皇家马德里2003/07(23号),洛杉矶银河2007/09 (23号),AC米兰(32号)   现效力俱乐部:洛杉矶银河队   国家队:英格兰1996/2006 -英格兰国家队(7号、17号)115场(101场首发)  大儿子布鲁克林·贝克汉姆 (Brooklyn Beckham) 1999年3月4日出生   二儿子罗密欧·贝克汉姆 (Romeo Beckham)2002年9月1日出生   小儿子克鲁兹·贝克汉姆(Cruz Beckham) 2005年2月20日出生   小女儿哈柏-赛文-贝克汉姆(Harper Seven Beckham)2011年7月10日出生  团体荣誉  ●英格兰青年足总杯1次(1991-1992)   ●青年足总杯亚军1次(1993)   曼联时代(7张)  ●欧洲青年足球锦标赛的冠军1次。(1993)   ●英超联赛杯冠军1次(1994)   ●英超联赛冠军6次 (1995-1996、1996-1997、1998-1999、1999-2000、2000-2001、2002-2003)   ●英格兰足总杯冠军2次(1995-1996、1998-1999)   ●英格兰慈善盾冠军1次 (1997)   ●欧洲冠军联赛冠军1次(1998-1999)   ●丰田杯冠军1次 (1999)   ●西班牙超级杯1次 (2003)   ●伯纳乌杯 3次(2003 2005 2006)   ●西班牙甲级联赛亚军1次(2004)   ●西班牙甲级联赛冠军1次(2006-2007)   ●迪拜杯1次(2009)   ●美国职业大联盟西部决赛冠军1次(2009)   ●美国职业大联盟总决赛 亚军2次(2009 2010)  个人荣誉  该校最有发展前途的学生:1988   英格兰队长(2001-2011)   金足奖候选人:(2004.2005.2006.2007.2008.2009.2010 2011)   “天空体育/松下”最佳新人奖:1996   超级联赛8月最佳球员:1996   英超年度最佳新人:1997   荣获马特·巴斯比奖:1997   英格兰球员工会最佳青年球员:1997年   英格兰职业运动员协会评选的98—99赛季英格兰超级联赛最佳阵容:1999   欧洲全明星阵容:1999   英超助攻王:1999-2000   欧洲足球先生提名(票数第二):1999   英格兰足球先生:2000   国际足联世界足球先生评英格兰足球先生选第二名: 1999, 2001   UEFA Club Player of the Year Finalist: 2001   《封面》杂志的首位运动员封面人物:2001    01--02赛季西部联盟最有价值球员:2001-2002   BBC体育年度个人奖:2001   2001年度英国最佳运动员:2001   欧洲足球先生提名(票数第四):2001   欧洲足联年度最佳阵容:2001   《玛利·克莱尔》杂志的首位单独男性封面人物:2002   英格兰代表队年度最佳球员:2003   授予OBE(OfficeroftheOrderoftheBritishEmpire)奖:2003   欧洲足联年度最佳阵容:2003   西甲助攻王:2006-2007   本轮最佳:2007年5月29日   “英国杰出人物奖”:2007   ESPN发起的一年一度的“ESPY年度卓越体育表现奖” :2008   《男人健康》美国最佳体育运动员2008   百场名人堂人物:2008   选为2012年伦敦奥运会形象大使之一:2008   BBC终身成就奖获得者:2010   《Fantastic Man》封面:2011   《confidential》的封面:2011   曼联25年最佳阵容:2011  其他荣誉  男同志最想结婚的男星(最受欢迎)首位:2005   最佳型男:2005   海外运动员07-08赛季收入排行榜首位:2007   男人中的男人冠军:2007   男人中的男人亚军:2008   10最佳腹部首位:2008   吸金王第一:2008   英格兰十大队长第5:2008   富甲足坛首位:2008   青少年最佳榜样:2009   体坛20大赚钱机器第1:2009   吸金王第一:2009   英超十大标杆球星第9:2009   英球员财富20强首位:2010(1.25亿)   2009年足坛收入榜第二位:2010   影响力TOP体育明星英国名人首位:2010   教练组成员:2010   最性感50位男性21位:2010   英格兰足坛十大补时绝杀第5位:2010   体坛20大赚钱机器第3:2010   现役25大任意球大师第1:2010   吸金王第二:2010   英格兰史上五大巨星转会第5位:2010   现役25大任意球大师第3:2011   2010全球收入最高的足球运动员:2011   《福布斯》2011球员收入榜首位:2011   三星2012伦敦奥运品牌大使:2011   全球最性感男士第1:2011   美国版《名利场》评为年度最佳着装先生:2011   《星期天泰晤士报》2011年度英国体育人物富豪榜首位:2011  编辑本段大事年表  ◆小学时,代表里瑞德维流浪者队,获得“菲菲尔德”5人制足球赛冠军。 贝克汉姆  ◆11岁时,加盟沃尔特汉姆12岁以下少年队。被曼联球探马尔科姆·费吉恩相中;代表埃塞克斯中学出战;以优秀学员身份进入托特纳姆热刺队训练。   ◆1988年,在英格兰前著名球星查尔顿主办的足球学校中脱颖而出,被评为该校最有发展前途的学生。   ◆1991年7月8日加入曼联青年队开始训练。   ◆1993年1月22日,正式成为职业足球运动员。   ◆1995年4月2日,首次代表曼彻斯特联队上场参赛,对手是利兹联队,当时球衣号码19号(后来多数时候身披7号球衣)。   ◆1996年,在英国足总杯半决赛对切尔西队的比赛中,为曼联队攻入制胜的一球,从此确立了他在曼联队中的主力位置。   ◆1996—1997赛季,他首次参加英格兰足球超级联赛,并与队友合作,使曼彻斯特联队获得英格兰足球超级联赛冠军。   ◆1996年8月17日,他在曼联队对温布尔登队的比赛中,从中场附近一记60米开外的超远距离远射成功,技惊四座。他的这一入球在1998年被资深足球明星评选出的有史以来最精彩的3个入球中列第3位。   ◆1996年9月1日,在对阵摩尔多瓦的比赛中他首次代表英格兰出征。   ◆1996年,超级联赛8月最佳球员;“天空体育/松下”最佳新人奖。   ◆1996年,联赛冠军;足总杯冠军。   ◆1997年,联赛冠军。   ◆1997年,英超年度最佳新人   ◆1997年,荣获马特·巴斯比奖。   ◆1998年,在法国世界杯八分之一决赛英格兰对阿根廷一战中,他在下半场因踢人被红牌罚下,致使英格兰队以10人应战11人,最终点球失利。赛后,他受到了国内舆论的强烈谴责。   ◆1999年3月4日,未婚妻、流行乐组合辣妹演唱组的维多利亚。亚当斯为其生下第一个儿子布鲁克林。   ◆1999年4月25日,入选由英格兰职业运动员协会评选的98—99赛季英格兰超级联赛最佳阵容。   ◆1999年5月16日,与队友合作,使曼联队获得98-99赛季英格兰超级联赛冠军。   ◆1999年5月23日,与队友合作,使曼联队获得99年英格兰足总杯冠军。   ◆1999年5月26日,做为中场主将,用自己的出色表现帮助曼联队在巴塞罗那战胜了劲旅拜仁慕尼黑队,获得1999年欧洲俱乐部冠军杯赛冠军。   ◆1999年7月4日,与原辣妹演唱组成员维多利亚结婚。   ◆1999年10月,因在即将参加冠军联赛比赛时前往伦敦参加聚会,被俱乐部停发两星期工资。随后又因多次吃黄牌,被英足总召见进行非正式谈话。   ◆1999年11月30日,与队友一起使曼联队获得了丰田杯比赛的冠军。   ◆1999年12月,入选了99年欧洲全明星阵容。   ◆1999年,欧洲足球先生提名(票数第二)。  百贝经典(16张)◆2000年1月在国际足联世界足球先生评选中仅次于巴西中场里瓦尔多,名列第二。   ◆2000年6月,入选英格兰队参加了第11届欧洲足球锦标赛,他在小组赛对德国队的比赛中有出色表现,以一记精准的长传为希勒头球破门、最终战胜对手立下功劳。   ◆2000年欧洲锦标赛英格兰2:3负于葡萄牙,赛后一小撮球迷因不满英格兰被击败,而在退场时对球员进行谩骂,小贝因此被激怒,作出了竖中指的动作,但逃脱了制裁。   ◆2000年与队友一起,使曼联队获得了1999—2000赛季英格兰超级联赛冠军。   ◆2000年11月15日,在英格兰对意大利队的比赛前,国家队临时教练彼得。泰勒任命他担任队长。   ◆2000年,英格兰足球先生。   ◆2001年2月在对西班牙队的比赛时,国家队新任主教练斯文.戈兰。埃里克森重新任命小贝为国家队队长。英格兰队以3:0赢得这场比赛。   ◆2001年4月15日,曼联队提前5轮获得了2000—01赛季英格兰超级联赛冠军,实现了3连冠;曼联队在最近的9年中7度封王,成为名副其实的英超霸主。   ◆2001年7月,成为《封面》杂志的首位运动员封面人物。   ◆2001年,01--02赛季西部联盟最有价值球员。   ◆2001年9月,以小贝为队长的英格兰队在世界杯预选赛中,在慕尼黑以5:1客场大胜德国队。   ◆2001年10月在世界杯预选赛对希腊队比赛的伤停补时阶段,凭借一个任意球破门挽救了球队,帮助英格兰队与对手2:2战平,并取得了参加世界杯决赛阶段比赛的资格。   ◆2001年10月当选为BBC体育年度个人奖。   ◆2001年,2001年度英国最佳运动员。   ◆2001年,欧洲足球先生提名(票数第四)   ◆2001年入选欧洲足联年度最佳阵容   ◆2001年12月,前德国国家队主教练和队长弗兰茨.贝肯鲍尔称赞小贝为世界上最优秀的球员。   ◆2001年,世界足球先生提名(票数第二),仅微弱劣势屈居第二。   ◆2002年4月在冠军联赛四分之一决赛对拉科鲁尼亚队的比赛中,被阿根廷球员杜舍尔踢伤导致腿骨骨折,险些无法参加世界杯赛。后又在一次车祸中幸免于难。   ◆2002年5月9日,受到英国首相布莱尔的接见。 贝克汉姆  ◆2002年5月10日,受到英国女王的接见。   ◆2002年6月,成为《玛利·克莱尔》杂志的首位单独男性封面人物。   ◆2002年5月在联赛赛季的最后一天,与曼联俱乐部续签了直到2005年6月的合同。   ◆2002年6月腿伤及时康复,随国家队参加了世界杯赛,并在小组赛对阿根廷队的比赛中打入一个点球,帮助英格兰队1:0战胜了四年前曾害得自己吃红牌的对手。在四分之一决赛中,英格兰队负于巴西队。   ◆2002年9月1日,第二个儿子罗密欧出生。   ◆2003年2月在足总杯第五轮曼联队被阿森纳队淘汰后,在休息室中被主教练阿列克斯弗格森踢飞的鞋击伤脸部。   ◆2003年4月在联赛对阿森纳队的关键比赛以及冠军联赛对皇家马德里队的四分之一决赛中,沦为了替补队员。在对皇马的第二回合比赛进行到第64分钟时替补上场,随后两度进球,帮助曼联队4:3取胜,但球队还是以5:6的总比分遭淘汰。开始有传言称他将转会皇家马德里队。   ◆2003年5月21日,受到纳尔逊·曼德拉的接见。   ◆2003年5月在德班与南非队的友谊赛中手骨受伤,预计要打石膏六到八星期。英格兰队在那场比赛中以2:1取胜。   ◆2003年6月10日曼联透露,已经与正在竞选巴塞罗那俱乐部主席的霍安。拉波塔进行过会谈。如果拉波塔当选巴塞罗那俱乐部主席,曼联将准备接受巴塞罗那俱乐部收购贝克汉姆的开价。   ◆2003年6月14日被英国女王伊丽莎白授予OBE(OfficeroftheOrderoftheBritishEmpire)奖。   ◆2003年6月17日曼联俱乐部宣布,贝克汉姆以3500万欧元的价格转到皇家马德里队。   ◆2003年7月1日,加盟西甲皇家马德里队。   ◆2003年入选欧洲足联年度最佳阵容。   ◆2003年7月,随皇马来亚洲(包括中国)做宣传及赛前训练。   ◆2004年6月,以队长身份带领英格兰出征欧洲杯,进入八强。   ◆2005年2月20日,第三个儿子克鲁兹出生。   ◆2005年7月,随皇马来亚洲做宣传并做赛前训练。   ◆2006年6月10日,以队长身份带领英格兰出征世界杯。小组赛首战巴拉圭,他的任意球迫使加马拉打进乌龙球,英格兰以1:0拿下首战。   ◆2006年6月16日,对阵特立尼达和多巴哥久攻不下,又是贝氏弧线传中助攻克劳奇打破僵局。   ◆2006年6月25日,以一粒漂亮的任意球完美绝杀厄瓜多尔,直接将英格兰送进八强。   至此,小贝用三次出色表现为英格兰带来了三场胜利,英格兰能够进八强,他可谓居功至伟。同时,他也成为英格兰队历史上第一位在三届世界杯中都有进球的队员。   ◆2006年7月1日,对阵葡萄牙英格兰点球惜败遭淘汰。贝克汉姆未能打满全场。   ◆2006年7月2日,辞去英格兰队长职务。   ◆2007年1月,小贝决定不再续约皇马,宣布自己将在赛季结束后加盟美国大联盟。   ◆2007年1月16日,主帅卡佩罗随即对小贝下达“封杀令”:贝克汉姆今后只能随队训练,不会代表皇马参加任何比赛。   ◆2007年4月20日,在皇马主场2-1战胜巴伦西亚队的比赛,小贝重新回到皇马阵容,他在比赛的下半场替补登场后,为本队攻入的制胜球进行了助攻。   ◆2007年6月17日,小贝在皇马3:1战胜马洛卡首发,并获得西甲冠军,此役小贝在第66分钟被雷耶斯换下,这是小贝在皇马的最后一场比赛。   ◆2007年7月13日,加盟洛杉矶银河,成为美国职业大联盟足球联赛的最新一员。   ◆2008年3月26日,小贝代表英格兰出场100次,成为英队历史上第5位进入百场名人堂的球员。   ◆2008年5月24日,小贝效力的洛杉矶银河队在美国大联盟的比赛中对阵堪萨斯奇才,补时阶段,在距离球门70码攻入一粒超远距离入球,堪比12年前的经典之作。   ◆2008年7月16日,小贝获得ESPN发起的一年一度的“ESPY年度卓越体育表现奖”(Excellence in Sports Performance Yearly)。   ◆2008年8月3日,小贝获得美国销量最大的男性杂志《男人健康》项民意调查结果表明,在美国体育迷中受欢迎的程度已经超过了NBA的科比和高尔夫的伍兹,几乎三分之二的人选择小贝成为2008年美国最佳体育运动员奖。   ◆小贝被选为2012年伦敦奥运会形象大使之一,8月24日晚北京奥运会闭幕式“伦敦8分钟”向全球深情发出邀请。   ◆2008年12月20日,小贝正式与米兰签约,将于08-09赛季租借于米兰。   ◆2009年02月13日小贝第108次代表英格兰队出场,与摩尔一起,并列成为英格兰历史上排在老门将希尔顿之后出场次数第二多的球员。   ◆2009年3月8日,AC米兰俱乐部官方发表声明,足球运动员贝克汉姆将在2009年6月30日之前一直停留在球队。   ◆2009年12月30日,小贝重回米兰内罗训练基地。小贝表示, 小贝伤别南非  当他知道米兰将在欧冠16强对阵曼联他几乎哭了。在3月份,小贝将代表米兰重返老特拉福德。   ◆2010年3月11日,欧冠八分之一决赛,米兰做客老特拉福德挑战曼联,小贝再次回到老特拉福德,下半时他替补出场受到了全场观众的欢呼。七年后,曼联球迷用实际行动告诉大卫,他仍然是老特拉福德的孩子。   ◆2010年3月15日,AC米兰1-0战胜了切沃,但也为此付出了沉重的代价,赛后经过初步诊断,小贝左脚跟腱断裂,将休息5到6个月,他将彻底无缘南非世界杯。   ◆2010年6月12日,人们再次在赛场上看到了小贝的身影,只不过这一次小贝的身份不是球员,而是以领队助教的身份参加。原来为了表彰小贝为国家队的做出的贡献,经过英足总和教练组的商议,小贝最终得以一种另外的方式圆了南非之梦。这场比赛英格兰最终1比1战平美国。   ◆2011年4月29日,英国伦敦,贝克汉姆携妻子维多利亚和三个孩子现身威斯敏斯特教堂,参加威廉王子大婚。   ◆2011 年5 月4 日——全球领先的消费电子厂商以及世界奥林匹克运动会无线通信设备合作伙伴三星电子今日宣布与大卫·贝克汉姆签署了出任2012年伦敦奥运会全球品牌大使的独家协议。贝克汉姆将从即日起履行其品牌大使的角色,倾力支持三星电子赞助2012年伦敦奥运会的各项营销活动。   ◆近日,贝克汉姆在一次商业活动中向媒体表达了他渴望作为英格兰队的一员,参加伦敦奥运会的迫切心情,同时36岁的万人迷甚至还表示,即使足球项目中没有适合他的位置,他依然会另谋其他途径,参加明年的伦敦奥运会。   ◆贝克汉姆在美国表现的也不错,在刚刚结束的大联盟比赛中,他在左侧20码处罚入一粒标志性的任意球,帮助球队4比1获胜。   ◆贝克汉姆计划于本月24日重返老特拉福德,参加其前曼联队友加里·内维尔的告别赛,比赛的对手是意大利尤文图斯队。将重现1999年欧冠半决赛的一幕,当时在那支曼联队中的尼基·巴特、菲尔·内维尔、斯科尔斯和吉格斯等球员都将参赛。这意味着曼联“92一代”的重聚,由弗格森率领的这些年轻人开创了红魔上世纪90年代以来在英超甚至是整个欧洲足坛的霸业。   ◆《星期天泰晤士报》2011年度英国体育人物富豪榜,榜单显示,贝克汉姆的财富达到了1.35亿英镑,在过去的一年中增长了1000万镑。   ◆这场洛杉矶银河对芝加哥火焰的比赛,但是在第62分钟,贝克汉姆利用角球直接破门帮助洛杉矶银河击败了对手。这是贝克汉姆职业生涯中第二次角球直接破门,小贝第一次利用角球直接破门已经是16年前的事情了,在1995年租借效力普雷斯顿时,贝克汉姆也曾利用角球机会直接破门。要将角球直接打进,除了要有技术外,还需要运气,贝克汉姆能在自己的职业生涯中两次直接用角球破门已经十分难得了。   ◆2011年7月10日7时55分贝克汉姆的女儿降生。叫HARPER SEVEN BECKHAM  编辑本段职业生涯统计表  赛季 号码 俱乐部 出场 进球 国家 联赛等级 联赛排名  1992-1993  曼彻斯特联 0 0 英格兰 1 1  1993-1994 28 曼彻斯特联 0 0 英格兰 1 1  1994-1995 28 曼彻斯特联 4 0 英格兰 1 2  1994-1995  普雷斯顿北区 5 2 英格兰 4 5  1995-1996 24 曼彻斯特联 33 7 英格兰 1 1  1996-1997 10 曼彻斯特联 36 7 英格兰 1 1  1997-1998 7 曼彻斯特联 37 9 英格兰 1 2  1998-1999 7 曼彻斯特联 34 6 英格兰 1 1  1999-2000 7 曼彻斯特联 31 6 英格兰 1 1  2000-2001 7 曼彻斯特联 31 9 英格兰 1 1  2001-2002 7 曼彻斯特联 28 11 英格兰 1 3  2002-2003 7 曼彻斯特联 31 6 英格兰 1 1  2003-2004 23 皇家马德里 32 3 西班牙 1 4  2004-2005 23 皇家马德里 30 4 西班牙 1 2  2005-2006 23 皇家马德里 31 3 西班牙 1 2  2006-2007 23 皇家马德里 23 3 西班牙 1 1  2007 23 洛杉矶银河 5 1 美国 1  2008 23 洛杉矶银河 25 5 美国 1  2008-2009 32 AC米兰 18 2 意大利 1 3  2009 23 洛杉矶银河 15 2 美国 1  2009-2010 32 AC米兰 13 0 意大利 1 3  2010 23 洛杉矶银河 10 2 美国 1  2011 23 洛杉矶银河 25 2 美国 1  第1场 1996年9月1日 英格兰3∶0摩尔多瓦   21岁的小贝在对阵摩尔多瓦的世界杯预选赛中首次代表国家队出场。   第17场 1998年6月26日 英格兰2∶0哥伦比亚   首次参加世界杯,在与哥伦比亚的小组赛中,他在第30分钟利用直接任意球破门,打进个人在世界杯的首个进球。   第18场 1998年6月30日 英格兰2∶2阿根廷(英格兰点球负)   法国世界杯1/8决赛,小贝因被阿根廷人西蒙尼激怒而脚踢对手被红牌罚下,间接导致英格兰队最终点球失利。赛后,他受到了国内舆论的强烈谴责,一时间成了全英“公敌”。   第32场 2000年6月20日 英格兰2∶3葡萄牙   随英格兰参加了荷兰与比利时联合举办的第11届欧洲杯,但球队小组赛便遭淘汰。首场比赛被葡萄牙逆转之后,小贝向辱骂他的球迷竖起中指,但逃过制裁。   第36场 2000年11月17日 意大利1∶0英格兰   这场友谊赛上,看守教练泰勒任命小贝为队长,这是他首次出任国家队队长。   第37场 2001年2月28日 英格兰3∶0西班牙   瑞典人埃里克森上任后,将小贝树立为球队领袖。   第43场 2001年9月1日 德国1∶5英格兰   “慕尼黑大捷”是小贝国家队生涯最辉煌的胜利。   第45场 2001年10月6日 英格兰2∶2希腊   打进国家队生涯最重要的进球,他在老特拉福德球场招牌式的任意球帮助英格兰队战平希腊,直接晋级韩日世界杯。英国媒体称这一球价值上亿英镑。   第51场 2002年6月7日 英格兰1∶0阿根廷   韩日世界杯小组赛,打进制胜点球,成功复仇阿根廷。但在开赛前遭遇趾骨骨折的他没能帮助球队走得更远,英格兰在1/4决赛中负于最终的冠军巴西队。   第72场 2004年6月24日 葡萄牙2∶2英格兰(英格兰点球负)   葡萄牙欧洲杯上,英格兰在1/4决赛中与东道主葡萄牙激战120分钟不分胜负。点球决战中,小贝将球踢上了看台,成为英格兰出局的罪人之一。 贝克汉姆  第89场 2005年11月12日 英格兰3∶2阿根廷   第39分钟,阿亚拉解围失误,贝克汉姆在禁区左侧争顶摆渡,鲁尼在门前11米处冷静推射右下角中的,1比1。最后五分钟欧文连进两球,惊险逆转。   第94场 2006年7月1日 英格兰0∶0葡萄牙(英格兰点球负)   德国世界杯1/4决赛再度遭遇葡萄牙,英格兰仍没有逃脱落败宿命。受伤下场的小贝痛哭流泪,因为他知道这可能是自己最后一次参加大赛的机会。   第95场 2007年6月1日 英格兰1∶1巴西   宣称不再录用小贝的麦克拉伦反悔了,在欧洲杯预选赛遭遇困难时终于想起了在美国踢球的前队长。   第99场 2007年11月21日 英格兰2:3克罗地亚   第46分钟替补出场,身穿17号球衣,随后助攻克劳奇扳平比分。但克罗地亚又进一球,最终比分2比3。英格兰在最后关头失去了参加2008年欧洲杯的机会。   第100场 2008年3月26日 法国1:0英格兰   小贝身穿7号球衣,英格兰队客场0∶1让里贝里点杀告负,63分钟被换下,迎来了全场的掌声。百场纪念就在一场国际热身赛巴黎的法兰西大球场完成了。   第101场2008年5月29日 英格兰2:0美国   在赛前获博比-查尔顿颁发的纪念奖项,并在比赛中助攻特里头球破门。   第102场2008年6月2日英格兰3:0特立尼达和多巴哥   小贝重新戴上队长袖标,率领英格兰以3比0完胜对手。   第108场2009年3月29日英格兰4:0斯洛伐克   小贝身穿17号,英格兰4:0横扫斯洛伐克,小贝下半场出场致命弧线 破了门将摩尔的108场纪录。  总计百场数据   出场次数:115场(英格兰历史上出场第二多)进球数:17   首发次数:101   替补次数:14   被替换下场次数:41   作为队长出场次数:59   世界杯:13场   世界杯预选赛:26场   欧洲杯:7场   欧洲杯预选赛:19场   友谊赛:43场   其他比赛:5场

运动员David beckham的资料

贝克汉姆一直并永远是我的偶像 中文名: 大卫·贝克汉姆 外文名: David Beckham 国籍: 英格兰 民族: 英格兰 出生地: 伦敦 雷顿斯通 出生日期: 1975年5月2日 身高: 1.83米 体重: 75公斤 运动项目: 足球 所属运动队: 洛杉矶银河 专业特点: 传球精准,任意球脚法独步天下 位置: 中场 Beckham)   英文全名:David Robert Joseph Beckham 不同发型的小贝全名:大卫·罗伯特·约瑟夫·贝克汉姆(注:其实姓氏Beckham中的h不发音)   港译名:碧咸   星座:金牛座   血型:O   头发:浅棕色   眼睛:绿色   衣服尺码:XL 鞋子尺码:UK9(相当于中国的45码)   球衣号码:7(国家队) 7,10(曼联)、23(皇马洛杉矶银河)、32(AC米兰)、77(托特纳姆热刺)   场上位置:中场(右前卫)   称号:“万人迷”、“小贝”、“Becks”、“大卫”、“贝”、“碧咸”、“David”贝克汉姆写真(40张)妻子:维多利亚·贝克汉姆   合同信息:5年   总价值:2.5亿美元   代言品牌:adidas,armani,got milk   现属球队:洛杉矶银河队    球鞋赞助商:阿迪达斯   2008年总收入3300万美元   2009年总收入3240万欧元(年薪:490万奖金:150万 场外:2600万)   效力过的俱乐部:普雷斯顿北区1994-1995,曼彻斯特联1995-2003(24号、10号、7号),皇家马德里2003-2007(23号),洛杉矶银河2007-2009 (23号),AC米兰(短暂租借)(32号)   现效力俱乐部:洛杉矶银河队   国家队:英格兰1996/2006 -英格兰国家队(7号、17号)115场(101场首发)

能帮忙把2pm中的nichkhun独唱的歌曲发给我吗?最好是mp3形式的!对了,不要漏掉那首《nothing better》了

给你一人最方便的方法!!把QQ音乐打开直接搜索就OK了!!!

realtekhighdefinitionaudio声卡耳机无声详细解决方法

很多的用户们在使用电脑的时候,发现了一个问题,那就是插在电脑中的耳机没有任何的声音,这时候我们可以尝试更新驱动程序或者重新安装它来解决。realtekhighdefinitionaudio声卡耳机无声详细解决方法:方法一:1、打开【控制面板】,点击【高清晰音频控制】,然后选择【混频器】。2、把XX都去掉把音量都拉到最大,【音频I/O】【点那个小扳手】3、如果以上的方法不行,在尝试下禁用前面板插孔测试打勾→OK,听一下有没声音,没声音再把勾去掉→OK,重复一两次一般都会有声音出来的。方法二:还可以选择更新声卡驱动。或者下载补丁文件放入到【C:WINDOWSsystem32drivers】。

win7系统下realtekhighdefinitionaudio声卡耳机无声怎么办

有win7系统用户在使用电脑的时候,发现下realtekhighdefinitionaudio声卡耳机无声,这是怎么回事呢,针对这个问题,下面小编就给大家带来win7系统下realtekhighdefinitionaudio声卡耳机无声的具体解决步骤。推荐:win764位旗舰版下载realtekhighdefinitionaudio声卡耳机无声的详细解决方法:1、打开【控制面板】,点击【高清晰音频控制】,然后选择【混频器】;2、把XX都去掉把音量都拉到最大,【音频I/O】【点那个小扳手】;3、如果以上的方法不行,在尝试下禁用前面板插孔测试打勾→OK,听一下有没声音,没声音再把勾去掉→OK,重复一两次一般都会有声音出来的;4、还可以选择更新声卡驱动。或者下载补丁文件放入到【C:WINDOWSsystem32drivers】;上述就是win7系统下realtekhighdefinitionaudio声卡耳机无声的详细解决方法,希望以上教程内容可以帮助到大家。

poweri可以连接ClickHouse数据库吗?

SQLCA.DBMS = "O84 Oracle8/8i (8.x.4+)" //连接驱动名SQLCA.ServerName ="@db" //主机字符串SQLCA.AutoCommit = False //是否自动提交SQLCA.DBParm = ""SQLCA.LOGID="YH00" //用户名SQLCA.LOGPASS ="yh00" //密码CONNECT; //连接

Clickhouse(流量分析(二).留存分析案例)

神策用户分析模型——留存分析的使用方法 ClickHouse留存分析工具十亿数据秒级查询方案 高效压缩位图RoaringBitmap的原理与应用 留存函数(retention) 一般来说,求留存率的做法就是两天的用户求交集,join的速度会比较慢。假若每一个用户都可以表示成一个32位的无符号整型,用bitmap的形式去存储,S1和S2的求交过程就是直接的一个位比较过程,这样速度会得到巨大的提升。而Roaringbitmap对数据进行了压缩,其求交的速度在绝大部分情况下比bitmap还要快,因此这里我们考虑使用Roaringbitmap的方法来对计算留存的过程进行优化。 这里的bitmap编码相关可以参考一下 (bitmap编码在CDP中的应用 ) https://cloud.tencent.com/developer/news/683175 明细圈人函数 (1).生成用户映射 构建一个映射表 mem_mapping_tf,把各类uid映射为全局唯一的一个32位的无符号整型,这里涉及两个问题,一个是idmapping(全域数据打通)的问题,保证准确性,当然我们映射其他的id,例如是设备id等,在CDP中的多id投放策略,idmapping之后还有一个ONEID,做起来容易,做好还是困难的,idmapping是一个工程(具体参考一下神策数据是怎么做的,之前看过一遍讲的不错),第二个问题,这张映射表怎么实现全局唯一??(id体系的建设) 如何针对亿级用户构建全局连续唯一数字 ID 标识? (2).数据转换 将原始行为数据中的uid映射为oneid 这一步的转化在spark/hive中完成 (3).导入ck并压缩数据 可能有什么坑??但是我不知道,前段时间用clickhouse导数据丢了..查了一下是主键的问题,其他的问题需要实践一下 (4).查询 ck中bitmap函数的应用 该函数将一组条件作为参数,类型为1到32个UInt8类型的参数,用来表示事件是否满足特定条件。 返回结果的表达式。返回值包括: 1,条件满足。 0,条件不满足。 对比位图函数,还是位图函数方便的... 从数据建模上考虑解决留存分析的问题:拉链表 步骤一: dw.traffic_aggr_session会话表计算今天登录的用户guid 步骤二:昨天的活跃表与今天的日活表full join;计算的规则: first_dt guid range_start 规则是一致的,只要昨天有那就是昨天的,否则今天的(这种情况是新用户了) range_end 规则:如果昨天登录了,今天没有登录,那就昨天日期,连续中断要封存,如果昨天没有但是有那就今天的(新用户),其他情况一律是昨天日期(昨天用户今天没有登录的情形,封闭区间保持原样) 步骤三:一种情形没有full jion上:之前存在的用户今天登陆的( max(range_end) != ‘9999-12-31"),所以要union all 从活跃表中获取这种用户的guid和first_dt与日活表left semi join ClickHouse之BitMap的使用

python 操作 clickhouse 连接 增 删 改 查

1.先导入clickhouse包:pip install clickhouse_driver 2.连接方式 1.查询 2.插入 3.删除 4.修改

clickhouse分片数据和all表不一致

ClickHouse支持MySQL大多数语法,迁移成本低,可以使用建表同时导入数据来实现从MySQL迁移到ClickHouse: CREATE TABLE [IF NOT EXISTS] [db.]table_name ENGINE = Mergetree AS SELECT * FROM mysql("host:port", "db", "database", "user", "password")

ClickHouse数据导入

目前Kafka数据导入ClickHouse的常用方案有两种,一种是通过ClickHouse内置的Kafka表引擎实现,另一种是借助数据流组件,如Logstash。 以下会分别介绍这两种方案。 Kafka表引擎基于librdkafka库实现与Kafka的通信,但它只充当一个数据管道的角色,负责拉取Kafka中的数据;所以还需要一张物化视图将Kafka引擎表中的数据实时同步到本地MergeTree系列表中。 为了提高性能,接受的消息被分组为 maxinsertblocksize 大小(由kafkamax_block_size参数空值,默认值为65536)的块。如果未在 streamflushinterval_ms 毫秒(默认500 ms)内形成块,则不关心块的完整性,都会将数据刷新到表中。 相关配置参数: https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md 1)部署Kafka 2)创建Kafka引擎表 必选参数: 可选参数: 3)创建数据表 使用已有的数据表,以下只给出了分布表的创建语句。 4)创建物化视图 与Elasticsearch写入类似,通过Logstash的ClickHouse插件,订阅Kafka中的数据并写入CH中。其中,ClickHouse插件调用HTTP接口完成数据写入。 1)部署Logstash 部署Logstash,并安装ClickHouse插件: 2)创建Logstash配置文件 相关参数: 3)启动Logstash Kafka引擎表和Logstash都是常见的数据导入方式,

Logstash同步Hive和Clickhouse

工作中我们遇到了把Hive数据同步到Clickhouse的业务需求,一开始我们写Spark任务,用SparkSQL读Hive,再用JDBC写入到Clickhouse。 后来,随着要同步的表越来越多,每次都写Spark任务,成本就显得有些高了。于是,写了一个通用的Spark任务,指定Hive表、字段,指定Clickhouse表、字段,每次指定不同的参数。 再后来,业务越来越复杂,不仅是简单的同步,而是要支持更复杂的SQL,结果进行数据类型转换、值转化等,然后再插入Clickhouse。 这不是ETL要干的事儿吗?! 当然,继续增强之前的Spark,完全可以实现这个功能。但是说到ETL,不是有专业强大的Logstash吗,为什么要重复造轮子? 经过一番调研,还真有人写了Logstash插件,用来导出数据到Clickhouse: logstash-output-clickhouse 输出端搞定了,输入端怎么搞呢?很建达,用JDBC插件就可以了。 如上,配置jdbc连接信息即可。 需要说明的是,相关的jar包比较多,需要给全了,否则会有各种ClassNotFoundException。完整的jar列表为: 这些jar最好与hive环境版本一致,我们用的是CDH版,所以都是从CDH目录下找到的jar。 Clickhouse插件使用说明参考: https://github.com/mikechris/logstash-output-clickhouse 主要说下安装过程。 说明文档里说的 bin/logstash-plugin install logstash-output-clickhouse 方式,没有安装成功,所以只能自己编译安装。 先clone源码,然后进入源码根路径: 编译: 此时,若没有安装ruby环境,按照提示安装一下,再编译。 编译成功后,会多出一个文件 安装: logstash的安装就不多说了,按照logstash官方文档安装就可以了。 此时,如果logstash版本是5.x,可能会遇到一个错误: 按照提示,修改gemfile: 修改logstash-mixin-http_client的版本: 原来是>6且<7,改成>5且<6。 然后,再次编译、安装,就可以了。 按照文档中的使用说明,配置Clickhouse连接信息即可: 这部分工作可以放在filter里处理,各种filter插件就不说了,参考logstash官方文档吧。

Clickhouse(流量分析(一).漏斗分析案例)

神策用户分析模型——漏斗分析的使用方法 Clickhouse数据模型之有序漏斗分析 Hologres漏斗分析函数 Java UDF StarRocks Docs window — 滑动窗户的大小,单位是秒。 mode - 这是一个可选的参数。 ‘strict" - 当 ‘strict" 设置时,windowFunnel()仅对唯一值应用匹配条件。 timestamp — 包含时间的列。 数据类型支持: 日期, 日期时间 和其他无符号整数类型(请注意,即使时间戳支持 UInt64 类型,它的值不能超过Int64最大值,即2^63-1)。 cond — 事件链的约束条件。 UInt8 类型。 如果数据在不同的完成点具有多个事件链,则该函数将仅输出最长链的大小 ClickHouse数组函数 漏斗分析模型 分析"2022-01-02"这天 路径为“浏览->点击->下单->支付”的转化情况 这个函数看起来很强大,但是少了点什么,我理解的流量分析滑动窗口不太一样 痛点:很显然,如果数据量超过100亿往上,clickhouse大概就拉了,比较好的方法还是结合bitmap进行编码,这里有篇文章可以参考一下的 每天数百亿用户行为数据,美团点评怎么实现秒级转化分析? neighbor uniqCombined | ClickHouse Docs housepower/olap2018: 易观第二届OLAP漏斗算法大赛 上面这种是这样的,如果一个uid路径是4层,那么他可能走了第一层,着看产品的口径了,如果只算走了第一步的是1,走了四步的只算作4,那么就是上面这种口径 groupArray | ClickHouse Docs Array Functions | ClickHouse Docs Clickhouse中的Array类型

clickhouse 集群配置无法生效

cluckhouse 版本22.2.2.1. 按照网上的教程配置/etc/clickhouse/config.xml后查询system.clusters 就是 没有对应的信息。 检查config.xml里面是不是有多个remove_servers标签!!! 一直没有看到原来的config.xml文件中间还有一个<remove_servers>标签...ffffk 注: 文件保存后后ClickHouse会自动加载配置文件,不需要重启 下面是3分片1副本配置,单机zookeeper 然后配置/etc/clickhouse/metrika.xml 或者把配置文件放在/etc/clickhouse/conf.d/下也可以,会和config.xml里面配置合并

ClickHouse kafka引擎落盘分布式表

1.1.节点1操作 1.2.其他2个节点操作 1.3.kafka操作 1.4.三个节点去验证 2.1.更改格式为 kafka_format = "CSV"; 2.2.消息形式以制表符分隔 王老五,18,1651211660020 clickhouse与kafka集成 Kafka引擎表消费CSV/JSON/AVRO类型数据 输入/输出格式 | ClickHouse Docs

Clickhouse(流量分析(三).路径分析案例)

神策用户分析模型——路径分析的使用方法 漏斗分析是固化了具体的分析过程或者业务环节,然后分析几个大的业务环节的转化;而路径分析,是固化了用户的路径顺序,在每个路径次序中,都包含了各个主要业务环节,因此在每一步中,出现的业务环节很有可能都是类似的。漏斗分析看重的是业务环节之间的留存关系,而路径分析看重的是用户在不同业务环节中的顺序及流失关系。 路径分析:如何将用户的网站行为轨迹可视化呈现? BI分析系统——路径分析及产品化 ) pattern支持3中匹配模式: (?N):表示时间序列中的第N个事件,从1开始,最长支持32个条件输入;如,(?1)对应的是cond1 (?t op secs):插入两个事件之间,表示它们发生时需要满足的时间条件(单位为秒),支持 >=, >, <, <= 。例如上述SQL中,(?1)(?t<=15)(?2)即表示事件1和2发生的时间间隔在15秒以内,期间可能会发生若干次非指定事件。 .*:表示任意的非指定事件。 ??看结果链是不允许重叠的,确实要是允许重叠实现起来是真的非常麻烦啊,业务上有需求的话条件限制喽 智能路径分析模型比较复杂,但同时支持的分析需求也会更加复杂,如分析给定期望的路径终点、途经点和最大事件时间间隔,统计出每条路径的用户数,并按照用户数对路径进行倒序排列 ???网上给的例子怎么都是一样的,算了吸收一下吧,虽说数组函数非常灵活,但是不怕查询慢吗??具体还得结合业务过滤大部分的数据 1 2 3 4 5 6 7 8 9 10 bug的解决,hasAll这块判断 虽然上面的是可以的,但是例子中SQL太长了,好像没有转换的问题,导致无法匹配上,最好都转成string类型的.... 不设置途经点,且仅以用户最后一次到达目标事件作为参考 1. arrayCompact对数组中的数据进行相邻去重,用户重复操作的事件只记录一次(页面去重) 2. arraySort 对数组中的数据按照指定列进行升序排列;降序排列参考arrayReverseSort 3. arrayEnumerate 取数组的下标掩码序列 4. arrayMap 对数组中的每一列进行处理,并返回长度相同的新数组 5. arrayStringConcat将数组元素按照给定分隔符进行拼接,返回拼接后的字符串 6. arraySplit 按照规则对数组进行分割(遇到下标为1时进行分割,分割点为下一个 数组的起始点;注意,首项为1还是0不影响结果) 7. arrayDifference参数必须是数值类型;计算数组中相邻数字的差值,第一个值为0 8. arrayFilter 只保留数组中满足条件的数据 VIVO路径分析模型 通常用户在需要进行路径分析的场景时关注的主要问题: ClickHouse安装和使用 注意关闭防火墙 clickhouse单节点报错 Code: 210. DB::NetException: Connection refused (localhost:9000) 这个注释千万不能去掉....暂时不知道怎么处理..卸载重装吧 clickhouse卸载重装

常见ClickHouse集群部署架构

ClickHouse不同于Elasticsearch、HDFS这类主从架构的分布式系统,它采用多主(无中心)架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。 ClickHouse借助分片将数据进行横向切分,而分片依赖集群,每个集群由1到多个分片组成,每个分片对应了CH的1个服务节点;分片数量的上限取决与节点数量(1个分片只能对应1个服务节点)。 但是ClickHouse并不像其他分布式系统那样,拥有高度自动化的分片功能;CH提供了本地表与分布式表的概念;一张本地表等同于一个数据分片。而分布式表是张逻辑表,本身不存储任何数据,它是本地表的访问代理,其作用类似分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现分布式查询。当然,也可以在应用层实现数据分发。 ClickHouse同时支持数据副本,其副本概念与Elasticsearch类似,但在CH中分片其实是一种逻辑概念,其物理承载是由副本承担的。 ClickHouse的数据副本一般通过ReplicatedMergeTree复制表系列引擎实现,副本之间借助ZooKeeper实现数据的一致性。此外也可通过分布式表负责同时进行分片和副本的数据写入工作。 以四节点实现多分片和双副本为例: (上图中shard作为主副本) 在每个节点创建一个数据表,作为一个数据分片,使用ReplicatedMergeTree表引擎实现数据副本,而分布表作为数据写入和查询的入口。 这是最常见的集群实现方式。 在每个节点创建一个数据表,作为一个数据分片,分布表同时负责分片和副本的数据写入工作。 这种实现方案下,不需要使用复制表,但分布表节点需要同时负责分片和副本的数据写入工作,它很有可能称为写入的单点瓶颈。 在每个节点创建一个数据表,作为一个数据分片,同时创建两个分布表,每个分布表只纳管一半的数据。 副本的实现仍需要借助ReplicatedMergeTree类表引擎。 在每个节点创建两个数据表,同一数据分片的两个副本位于不同节点上,每个分布式表纳管一般的数据。 这种方案可以在更少的节点上实现数据分布与冗余,但是部署上略显繁琐。

clickhouse怎么获取昨天

所有的时间日期函数都可以在第二个可选参数中接受时区,获取年份,月份,季度,小时,分钟,秒钟。

用户标签数据在ClickHouse的存储与使用

宽表字段数量800+ 子表A字段19,数据量3000W,子表B字段13,数据量5000W 对用户提交的条件拆分,分别从不同的表中把数据插入下发明细表( AggregatingMergeTree ),最终将数据按user_id去重后下发对用户提交的条件拆分,分别从不同表中把user_id的 Bitmap 查询出来,将多组Bitmap合并后返回群组人数 源表使用 HDFS表引擎 直接读取hdfs中的子表,目标表建立大宽表使用 AggregatingMergeTree表引擎 实现子表导入的数据按排序键合并 使用 insert into 语句执行数据导入 使用 optimize 语句进行合并,合并前执行 SET optimize_throw_if_noop = 1 可以看到合并时的异常信息 这里由于Hive中的离线数据本身子表合并大宽表已经非常耗时了,用ClickHouse存储时不必要再浪费时间从离线大宽表 这里看到只执行了0.002秒,说明并没有真正去合并宽表数据,也没有任何的异常,这个问题导致了我们使用这种子表导入宽表合并数据的方案不可用 源表使用 HDFS表引擎 直接读取hdfs中的子表,目标表建立与hdfs表字段相同的子表 实时标签的表使用 AggregatingMergeTree表引擎 实现新增的数据按排序键合并

ClickHouse 的版本号

版本号 "v21.10.2.5-stable" 可以读作: 21 年的第 10 个版本,补丁集为 2。"5" 为内部编号,可不关心。 stable 意思是团队已经关注过这个版本一段时间,可以认为足够稳定。 参: ClickHouse Version Number

docker 安装 clickhouse

1、直接运行, docker会自动帮你拉取镜像 2、查看镜像 3、进入Clickhouse容器 4、容器是一个依赖包不完整的ubuntu虚拟机,需要安装vim 5、进入clickhouse-server目录并查看目录 6、采用SHA256的方式加密,生成明码密文 明文密码 : wwm2022 加密密码 : 76a0ec4d00df76517c8f26f138bb57ffb987de2f9999bd9a61c3745bdb7ada35 将明文密码替换你自己的密码,生成加密密码即可 7、将密码写入users.xml 提示: 进入vim 后 如果不是insert模式,先按i 进入insert模式, 用户密码替换为 我一般就用明文写入 保存退出, 先按ESC, 然后输入 8、客户端访问服务端 9、使用DBeaver连接

clickhouse百分号怎么加

1、首先打开clickhouse,进入主界面。2、其次点击要输入百分号的位置。3、最后点击shift+%即可添加。

clickhouse-client导入csv超时

数据文件过大、数据库负载过高。1、导入的文件过大,会导致导入过程超时,可以考虑分段导入或者进行切割。2、导入时数据库负载过高,会导致超时,可以尝试等待一段时间后再次导入,或者增加数据库资源(例如CPU、Memory等)。

hive导入到clickhouse的几种方式总结

在开发过程中,需要从HDFS中导入数据到clickhouse中,探索了几种方式,以及一些坑与大家分享; 选择合适的分隔符;大部分情况下,会选择逗号或者hive的默认分隔符01 ,可以参考文件 详解hive的列分隔符和行分隔符的使用 情况一:由于存储中可能含有分割符,导致分割列的时候,会多出几列的情况;比如说本来是5列的情况,但是却分割出来6列的情况,就是因为数据中含有分隔符的情况,所有如果出现该情况,需要对于可能出现情况的列进行特殊处理 特别注意 列中的换行符以及tab符号,需要处理掉,否则也会出现一些问题; 情况二 :clickhouse中不能出现null需要对所有可能的列,进行如下处理 u200b 情况三:因为hive导出之后,原来的bigint,会出现10.0的情况,在有些情况下,需要进行截断 u200b 情况四: hive中的列的属性,和clickhouse中列的属性不一致会出现问题;对于clickhouse多列的情况下,一定要细致,一个个列的属性进行校验 u200b Float-->bigInt出现错误 u200b int8--->Uint8之间转换错误; csv导入clickhouse的方式,常见的有两种方式;通过clickhouse的jdbc执行sql和使用clickhouse的clickhouse-client客户端的方式,数据量大的情况下,切记不要用第一种方式,一定要切记;切记 方式一: 写一个Python脚本,pandas,以及整合了csv的写入的实现,数据量不大的时候,小于500百万,列在50列左右的时候,可以使用 方式二: 常见错误:

ClickHouse 读写分离方案

1、通过上面的配置,写的时候,我们自己控制写到除第一个replica的其他replica上;在通过分布式表读的时候,就会自动把读请求分发到第一个replica上,再利用复制特性把数据同步到自己replica上。通过这样子的设计,使得读请求与写请求分开。 2、优点 (1)相比之前的普通集群配置,等于把空闲的资源利用起来,提供了集群资源利用率。 (2)读写互不干扰,单并发的写、读性能提升。 3、缺点 (1)相比普通的集群配置,当并发多查请求时,性能下降更厉害。假设集群有N台,则在多个请求过来的时候,可以理解集群有N台服务器能提供读服务;当使用这种架构的时候,则只有N/2台能提供服务,单台负载的请求数翻倍。 4、all

clickhouse-FREEZE分区操作

在对应的分区目录shard下创建一个 linux 硬链接,不影响源表的读写,不占用额外的磁盘空间 ,也正因为如此切记不要修改文件权限,否则会破clickhouse的原始数据。 参考文档: https://clickhouse.tech/docs/en/sql-reference/statements/alter/partition/#alter_attach-partition-from 1,冻结表 注意:生产环境一般都是使用多磁盘存储策略,硬链接不是默认的/var/lib/clickhouse/shard/路径,是集群配置的多磁盘存储路径与store文件夹平级的路径,如我这边就是 /data*/clickhouse 路径。 2,查看表分区磁盘分布 注意:生产环境会有多个路径,都需要拷贝备份,注意记住path路径中的md5值。 3,备份文件到其他的目录(最好将路径也拷贝了,方便记住md5值) 4,清空表数据(未破坏表元数据信息) 注意:当前操作的前提是没有破坏表的元数据,如果元数据破坏,需要拷贝到clickhouse的指定目录下,我这边是在 /ssd2/clickhouse/metadata。 5,restore表数据 注意:PART 和 PARTITION的区别。拷贝备份的数据到store路径下,切记md5路径要和之前的一样,但是磁盘可以随机选一个。查询数据,可以发现数据已经恢复。 6,删除shard目录下的文件。 alter table xxxx freeze 基本上没啥人会这样玩,而且要操作集群,机器一多就。。。比较麻烦 !!!一般是那种自动化的运维工具,这个功能还是可以用用。

脚本插入clickhouse入库慢

这是因为你在高频低量的输入,你可以在实际应用中需要把数据先攒起来,到了一定的量了才写入。或者在tcp客户端,流试写入。

clickhouse-DETACH分区操作

DETACH会使表 脱离clickhouse的管理 ,源表依然可以读写操作,但是备份前的 数据 已经完全脱离clickhouse管理,将数据文件移动到对应分区的detached目录,然后使用 attach 同样可以将表再次交付给clickhouse管理。 注意:必须要在主副本上执行 alert table xxx DETACH PART or PARTITION 。 参考文档: https://clickhouse.tech/docs/en/sql-reference/statements/alter/partition/#alter_attach-partition-from 操作和FREEZE没多大区别,只是备份的目录在detached下而已,且备份前数据已经脱离clickhouse的管理了,表依据可以读写,其他操作区别不大。 主要操作命令 1,与FREEZE类似,同样是本地文件操作,不过需要注意的是,表依然可以读写,只是老数据完全脱离ck管理了,一般也不会这样玩,麻烦!!!, 2,不过在做一些存算分离框架,数据备份的情况下这个功能还是有用的,比如可以使用一个k8s临时集群写数据,然后DETACH文件到s3获得hdfs,然后使用定时任务pull到正式集群磁盘,然后attach 就可以实现类似的存算分离和存储备份功能。

clickhouse高阶函数--数组去重,拼接,排序,增删,排序

数组合并后去重

jdbcclickhousedns解析失败

网络不可用。jdbcclickhousedns解析失败是电脑网络不流畅,电脑网络被截断,网络不可用出现的问题,需要检查电脑网线安装正确,电脑传输数据正常,即可解决网络问题,进而解析成功。jdbcclickhousedns是域名系统的缩写,由解析器和域名服务器组成的。

clickhouse如何获取同步滞后信息

1、安装TreeSoft软件后,登录并分别配置MySQL、clickHouse连接信息,并测试连接成功。2、进行数据同步任务的配置,指定来源库、目标库、查询SQL、调度计划,查询SQL是关键,可以在where条件中使用日期函数用于查询出增量数据。3、运行一次任务验证效果,可查看执行日志确认。如果循环执行,就点运行任务。4、直接写一个查询SQL命令并运行,测试环境有5千多万行数据,速度真是非常非常快。

clickhouse优化最佳实践(易企秀)

Clickhouse堪称OLAP领域的黑马,最近发布的几个版本在多表关联分析上也有了极大的性能提升,尤其是还引入了MaterializeMySQL Database Engine做到了实时对齐业务线mysql中的数据。 采样修饰符只有在mergetree engine表中才有效,且在创建表时需要指定采样策略; clickhouse不支持设置多数据目录,为了提升数据io性能,可以挂载虚拟券组,一个券组绑定多块物理磁盘提升读写性能;多数查询场景SSD盘会比普通机械硬盘快2-3倍。 新版clickhouse提供了一个实验性的功能,那就是我们可以将clickhouse伪装成mysql的一个备库去实时对齐mysql中的数据,当mysql库表数据发生变化时会实时同步到clickhouse中;这样就省掉了单独维护实时spark/flink任务读取kafka数据再存入clickhouse的环节,大大降低了运维成本提升了效率。 为了避免因个别慢查询引起的服务雪崩问题,除了可以为单个查询设置超时以外,还可以配置周期熔断;在一个查询周期内,如果用户频繁进行慢查询操作超出规定阈值后将无法继续进行查询操作: clickhouse权限管理与资源隔离 clickhouse高级功能上线之mysql实时数据同步 clickhouse如何构建复杂数据模型 clickhouse sql规范

ClickHouse版本升级

以我们项目为例,整理下ClickHouse升级的相关注意事项,由于鄙人学识浅薄,提供的方式方法仅供大家参考,引起的任何问题,本人不承担任何责任。安全生产第一条:记得备份、记得备份、记得备份,重要的事情说三遍。 centos7.2 我们ClickHouse是通过RPM方式来安装的,包括如下三个文件: 我们目前没做分片,只有两个节点。可以理解为:1分片2副本。 1、备份配置文件 路径为:/etc/clickhouse-server,把这个文件夹下面都备份吧,正常安装新版本,clickhouse会自动将之前的配置文件config.xml备份,命名为:config.xml.rpmsave。不过小心使得万年船。 2、备份数据文件 数据文件的路径是在config.xml中进行配置的,我们配置指向一块单独的盘。 总而言之,言而总之,把整个数据文件备份吧。 1、查看目前安装版本 yum list installed | grep clickhouse 2、删除软件版本 yum remove -y clickhouse-common-static yum remove -y clickhouse-server-common rpm -ivh *.rpm 安装成功后,会在/etc/clickhouse-server下生产相应的配置文件。 按照旧的config.xml配置信息,更改config.xml。也可先直接覆盖,如果后续不成功,还是一条一条来修改,最好比对下。防止有小版本差异。 sudo systemctl start clickhouse-server

Clickhouse的bitmap函数

从无符号整型(UInt8、UInt32、UInt64等)array构造bitmap 将bitmap转成整型array 返回bitmap中,range_start到range_end区间内(不包含renge_end)的子集bitmap对象 返回bitmap中,从range_start开始的cardinality_limit个元素组成的子集bitmap对象 判断指定bitmap中是否存在e元素 bitmap1中是否包含bitmap2中的元素,只要有一个相同的元素,就返回1,否则返回0. bitmap1中是否全部包含bitmap2中的元素,全部包含就返回1,否则返回0. 返回bitmap的基数 将bitmap中的元素进行转换,将存在于from_array的元素,一次转换成to_array的对应元素。 上面的例子中,依次将bitmap中,5转成2,999(不存在)转成888,2转成20。因为就bitmap中不存在999,所以新bitmap没有888;因为将5转成2,又将2转成20,所以新bitmap中去掉了5和2元素,新加了20元素 求两个bitmap的交集 求两个bitmap的并集 求两个bitmap的异或 求bitmap1与bitmap2的与非

Clickhouse常见命令使用:

Clickhouse常见命令使用: 一、导入数据 1、导入制表符分隔的数据 cat /data/ZDGL/stateAnalysis/dmt_term_stateAnalysisALL202010.txt | clickhouse-client -u default --password 6lYaUiFi --query="INSERT INTO knowyou_ott_ods.dmt_term_stateAnalysisALL FORMAT TabSeparated"; cat /data/ZDGL/stateAnalysis/dmt_term_stateAnalysisALL202010.txt | clickhouse-client -u default --password 6lYaUiFi --query="INSERT INTO knowyou_ott_ods.dmt_term_stateAnalysisALL FORMAT TSV"; 2、导入CSV格式数据 cat /data/ZDGL/stateAnalysis/dmt_term_stateAnalysisALL202010.csv | clickhouse-client -u default --password 6lYaUiFi --query="INSERT INTO knowyou_ott_ods.dmt_term_stateAnalysisALL FORMAT CSV"; 3、指定分割符导入 cat test.csv | clickhouse-client -u user --password password --format_csv_delimiter="|" --query="INSERT INTO db.tab1 FORMAT CSV"; 4、加入最大分区数导入 cat /data/ZDGL/inventoryTurnover/dmt_term_inventoryTurnover202010.txt | clickhouse-client -u default --password 6lYaUiFi --max_partitions_per_insert_block 10000 --query="INSERT INTO knowyou_ott_ods.dmt_term_inventoryTurnover FORMAT TabSeparated"; 5、跳过错误行导入 cat /data/erqi/zhuangwei/company/edw_sp_grid.txt | clickhouse-client -u default --password 6lYaUiFi --input_format_allow_errors_num=1 --input_format_allow_errors_ratio=0.1 --query="INSERT INTO knowyou_ott_ods.edw_sp_grid FORMAT TabSeparated";二、导出数据 1、以CSV分隔符导出 clickhouse-client -u default --password 6lYaUiFi --query="select * from knowyou_ott_ods.dmt_ott_withduser limit 30 FORMAT CSV" > dmt_ott_withduser.csv 2、以制表符导出 clickhouse-client -u default --password 6lYaUiFi --query="select * from knowyou_ott_ods.dmt_ott_withduser limit 30 FORMAT TSV" > dmt_ott_withduser.txt

ClickHouse外部字典表异常排查

删除字典表的时候,使用的语句应该是: DETACH Dictionary dmp_log.ods_product; 由于同事错误了使用了命令,导致重新创建字典表不成功,错误的命令如下(当成表来操作了): DETACH TABLE dmp_log.ods_product; 重新创建字典表报如下错误: SQL 错误 [387]: ClickHouse exception, code: 387, host: 172.30.125.92, port: 8124; Code: 387, e.displayText() = DB::Exception: Dictionary dmp_log.ods_product already exists. (version 20.8.6.6 (official build)) 由于把字典表当成表卸载了。然后再加载的时候,又报语法错误。 ATTACH TABLE dmp_log.ods_product; 解决的方法: 总体思路:既然当成表来DETACH了,那么再当成表来ATTACH即可。 1、ClickHouse metadata的目录 /data/clickhouse/metadata/dmp_log 找到误操作的表信息ods_product。 2、由于ods_product是字典表,语法与建表语句不一致。 所以需要将ods_product文件内容,修改为普通的建表语句,让ClickHouse能加载进去。 3、重启ClickHouse 3、执行删表语句 drop table ods.ods_product 4、新建字典表 CREATE DICTIONARY dmp_log.ods_product...

ClickHouse存储结构及索引详解

本文基于ClickHouse 20.8.5.45版本编写,操作系统使用的是CentOS 7.5,主要介绍MergeTree表引擎的存储结构以及索引过程。 刚刚创建的表只在数据目录下生成了一个名为 test_merge_tree 文件夹(具体路径为data/default/test_merge_tree),并没有任何数据,接下来往该表里面插入一条数据,看看会生成哪些文件。 在test_merge_tree目录下使用tree命令可以看到刚刚的那条命令生成了一个名为 200002_1_1_0 的文件夹。 在介绍这些文件之前先介绍一下200002_1_1_0这个目录的命名规则 当分区发生合并时,新的分区目录名称命名规则将会在接下来介绍,这里不做详述。 在介绍这部分之前,需要先将min_compress_block_size配置改小,以方便分析mrk2和bin文件,其默认值为65535。 修改方法为在 users.xml 文件的 profiles 里面增加以下配置 修改完后重启clickhouse-server服务,然后再用以下命令查看是否修改成功 刚刚已经插入了一条数据,但是那一条数据不具有代表性,所以这次决定多插入几条数据再来分析。 上面这条命令产生了个新的分区目录 200002_2_2_0 ,此目录下的文件前面已经讲过,现在重点分析以下几个文件的存储格式 MergeTree表会按照主键字段生成primary.idx,用于加快表查询。前面创建表时使用的是(Id, Name)两个字段作为主键,所以每隔index_granularity行数据就会取(Id, Name)的值作为索引值,由于index_granularity被设置为2,所以每隔两行数据就会生成一个索引。也就是说会使用(3,"Lisa"), (6,"Meimei"), (31,"vincent")作为索引值。 这里我只介绍第一个索引(3,"Lisa")的存储格式,剩下的可以自己去梳理。Id是UInt64类型的,所以使用8字节来存储。从上图可以看出前8个字节为0x03,以小端模式来存储,接下来我们可以看到其它文件都是以小端模式来存储。Name是String类型,属于变长字段,所以会先使用1个字节来描述String的长度,由于Lisa的长度是4,所以第9个字节为0x04,再接下来就是Lisa的ASCII码。 mrk2文件格式比较固定,primary.idx文件中的每个索引在此文件中都有一个对应的Mark,Mark的格式如下图所示: 通过primary.idx中的索引寻找mrk2文件中对应的Mark非常简单,如果要寻找第n(从0开始)个index,则对应的Mark在mrk2文件中的偏移为n*24,从这个偏移处开始读取24 Bytes即可得到相应的Mark。 bin文件由若干个Block组成,由上图可知Id.bin文件中包含两个Block。每个Block主要由头部的Checksum以及若干个Granule组成,Block的格式如下图所示: 每个Block都会包含若干个Granule,具体有多少个Granule是由参数min_compress_block_size控制,每次Block中写完一个Granule的数据时,它会检查当前Block Size是否大于等于min_compress_block_size,如果满足则会把当前Block进行压缩然后写到磁盘中,不满足会继续等待下一个Granule。结合上面的INSERT语句,当插入第一个Granule(3, 4)时,数据的的size为16,由于16 < 24所以会等第二个Granule,当插入第二个Granule(6, 12)后数据的size为32,由于32 > 24所以会把(3, 4, 6, 12)压缩放到第一个Block里面。最后面的那个31由于是最后一条数据,就放到第二个Block里面。 partition.dat文件里面存放的是分区表达式的值,该分区表达式生成的值为200002,UInt32类型,转换成16进制就是0x00030d42。 minmax文件里面存放的是该分区里分区字段的最小最大值。分区字段Birthday的类型为Date,其底层由UInt16实现,存的是从1970年1月1号到现在所经过的天数。通过上面的INSERT语句我们可以知道Birthday的最小值为2000-02-03,最大值为2000-02-08。这两个时间转换成天数分别为10990和10995,再转换成16进制就是0x2aee和0x2af3。 属于同一个分区的不同目录,ClickHouse会在分区目录创建后的一段时间自动进行合并,合并之后会生成一个全新的目录,以前老的分区目录不会立马删除,而是在合并后过一段时间再删除。新的分区目录名称遵循以下规则: 所以上面的两个分区目录200002_1_1_0和200002_2_2_0在过一段时间后最终会变成一个新的分区目录200002_1_2_1。由此可见如果你频繁插入数据会产生很多分区目录,在合并的时候会占用很多资源。所以最好一次插入很多条数据,尽量降低插入的频率。 通过上面的介绍相信大家已经对ClickHouse的索引结构有所了解,接下来用一张图简要描述Id字段的索引过程。 其它列的索引过程类似,这里就不一一赘述了,有兴趣的朋友可以自己去研究。 本文通过一个简单的例子来分析ClickHouse的存储结构,整个逻辑力求简洁明了,希望通过本文能够让喜欢ClickHouse的朋友对它的索引有个清晰的认识。

clickhouse什么牌子

ClickHouse作为一个来自俄罗斯的开源大数据产品非常的有名,去年9月份,ClickHouse团队独立,成立了自己的公司。ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域,目前国内社区火热,各个大厂纷纷跟进大规模使用。国内云计算的领导厂商阿里云率先推出了自己的ClickHouse托管产品,产品首页地址为云数据库ClickHouse。

ClickHouse 用户名密码设置

配置文件:user.xml 核心配置3部分: - profile配置,最大内存、负载方式等(没有特别关注,可见官方文档) - 配额设置,单个用户最大能用的资源多少(没有特别关注,可见官方文档) - 用户设置,包括用户名和密码 密码有2种,一种是明文,一种是写sha256sum的Hash值 官方不建议直接写明文密码 我们的config文件: 下图定义了两组设置,名字不同 第二组增加了readonly选项下图定义了2个用户,为了方便测试,用了同一个用户名 ck用户是read模式如何生成密码权限验证 默认用户登陆(可以不用指定用户名) CH用户登陆

ClickHouse

常用的clickhouse时间函数 获取未来时间的函数 获取过去时间: 计算两个不同时间在不同时间单位下的差值: 字符串转日期 提取单独的年月日等等 指定维度的开始 格式化

BitMap及其在ClickHouse中的应用

问题要从面试或者大数据场景下最常见的一个算法说起,问题是这样的,假如有几十亿个unsigned int类型的数据,要求去重或者计算总共有多少不重复的数据?最简单的办法就是直接利用一个HashMap,进行去重。但是这里面有个内存使用量的问题,几十亿个元素,即使不考虑HashMap本身实现所用到的数据结果,单单key本身,假如每个unsigned int占用4个字节,简单算一下的话,这里都需要几十GB的内存占用,因此,这里就引出了BItMap。 BItMap的思想非常简单,就是用一个bit表示一个二元的状态,比如有或者没有,存在或者不存在,用bit本身的位置信息,对应不同的数据。比如针对上面的问题,我们可以开辟一个2^32 bit的内存空间,每一个bit存储一个unsigned int类型的数据,有就是1,没有就是0,总共需要存储unsigned int类型的最大范围个数据,也就是2^32 个数据,这个2^32其实就是所谓的基数。如下图所示: 假如存在数字8,那就把对应的第8位的值赋为1。上图插入的数据为1、3、7、8。接着依次把所有的数据遍历然后更新这个BitMap。这样我们就可以得到最终结果。 假如上面的问题变成了对几十亿个URL做判断,那应该怎么去做呢?URL没有办法和BitMap的位置关系对应上,所以,我们需要加一层哈希,把每个URL经过哈希运算得到一个整数,然后对应上BitMap。如下图所示: 但是有哈希,肯定会存在碰撞,如果BitMap基数(也就是长度)比较小,那碰撞的概率就大,如果基数比较大,那占用的空间又会比较多。Bloom Filter的思想就是引入多个哈希函数来解决冲突的问题。也就是说对每个URL,经过多个哈希函数的运算,得到多个值,每个数值对应的BitMap的对应的位置都赋值为1。这个两个URL经过多个哈希函数结果还是一样的概率就大大降低。 但是由于依然存在冲突的可能性(其实冲突就是来源于我们BitMap的长度小于了数据量的基数,这也就是牺牲了准确性换来了空间使用的减少),所以Bloom Filter 存在假阳性的概率,不适用于任何要求 100% 准确率的场景,也就是说Bloom Filter 只能用来判无,不能用来判有。比如一个URL经过多次哈希运算之后,发现对应的BitMap的位置都已经是1了,那也不能说明,这个URL之前存在过了,也有可能是哈希冲突的结果。但是一个URL经过多次哈希运算之后,发现对应的BitMap的位置不是都是1,那当前URL之前一定是没有存在过的。 可以看到,Bloom Filter 引入多次哈希,在查询效率和插入效率不变的情况下,用较少空间的BitMap解决大数据量的判断问题。 大部分情况下仅仅做有无的判断是不能满足使用需求的,我们还是需要真正意义上的BitMap(可以方便的用来做交并等计算),但是最好可以在基数比较大的时候,依然可以占用相对比较小的空间。这就是RoaringBitMap所要实现的。 简单来说RoaringBitMap是BitMap的一种带索引的复杂BitMap数据结构。以32位的RoaringBitMap为例,首先划分2^16 个空间(Container),每个Container内部都是一个大小为2^16 bit的BitMap,总的内存使用量还是2^32 = 512Mb。这样的话和普通的BitMap是没有区别的,而RoaringBitMap的创新之处在于每个Container内的BitMap是在没有使用到的情况下是可以不分配内存空间的。这样可以大大减小内存的使用量。 (这个图片是Roaring Bitmaps: Implementation of an Optimized Software Library 论文原图) 要将一个4个字节的数据插入RoaringBitMap,首先要用数据的高16位,找到对应的Container,然后用数据的低16在Container中插入。 在每个Container内部,RoaringBitMap不是简单的用BitMap来进行数据的存储,而是把Container的类型划分为几种,不同的Container用来存储不同情况的数据。 当2个字节(4个字节的原数据,低16位用来插入具体的Container中)的数据,总的个数小于4096个的时候,当前Container使用 array Container。为什么是4096个呢?4096*2B=8Kb,而一个Container如果是bitmap的结构的话,最多也就是2^16bit=8Kb的空间。所以这里当数据个数小于4096使用array Container会更节省空间。当然这里名字为array Container,实际上是链表结构,不需要最开始就初始化4096个short int的数组。 当array Container存储的数到4096个的时候(也就是使用内存到8Kb的时候),array Container会转换为bitmap container,bitmap container就是一个2^16 bit普通的bitmap,可以存储2^16 = 65536个数据。这个8Kb还有一个好处,是可以放到L1 Cache中,加快计算。 这个严格的说,只是一种数据压缩存储方法的实现。其压缩原理是对于连续的数字只记录初始数字以及连续的长度,比如有一串数字 12,13,14,15,16 那么经过压缩后便只剩下12,5。从压缩原理我们也可以看出,这种算法对于数据的紧凑程度非常敏感,连续程度越高压缩率也越高。当然也可以实现其他的压缩方法。 RoaringBitMap其核心就在于加了一层索引,利用复杂的数据结构换取了空间上的效率。需要注意的是这里并没有增加计算的复杂度,其出色的数据结构让其在做交并计算的时候性能也毫不逊色。 ClickHouse中有bloom_filter类型的Skipping indexs,可以方便的用来过滤数据。 ClickHouse实现了大量的BitMap的函数,用来操作BitMap。ClickHouse中的BitMap在32位的时候用的是Set实现的,大于32位的时候也是使用RoaringBitMap实现的。我们这里不看具体的函数,我们来看一个典型的使用场景。 最常见的一个场景是根据标签来进行用户的圈选。常见的解决办法是有一张用户标签表,比如 要查询标签tag1="xx"和tag2="xx"的用户需要执行SQL: 但是由于不可能对每个tag列构建一级索引,所以这条SQL执行的效率并不高。可选的一种方式是先构建关于标签的BitMap数据结果,然后进行查询: (1) 创建tag的bitmap表: (2)写入数据 (3)查询 如果有多张tag表,进行交并计算(要比普通的用户表进行JOIN或者IN计算要高效很多):

clickhouse配完副本无法启动

副本文件损坏。1、ClickHouse是俄罗斯的Yandex于2016年开源的用于在线分析处理查询(OLAP:OnlineAnalyticalProcessing)MPP架构的列式存储数据库。2、clickhouse软件的副本文件发生损坏,在配置完后导致系统本身的文件也损坏,需要用户从新下载软件和副本再从新配置即可。

Could not initialize class ru.yandex.clickhouse.ClickHouseDriver

原因在于 : 将 clickhouse-jdbc-0.1.54.jar 放到了 jre/lib/ext 目录下,但是其相关的依赖没有放进去

clickhouse-部署详解

部署为3个节点的集群,数据无副本。单机则不需要配置metrika.xml文件即可。 主要配置服务端口、ip、文件存储目录,系统配置、zk配置等参数。本文不涉及zk配置。并且开启query_log,方便后期做监控。 文件中注释很详细,根据需要配置即可。 集群配置、压缩算法配置。本示例集群名为default_cluster,可定义多个。名称自定义,创建分布式表时指定对应的集群名称实现灵活使用数据。 结构资料: 密码可以以明文或SHA256(十六进制格式)指定 不建议使用明文; 结果的第一行是密码。 第二行是相应的SHA256哈希 官方配置文档 介绍很详细,在实际使中还需要自己优化。自己就踩过不少坑,以后有机会和大家分享。load_balancing指定用于分布式查询处理的副本选择算法

clickhousedroppartition是异步的么

是异步的。clickhousedroppartition是计算机程序中的一个命令。据相关资料查询显示该命令是异步执行的,可以通过查看表system.mutations来查看命令的是否执行。clickhouse默认是不支持实时删除表中的数据,数据的删除通常是异步进行。

ClickHouse数据生命周期管理

如果将ClickHouse作为Log或Metrics这种具有明显时序特征数据的存储和分析引擎,那就需要考虑这些数据的生命周期管理,即设置数据的老化机制,如是否需要根据时间划分数据存储等级、设定数据的保留时长等。 ClickHouse支持从分区、列、表等粒度对数据进行管理,如分区数据的迁移、删除,列、表的TTL设置。 热数据一般为最近几天或几周的数据,访问频率最高,通常采用SSD作为存储介质,达到存储时长后,会自动迁移至温数据区;而温数据一般为数月之内的数据,访问频次相对较低,通常采用普通机械盘作为存储介质。 对于Log或Metrics类型数据使用时间字段作为分区键和排序键,ClickHouse虽然没有提供基于时间的数据自动迁移(目前只提供基于分区大小的数据自动迁移),但可以利用其卷划分机制。 磁盘配置参数(disks标签) 策略配置参数(policies标签) 目前只能通过ALTER查询语句移动分区: 1)按照上述方式启动ClickHouse实例,并配置存储策略 查看磁盘配置: 查看策略配置: 2)创建一张MergeTree表用于测试 注意:需指定storage_policy,否则数据会写入默认存储路径中 3)写入测试数据 写入第一批数据,会创建一个分区目录: 写入第二批数据,会创建一个新的分区目录: 如果触发合并操作,会生成一个新分区目录: 注意:由多个disk组成的volume,每当生成一个新数据分区时,会依照disk定义的顺序,依次轮询写入 4)迁移数据分区到温数据区 注意:合并后尚未被清理的数据分区无法移动 可以通过物化视图同步MergeTree表中的数据到SummingMergeTree或AggregatingMergeTree表引擎中,利用既定的聚合条件得到趋势数据并存储。 注意:此处可以指定partition_id进行数据分区删除,如果partition_id是all,则无法直接删除。 在MergeTree中,可以为某个列字段或整张表设置TTL。当时间到达时,如果是列字段级别的TTL,则会删除该列的数据;如果是表级别的TTL,则会删除整张表的数据;如果同时设置了列级别和表级别的TTL,则会以先到期的那个为主。 1)列级别TTL 2)表级别TTL 注意:ClickHouse没有提供删除TTL声明的方法,但提供了控制全局TTL合并任务的启停方法:

clickhouse安装与启动

首先,您需要添加官方存储库: 然后运行命令安装: 日志文件将输出在/var/log/clickhouse-server/文件夹。 如果服务器没有启动,检查/etc/clickhouse-server/config.xml中的配置。 更改目录/etc/clickhouse-server: 更改目录/var/log/clickhouse-server: 这个是数据存储的位置,再config配置文件中,该路径也需要设置属主 修改时区为 : Asia/Shanghai 对外开放连接:取消<listen_host>::</listen_host> 注释 后台启动 ClickHouse支持访问限制设置。它们位于users.xml文件(与config.xml同级目录)。 默认情况下,允许default用户从任何地方访问,不需要密码

clickhouse 插入报错

数据存储使用clickhouse在批量插入的时候报错,报错提示信息如上所示,原因是: 插入String类型的列中包含了汉字,clickhouse对于汉字的存储有问题,将汉字在存储时转换为unicode就可以了,网上查不到,方便大家

ClickHouse 备份恢复

目前Clickhouse的备份方式有以下几种: clickhouse中,数据文件大小为 900M,实际导出会远大于900M,语句 20G左右【测试时没执行完成】 需要先建好表,因此最好备份下metadata数据 语法: 该操作为指定分区创建一个本地备份。 如果 PARTITION 语句省略,该操作会一次性为所有分区创建备份。整个备份过程不需要停止服务 默认位置:/var/lib/clickhouse/shadow/,若没执行过则还不存在此文件,会生成在设置的数据路径下 查看备份 因为 /shadow/ 目录下次备份时候需要清空,因此将备份迁移到指定路径 vi /etc/clickhouse-backup/config.yml 备份语法: clickhouse-backup create [-t, --tables=<db>.<table>] <backup_name> 恢复语法: clickhouse-backup restore 备份名称 当前测试恢复数据的版本是 20.5.4.40,备份是直接存在 metadata 信息的 当前备份 由于clickhouse-backup 当前版本不会备份metadata,因此自己复制一份metadata数据

ClickHouse删除大表报错处理方法

这个是ClickHouse保护大表被误删的动作,有两个方法可以解除这个限制。 意思是删除大于50G的表都会提示无法删除,设置为0的就不会报告警提示。 sudo touch /data/clickhouse/flags/force_drop_table && sudo chmod 666 /data/clickhouse/flags/force_drop_table sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data CK会从另外一个备份中恢复数据。这里是CK自带的故障恢复机制,前提是使用复制表(Replicated开头),本质是告诉CK,强制重建数据。 问题分析: 启动时,检查本地文件系统中的数据集是否与预期的数据集(ZooKeeper中信息)一致。如果存在轻微的不一致,系统会通过与副本同步数据来解决,如果系统检测到损坏的数据片段(如文件大小错误)或无法识别的片段(写入文件系统但未记录在ZooKeeper中的部分),则会把它们移动到 ‘detached" 子目录(相当于逻辑删除),然后再从其他备份中去恢复这个数据片段。 但是注意这里是有一个安全机制的,即CK判断你损坏的片段大于一定的值(max_suspicious_broken_parts,对应源码图二中的逻辑),即“本地数据集与预期数据的差异太大”,CK将会拒绝帮你自动修复,并抛出异常、阻塞启动,这个时候你就必须手动执行恢复。 通过查询配置得到,max_suspicious_broken_parts参数的默认值是10。

给ClickHouse增加内存

在执行一个较为复杂的SQL聚合的时候,报错了: 【报错】 DB::Exception: Allocator: Cannot mmap 64.00 MiB., errno: 12, strerror: Cannot allocate memory. 可见是内存不够了(CK虽然是分布式存储但是集中计算) 一个办法是修改SQL,比如说用临时表之类的,但是那多麻烦啊。我决定先用swap内存试试。 我是跑完了SQL以后查看的,所以used是474 . 不是0。 嗯,SQL正常执行。 还有一点需要指出,虽然CK是分布式存储,但是在执行聚合运算的时候,仍然是在单机上,所以会比较消耗内存。 如果想增加空间,先关闭: sudo swapoff /swapfile 后续步骤跟之前一样即可。

clickhouse执行doinst.sh报错:非法指令

系统bug,网络问题。1、系统bug是clickhouse软件系统出现了问题导致执行doinst.sh报错非法指令,等待官方修复即可。2、网络问题是自身设备连接的网络出现较大波动,导致clickhouse软件执行doinst.sh报错非法指令,更换网络重新打开即可。

ClickHouse 表的常用操作

对表的操作的完整文档,请参看 ClickHouse 官方文档: https://clickhouse.com/docs/en/ 。 从集群中同步地删除表 这样能避免频繁重建表时的「Table columns structure in ZooKeeper is different from local table structure」错误。 清除表中所有数据

ClickHouse可视化工具DBM

GitHub地址 GitHub DBM是ClickHouse可视化数据工具。它基于ClickHouse原生Http请求构建,支持大量ClickHouse工作,主要支持以下功能点: 我们看一下它的全景! 编辑器配置

python 操作clickhouse

pip install clickhouse pip install clickhouse_driver from clickhouse_driver import Client clickhouse_user = "name" clickhouse_pwd = "pass" clickhouse_host_sq = "ip" clickhouse_database = "db" begin_time="2019-05-06" end_time="2019-05-12" client = Client(host=clickhouse_host_sq,user=clickhouse_user , database=clickhouse_database, password=clickhouse_pwd) api_interface_sql = "select accountName,count(*) as count,sum(backendTime) as sum from logs " "where date>="{}" and date<="{}" and appName = "service_si_new" and backendName != "" group by accountName order by count desc limit 0,10" .format(begin_time,end_time) try: a=client.execute(api_interface_sql) print(a) except Exception as e: print(e)

clickhouse不做raid

你好请问是问clickhouse不做raid吗?clickhouse不做raid。因为是clickhouse从19.15开始,MergeTree实现了自定义存储策略的功能是JBOD策略:这种策略适合服务器挂多磁盘但没做raid的场景。

clickhouse去重不完全

ClickHouse不要求主键唯一,所以您可以插入多条具有相同主键的行,确保去重成功。每次批量写入,一定要做一批去重。去重语句如下:optimizetablemytableNamefinal。但是查询可以做到去重,达到目的。

Clickhouse final原理

原理是:既支持分区(纵向扩展,利用多线程原理),也支持分片(横向扩展,利用分布式原理)。

clickhouse插入分布式表没反应

数据丢失。clickhouse插入分布式表没反应是在ES中比较常见的写Rejected导致数据丢失、写入延迟等问题,在ClickHouse中不容易发生。查询速度快,官方宣称数据在pagecache中,单服务器查询速率大约在2-30GB/s。

win7上安装 clickhouse可以吗?

1准备测试用虚拟机clickhouse安装只有一个必须条件:Linux,x86_64和SSE 4.2。可以使用下面这个指令看下支不支持你的系统grep -q sse4_2 / proc / cpuinfo &&回显“支持SSE 4.2” || 回显“不支持SSE 4.2”下面采用的是ubuntu18.04系统,因为官方中默认是ubuntu,由于是测试所以就没有使用centos。首先准备了3台虚拟机进行测试(实际上clickhouse没有要求用几台,如果你是搭着玩玩,甚至都可以用一台也可以工作或使用docker,我这里主要是为了以后要做演示做的);配置是CPU 1CORE,RAM 1G-----------------------------vms001 192.168.56.11vms002 192.168.56.12vms003 192.168.56.13------------------------------clickhouse安装及配置3台虚拟机ip信息2下载并安装clickhouse服务器端和客户端安装clickhouse有多种方法:如果您的服务器连接不上外网,那么会比较麻烦,需要自己手工去官网下载安装包(http://repo.yandex.ru/clickhouse/deb/stable/main/)同样针对centos也有相应的这些包的只是叫rpm包(https://packagecloud.io/Altinity/clickhouse)。一共下载下面几个包:#基础包clickhouse-common-static_18.14.17_amd64.deb clickhouse-server-base_18.14.17_amd64.deb clickhouse-server-common_18.14.17_all.deb clickhouse-compressor_1.1.54318_amd64.deb #密码clickhouse-client_18.14.17_all .deb clickhouse-server_18.14.17_all.deb #选装包(都是测试调试用的)clickhouse-test_18.14.17_all.deb clickhouse-common-static-dbg_18.14.17_amd64.deb#可选项sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 #获取并设置安装包源echo“ deb http://repo.yandex.ru/clickhouse/deb/stable/ main /” | sudo tee /etc/apt/sources.list.d/clickhouse.list#更新包sudo apt-get update #安装clickhouse-server clickhouse-client sudo apt-get install -y clickhouse-server clickhouse-client只要跑完上面的命令,这样clickhouse就算安装好了。clickhouse安装及配置完整的安装过程3 clickhouse配置文件说明在上面的安装完后,接下来就可以开始启动服务了。#启动clickhouse-serversudo服务clickhouse-服务器启动在启动之后通过ps -ef | grep clickhouse可以发现他就使用了一个配置文件clickhouse安装及配置Clickhouse服务clickhouse-server使用的入口配置文件只有一个config.xml下面我们进入配置文件中心看下都有一些文件(/ etc / clickhouse-server /):config-preprocessed.xml(这个是动态生成的,这可以不用重启服务也能实时生效配置文件)config.xml(主要的配置文件控制未来的很多子配置文件,如users.xml,metrika.xml)users-preprocessed.xml(这个是动态生成的,这可以不用重启服务也能实时实现配置文件)users.xml(主要是配置用户信息的)metrika.xml(这个文件是后来手工创建的,主要是将include_from的例程的配置文件分离到这里来,提高config.xml文件的扭曲性,我采用调整路径到当前/ etc / clickhouse-server /下方便些)4配置文件修改1.为了配置文件统一管理,需要添加如下副本(从到统一的配置文件中调整include_,因为替换的路径是/etc/metrika.xml)<include_from> /etc/clickhouse-server/metrica.xml </ include_from>2.创建metrica.xml,将合并信息调整到metrica.xml文件中,而原来的config.xml中的积累信息需要做删除与调整。clickhouse安装及配置调整config.xml的体现信息在新建的metrica.xml中需要配置相应的充分信息,由于我使用是3台服务器,所以我需要配置3个副本,mycluster是重新命名,下面有3个shard,没有副本。<yandex> <clickhouse_remote_servers> <mycluster> <shard> <replica> <host> 192.168.56.11 </ host> <port> 9000 </ port> </ replica> </ shard> <shard> <replica> <host> 192.168.56.12 </ host> <port> 9000 </ port> </ replica> </ shard> <shard> <replica> <host> 192.168.56.13 </ host> <port> 9000 </ port> </ replica > </ shard> </ mycluster> </ clickhouse_remote_servers> </ yandex>这样就配置完毕了。5启动服务和使用客户端工具连接clickhouse在3台服务器中执行启动服务:服务Clickhouse-服务器启动在任何一台服务器上执行客户端工具命令:clickhouse-clientroot @ vms001:u301c#clickhouse-client ClickHouse客户端版本18.14.17。连接到本地主机:9000。已连接到ClickHouse服务器版本18.14.17修订版54409。vms001 :)显示数据库;SHOW DATABASES ┌─name────┐ ││默认│系统│ └─────────┘ 在一套2行。耗时:0.002秒。vms001 :)使用系统;使用系统确定。设置0行。耗时:0.001秒。vms001 :)显示表格;SHOW TABLES ┌─name───────────────────────────┐ │aggregate_function_combinators│ ││asynchronous_metrics │build_options│ ││群││排序│列││data_type_families│ │数据库│ │字典│ │活动│ │格式│ │功能│ │graphite_retentions│ │宏│ │merge_tree_settings│ │合并│ │指标│ │型号│ │突变│ │号│ │numbers_mt│ │一个│ │件│ │parts_columns│ │过程│ │副本│ │replication_queue│ │设置│ │table_engines│ │table_functions│ │表│ └──────────────────────── ────────┘一组31行。耗时:0.004秒。vms001 :)在执行查看生成的表select * from system.clusters就可以看到看到的信息了,系统信息全部在表system中;clickhouse安装及配置发挥上的3个例程整个clickhouse就这么简单的安装完成了,只是没有做副本以及高可用。

Clickhouse的稀疏索引以及"8192"的含义

相信用过Clickhouse的MergeTree引擎的同学都有听说过稀疏索引以及设置过"8192"这个参数,但是官网的案例说明比较晦涩,我一开始也是理解得云里雾里。后面是看到Alexey Milovidov写的一篇介绍,才算是理解了其实的奥秘。把我所了解到的分享给大家,希望对大家也有帮助。 从官网的Demo开始。官网给的介绍案例是以(CounterID、Date)这2个键来建立索引,可以看到一对的(CounterID、Date)间隔地生成了一个Marks,例如(a,1),(a,2);根据Marks又生成了相应的Marks numbers。那么"8192"这个index_granularity参数又是用来做什么的呢?大家可以看下(a,1),(a,2)这2个索引之间,间隔了好几个数据,即: (1)index_granularity这个参数规定了数据按照索引规定排序以后,间隔多少行会建立一个索引的Marks,即索引值 (2)稀疏索引的意义即是Clickhouse不对所以的列都建立索引(相比较Mysql的B树索引会为每行都建立),而是间隔index_granularity列才建立一个。 (3)Marks与Marks number均被保存在内存中,利于查询的时候快速检索。 clickhouse针对每一列都进行了分别存储,并生成了.bin以及.mrk两个文件。bin文件存储了真正的列的值(内部又设计列的压缩),mrk文件记录了Mark numbers对应这个列的offset。以官网例子为例,Marks numbers为3对应了CounterID取值为[b,c,d,e]4个字符,查询命中Marks numbers=3时,通过CounterID的mrk文件就可以知道这4个字符在CounterID的bin文件中存储的offset,提高查询性能。 (1)虽然是稀疏索引,但是如果索引中的列过多,则根据索引来划分数据会更稀疏,建立的索引也需要更多,影响写入性能,也会增加内存的使用 (2)相比普通的B树索引,稀疏索引需要的内存更少,但是可能导致需要扫描的行数比实际的多(以官网demo为例,例如查询(e,1)命中第3个索引,则需要扫描{index_granularity}行的数据,但是其实内部(e,1)的数据只占了少部分,带来了无效扫描) (3)官网推荐是不需要去改"8192"这个值。我个人认为是除非你要做为索引的这个列的值分布非常非常集中,可能几w行数据才可能变化一个取值,否则无需去做调大去建立更稀疏的索引,不过如果这个列这个集中的分布,也不大适合作为索引;如果要调小这个值,是会带来索引列增加,但是同样也会带来内存使用增加、写入性能受影响。 (4)有2个列组合做组合索引,一个值比较稀疏、一个值比较集中,要选稀疏的值放在第一位。只能选择一个列做单索引,如果有2个备选的值,要选比较稀疏的。 ClickHouse Primary Keys

clickhouse使用虚拟内存

会使查询变慢。根据查询相关公开信息显示,clickhouse使用虚拟内存,物理内存和虚拟内存的数据交换,会导致查询变慢,可以关闭虚拟内存。内存是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

clickhouse数据压缩对比

Clickhouse 数据压缩主要使用两个方案LZ4和ZSTD LZ4解压缩速度上会更快,但压缩率较低, ZSTD解压缩较慢。但是压缩比例较高。 clickhouse不同压缩算法测试对比,LZ4最优。 https://www.percona.com/blog/2016/04/13/evaluating-database-compression-methods-update 以下测试主要验证业内测试的结论,测试的zstd数据会多一点,测试不是十分严谨,仅供参考。 开发(dev) 机器数量:3 cpu:40core 内存:256G disk:2.0T*10 kafka TOPIC: cdn-log-analysis-realtime。可消费数据总量363255827。数据消费4次到ck。 cdn_log_analysis_realtime lz4压缩 cdn_log_realtime zstd压缩 在/etc/metrika.xml <compression incl="clickhouse_compression"> --指定incl <case> <min_part_size>10000000000</min_part_size> --数据部分的最小大小 <min_part_size_ratio>0.01</min_part_size_ratio> --数据部分大小与表大小的比率 <method>zstd</method> --压缩算法,zstd和lz4 </case> </compression> 执行sql :SELECT table AS 表名 , sum(rows) AS 总行数 , formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小 , formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小 , round((sum(data_compressed_bytes)/sum(data_uncompressed_bytes))*100, 0) AS 压缩率 FROM system.parts WHERE (database IN ("default") AND (table = "cdn_log_analysis_realtime") ) GROUP BY table 分别查看不同机器的压缩比例 平均 4.85亿 数据,原始数据 105G 压缩后数据 27G ,平均压缩率 27% 。 执行sql : select toDateTime(intDiv(toUInt32(its),60)*60) as t, count() as t_c, avg(speed) as t_v, quantile(0.99)(speed) as t_99, quantile(0.90)(speed) as t_90 , quantile(0.75)(speed) as t_75 , quantile(0.50)(speed) as t_50 , quantile(0.25)(speed) as t_25 from default.cdn_log_analysis_realtime_all where day="2020-12-17" group by t order by t_v desc 冷数据(第一次查询) 热数据(第二次查询) 执行sql : SELECT table AS 表名 , sum(rows) AS 总行数 , formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小 , formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小 , round((sum(data_compressed_bytes)/sum(data_uncompressed_bytes))*100, 0) AS 压缩率 FROM system.parts WHERE (database IN ("default") AND (table = "cdn_log_realtime") ) GROUP BY table 分别查看不同机器的压缩比例 执行sql :select toDateTime(intDiv(toUInt32(its),60)*60) as t, count() as t_c, avg(speed) as t_v, quantile(0.99)(speed) as t_99, quantile(0.90)(speed) as t_90 , quantile(0.75)(speed) as t_75 , quantile(0.50)(speed) as t_50 , quantile(0.25)(speed) as t_25 from default.cdn_log_realtime where day="2020-12-25" group by t order by t_v desc 冷数据(第一次查询) 热数据(第二次查询) 执行sql:SELECT "ZSTD" as 压缩方式 , table AS 表名 , sum(rows) AS 总行数 , formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小 , formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小 , round((sum(data_compressed_bytes)/sum(data_uncompressed_bytes)) 100, 0) AS 压缩率 FROM cluster(ctyun31, system, parts) WHERE (database IN ("default") AND (table = "cdn_log_realtime") ) GROUP BY table union all SELECT "LZ4" as 压缩方式 , table AS 表名 , sum(rows) AS 总行数 , formatReadableSize(sum(data_uncompressed_bytes)) AS 原始大小 , formatReadableSize(sum(data_compressed_bytes)) AS 压缩大小 , round((sum(data_compressed_bytes)/sum(data_uncompressed_bytes)) 100, 0) AS 压缩率 FROM cluster(ctyun31, system, parts) WHERE (database IN ("default") AND (table = "cdn_log_analysis_realtime") ) GROUP BY table 测试不是十分严谨,ZSTD的ck表的数据多一点,但是不影响测试结果,仅做参考。 压缩能力上,ZSTD的压缩比例为 22% ,LZ4的压缩比例为 27% ,ZSTD的压缩性能更好。但是效果不是很明显。 查询能力上,冷数据查询,两者相差不大。热数据方面,ZSTD为 3.884s ,而LZ4为 1.150s 。ZSTD查询时间在 3.37倍 以上,LZ4的查询能力更强。 综上所述,建议使用LZ4。 集群数据量后期预估,按当前使用lz4压缩方案,3分片1副本,计算3 5.5 10*0.8(按磁盘最多使用80%算) 的硬盘能存储大概多少数据。 一天数据100亿 一天磁盘消耗 (10000000000/1453023308.0 84.98)/1024.0=0.57TB 能存储天数 3 5.5 10 0.8/0.57=231.57 day。 一天数据1000亿 231.57/10=23.1day。

ClickHouse 数据迁移[remote表、clickhouse-copier]

clickhouse-copier是官方出的用来同步数据的工具,依赖zk来满足跨集群同步数据的场景。 假设我们要从cluster1[IP1,IP2,IP3]集群中拷贝table_dis到cluster2[IP4,IP5]中。table_dis是distributed table,对应的mergetree表为table_local (1)zk.xml 创建zk.xml文件,用于copy时候使用。 (2)schema.xml 用括号标注的变量需要根据实际情况更换。 在IP1中执行: clickhouse-copier copier --daemon --config zk.xml --task-path /[ZK-CLICKHOUSE-PATH/NODE] --base-dir /[PATH] --task-upload-force true --task-file schema.xml 测试在3台的集群1000w条的数据,写入2台的集群中,耗时在30s

where别名clickhouse

是。where别名是clickhouse。ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。它是由俄罗斯公司Yandex于2016年6月15日开源的一个项目,简称为CH。

clickhouse使用一些优化和经验

1,查询强烈要求带上分区键过滤和主键过滤,如 where day = today() and itime = now()。 2,建表的时候,选择合适的分区键和排序键是优化的关键。 3,如果不允许重复主键(且不要求去重时效性),建议使用表类型:ReplicatedReplacingMergeTree 建表语句可参考 https://clickhouse.yandex/docs/en/operations/table_engines/replacingmergetree/ ,注意只能保证单节点的数据不重复,无法保证集群的。 4,如果要对某一列过滤,且该列非partition key和orderby key, 且该列过滤前后数据量差异较大,建议使用prewhere clause过滤。参考: https://clickhouse.yandex/docs/en/query_language/select/#prewhere-clause 。 5,日期和时间使用Date, DateTime类型,不要用String类型。 6,建表时,强烈建议低基数(基数小于10000)且类型为String的列,使用 LowCardinality 特性,例如国家(country),操作系统(os)皆可用LowCardinality。查询效益提高可以40~50%,具体参考 https://altinity.com/blog/2019/3/27/low-cardinality 。 7,为了使复杂查询尽量本地完成,提前减小数据量和网络传输,加快查询速度,创建分布式表时,尽量按照主键hash分shard。例如欲加快select count(distinct uid) from table_all group by country, os的查询速度. 创建分布式表table_all时,shard key为cityHash64(country, os),hash函数参考 https://clickhouse.tech/docs/en/sql-reference/functions/hash-functions/ 。 8,计算不同维度组合的指标值时,用with rollup或with cube替代union all子句。 9,建表时,请遵守命名规范:分布式表名 = 本地表名 + 后缀"_all"。 select请直接操作分布式表。 10,官方已经指出Nullable类型几乎总是会拖累性能,因为存储Nullable列时需要创建一个额外的文件来存储NULL的标记,并且Nullable列无法被索引。因此除非极特殊情况,应直接使用字段默认值表示空,或者自行指定一个在业务中无意义的值(例如用-1表示没有商品ID) 11,稀疏索引不同于mysql的B+树,不存在最左的原则,所以在ck查询的时候,where条件中,基数较大的列(即区分度较高的列)在前,基数较小的列(区分度较低的列)在后。 12,多表Join时要满足小表在右的原则,右表关联时被加载到内存中与左表进行比较 13,多维分析, 查询列不宜过多, 过滤条件带上分区筛选 (select dim1, dim2, agg1(xxx), agg2(xxx) from table where xxxx group by dim1, dim2 ) 14,禁止SELECT *, 不能拉取原始数据!!!! (clickhouse不是数据仓库, 纯粹是拉原始表数据的查询应该禁止,如 select a, b, c, f, e, country from xxx ) 分区键和排序键理论上不能修改,在建表建库的时候尽量考虑清楚 。 0,事实表必须分区,分区粒度根据业务特点决定,不宜过粗或过细。我们当前都是按天分区,按小时、周、月分区也比较常见(系统表中的query_log、trace_log表默认就是按月分区的)。 1,分区键能过滤大量数据,分区键建议使用toYYYYMMDD()按天分区,如果数据量很少,100w左右,建议使用toYYYYMM()按月分区,过多的分区会占用大量的资源,会对集群的稳定性造成很大的影响。 2,分区键必须使用date和datetime字段,避免string类型的分区键 3,每个sql必须要用分区键,否则会导致大量的数据被读取,到了集群的内存限制直接拒绝 4,排序键也是一个非常重要的过滤条件,考虑到ck是OLAP 库,排序键默认也是ck的主键,loap库建议分区键要使用基数比较少的字段,比如country就比timestramp要好。 5,不要使用过长的分区键,主键 。 6,CK的索引非MySQL的B树索引,而是类似Kafka log风格的稀疏索引,故不用考虑最左原则,但是建议基数较大的列(即区分度较高的列)在前,基数较小的列(区分度较低的列)在后。另外,基数特别大的列(如订单ID等)不建议直接用作索引。 分区数过多会导致一些致命的集群问题。 不建议分区数粒度过细,不建议分区数过多 ,经验来看,10亿数据建议1-10个分区差不多了,当然需要参考你的硬件资源如何。 1,select 查询性能降低,分区数过多会导致打开大量文件句柄,影响集群。 2,分区数过多会导致集群重启变慢,zk压力变大,insert变慢等问题。 https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key/

clickhouse常见的一些问题

一般情况下,如果不是主动使用systemctl stop clickhouse-server 停止clickhouse 而是使用kill -9 pid关闭clickhouse,或者异常奔溃,那么如果一切正常的情况下clickhouse server 10s检测进程,自动重启。 登录机器cat /etc/cron.d/clickhouse-server */10 * * * * root (which service > /dev/null 2>&1 && (service clickhouse-server condstart ||:)) || /etc/init.d/clickhouse-server condstart > /dev/null 2>&1 默认会10s检测一下服务进程是否正常,否则重启,检测时间可以调。/etc/init.d/clickhouse-server 在执行分布式DDL的时候出现这个问题一般是有一个节点处于假死状态,但是节点又没有完全奔溃,一般报错如下 Code: 159. DB::Exception: Received from xxxxx:29000. DB::Exception: Watching task /clickhouse/task_queue/ddl/query-0000xxxxxxx is executing longer than distributed_ddl_task_timeout (=180) seconds. There are 1 unfinished hosts (0 of them are currently active), they are going to execute the query in background. distributed_ddl_task_timeout 执行超过了默认的180s。 首先检查异常节点机器网络,磁盘等信息,然后检查ck状态。一般都是磁盘满了或者网络问题,很少有zk集群出问题。处理方式的话都是清理磁盘和修复网络。 Code: 458, e.displayText() = DB::ErrnoException: Cannot unlink file /data2/clickhouse/store/488/488da1e0-a9ee-4191-8376-0daaa4e0314d/format_version.txt, errno: 2, strerror: No such file or directory (version 21.3.4.25 (official build)) clickhouse 集群在建分布式表的时候出现 clickhouse zookeeper All connection tries failed 如果配置没啥问题,zk和ck集群也没啥问题,重启下zk即可恢复 查询出现AST is too big. Maximum: 500000 程序报错AST is too big. Maximum: 500000,语法树元素个数超过限制错误,说明查询sql很长很复杂,一般情况不会有,要木优化sql,要木修改集群配置 在user.xml 添加 <max_ast_elements>10000000</max_ast_elements> <max_expanded_ast_elements>10000000</max_expanded_ast_elements> 报错 DB::Exception: Replica xxxxx already exists 。 CK会对同一个block保证重复插入的insert的幂等性,会检测重复,默认会去重,使用 insert_deduplicate 配置。如果不需要去重则可以使用 SET insert_deduplicate=0 ,但不推荐这样做。 查询超过了限制的时间(60s),需要优化sql,或者做预聚合 一次写入的分区数超过100,一般情况下不会出现一次写操作写100个分区的情况,解决方法1:查看写入的数据是否异常,为啥会写100个分区,一般是按时间分区,是不是时间解析错误了。解决方案2:在user.xml配置文件中添加<max_partitions_per_insert_block>配置项

clickhouse可以替代hadoop嘛

clickhouse不可以替代hadoop。Hadoop生态圈的技术繁多,HDFS一直用来保存底层数据,地位牢固。Hbase作为一款Nosql也是Hadoop生态圈的核心组件,它海量的存储能力,优秀的随机读写能力,能够处理一些HDFS不足的地方。Apache Kudu是Cloudera Manager公司16年发布的新型分布式存储系统,结合CDH和Impala使用可以同时解决随机读写和sql化数据分析的问题。分别弥补HDFS静态存储和Hbase Nosql的不足。Clickhouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),能够使用SQL查询实时生成分析数据报告。它同样拥有优秀的数据存储能力。

clickhouse-物化视图

https://clickhouse.tech/docs/en/sql-reference/statements/create/view/# 物化视图可以理解为一个预聚合触发器,数据在控制好触发的汇聚条件,几乎是实时的 物化视图会存储一份计算好的聚合数据,是一种空间换时间的绝妙方法,对集群的稳定性和很重要。 物化视图的建立有两种方法 1,使用TO关键字( 推荐使用 ),可以控制TTL,不能使用POPULATE 例: 2,使用默认表 此方案建议是数据量小的表,因为无法控制TTL,后期数据运维不方便。默认存储表在clickhouse中是 .inner_id.uuid 值作为表名 例: 1,物化视图是一种空间换时间的预聚合方式,聚合后的数据将存储在新表中,一般于SummingMergeTree,AggregatingMergeTree等聚合引擎一起使用。 2,物化视图因为是写入触发器,所以as select只对每批次的insert data有效果,所以即使是where条件也是对这批写入数据起效果( https://clickhouse.tech/docs/en/sql-reference/statements/create/view/#materialized ) 4,POPULATE关键字,不建议使用,会把原始表中的已存在数据全部物化一遍,老数据的同步,建议直接insert到mv中 5,多表join生成物化视图,左表插入数据时才更新 6,源表数据的改变不会影响物化视图,如update, delete, drop partition
 首页 上一页  1 2 3 4 5 6  下一页  尾页