当前位置: 首页 > news >正文

dw做网站需要数据库么/网站制作建设公司

dw做网站需要数据库么,网站制作建设公司,wordpress更改后台,敬请期待英文翻译clickhouse中bitmap的使用对于用户标签及用户,访客跨维度去重统计是十分合适的选择,具有更快的查询效率。 1.bitmap bitmap建表方式: create table test.bitmap_test(tenant_id String comment 租户id,shop_id String comment 门店…

       

        clickhouse中bitmap的使用对于用户标签及用户,访客跨维度去重统计是十分合适的选择,具有更快的查询效率。

1.bitmap

bitmap建表方式:

create table test.bitmap_test(tenant_id   String  comment '租户id',shop_id     String  comment '门店id',h           int    comment '小时段',uv          AggregateFunction(groupBitmap(),Int64) comment '记录访客人数',dt          Date   comment '日期'
)engine =AggregatingMergeTree()
partition by (dt)
order by (tenant_id,shop_id)
settings index_granularity =8192;

uv字段就是bitmap的数据类型,里面存储的元素就是bitmap对象

创建数据源表:

create table test.bitmap_source(tenant_id   String  comment '租户id',shop_id     String  comment '门店id',h           int    comment '小时段',uv          String comment '记录访客人数',dt          Date   comment '日期'
)engine =MergeTree()
partition by (dt)
order by (tenant_id,shop_id)
settings index_granularity =8192;

将数据源表中的数据写入bitmap表中:

    insert into test.bitmap_testselecttenant_id,shop_id,h,groupBitmapState(metroHash64(uv)),dtfrom test.bitmap_test1group by tenant_id, shop_id, h, dt;

        其中在将数据写入bitmap表中,使用两个函数metroHash64()将uv String类型的转换为int类型,而后在使用groupBitmapState()函数转换为bitmap对象存入bitmap表中。

        通常在bitmap函数后加State则构造为bitmap对象数据,对于构造bitmap有两种方式:

一种是从聚合函数groupBitmapState构造的,另外一种就是使用Array对象进行构建
//构建bitmap函数
SELECT bitmapOrCardinality(bitmapBuild([1,2,3,4,5,6]), bitmapBuild([3,4,5,6,7,8]));

求取去重的uv访客量:

select groupBitmapOr(uv) from test.bitmap_test;

groupBitmap函数就是bitmap对象的聚合函数,作用就是去重统计该bitmap字段对象的的数量。

更多的bitmap聚合函数可以通过下面链接在官网中查看。

2.常用的位图函数

        除了上面所说到的聚合函数外,还用很多常用的位图操作函数,对于位图操作函数,可以在下面参考文章和官网资料中有详细的介绍就不在一一解释了。

3.bitmap表join求取去重效果

select * from
(select * from test.bitmap_test t1
left join (select * from test.bitmap_test where tenant_id='1000000007') t2
on t1.tenant_id=t2.tenant_id);

 执行结果:

 对于t2中没有关联上的数据,uv直接为空,在使用bitmap聚合函数求取uv的去重人数时候,


select groupBitmapOr(t2.uv) from
(select * from test.bitmap_test t1
left join (select * from test.bitmap_test where tenant_id='1000000007') t2
on t1.tenant_id=t2.tenant_id);

执行结果为:

该结果和下面语句的执行结果相同

select groupBitmapOr(uv) from test.bitmap_test where tenant_id='1000000007';

         这表示用bitmap聚合函数求取去重人数的时候字段中有空值并不会造成结果的不准确。

4.clickhouse建表时候null值字段设置

 建表时如果没有对字段指定可以存储null值,则在数据时候会对null值数据数值类型补为:0,字符串类型补为:''空字符串;

create table if not exists test(id int,name String
)
engine =MergeTree()
order by (id);--没有对字段设置为可支持null值存储,则保存时候会无法存入null值,对null数据替换

解决方案:clickhouse支持null值存储语法

create table if not exists test(id Nullable(int),name Nullable(String)
)
engine =MergeTree()
order by (id);--使用nullable语法来实现支持null值

官网资料:

1.bitmap建表数据类型指定 

2.bitmap的聚合函数

3.位图操作函数

参考文章:

1.BitMap使用在clickhouse中

2.参考

http://www.jmfq.cn/news/5090095.html

相关文章:

  • 销售网站制作电话/微信推广费用一般多少
  • 高端网站设计公司如何设计网站/加强服务保障 满足群众急需需求
  • 网站源码出售/网站关键词优化建议
  • 做网站首页的图片怎么缩小/深圳市网络seo推广平台
  • 北京手机网站建设外包/百度一下知道官网
  • html5 公司网站/品牌网站设计
  • 建设工程鲁班奖公示网站/app推广文案
  • 设计网站中如何设置特效/网推软件有哪些
  • 高端网站开发教程/谷歌收录查询工具
  • 北京网站制作费用/湖南seo网站开发
  • wordpress标题间隔符修改/seo课程在哪培训好
  • 青岛的网站建设/互联网营销是什么
  • 成都个人网站建设/近两年网络营销成功案例
  • 公安网站的建设目的/南昌seo代理商
  • 专门做加盟的网站/市场营销推广策划方案
  • 代理服务器地址大全/seo站长网怎么下载
  • 西安保洁公司网站建设/最近实时热点新闻事件
  • 重庆潼南网站建设哪家便宜/网络营销推广是做什么的
  • 怎样建设邮箱网站/seo网站优化价格
  • 天津网站建设公司排名/网站推广文章
  • 九江 网站建站 设计 公司/西安网站到首页排名
  • 亳州网站网站建设/百度权重域名
  • 上海浦东新区科技网站建设/网络营销师证书有用吗
  • 香港网站没有icp备案吗/河北网站seo策划
  • 设计头条/seo推广专员招聘
  • 天河网站建设制作/网站建设的推广渠道
  • 四川做网站设计哪家好/竞价服务托管价格
  • 企业信息信用系统/不错宁波seo公司
  • 网站的当前位置导航如何做/it培训机构学费一般多少
  • 义乌制作网站/镇江关键字优化品牌