计算&AI •
796 引用 •
800 回帖 •
419 关注
博客
关注
-
很多大机构都会有个中央数据仓库负责向应用提供数据服务。随着业务的发展,中央数据仓库的负载在持续增加。一方面,数仓是前端应用的数据后台,而前端应用不断增多,用户访问的并发数也不断增长。另一方面, ..
-
作为结构化计算引擎,SPL 带来了很多全新的概念,其内容远远超出以关系代数为基础的传统体系。熟悉 SQL 或者 Java 的同学,初次接触 SPL 时对此比较陌生,参考本文可以准确理解这些新概 ..
-
用 SPL 实现高性能计算,通常要将数据转存成 SPL 的格式。初次接触 SPL 的程序员对此比较陌生,参考本文可以快速上手,完成常见数据转存的工作。 这里给出了适合一般场景的样例代码,特殊情 ..
-
业务系统产生的明细数据通常要经过加工处理,按照一定逻辑计算成需要的结果,用以支持企业的经营活动。这类数据加工任务一般会有很多个,需要批量完成计算,在银行和保险行业常常被称为跑批,其它像石油、电 ..
-
随着大数据时代的来临,数据量不断增长,传统小机上跑数据库的模式扩容困难且成本高昂,难以支撑业务发展。很多用户开始转向分布式计算路线,用多台廉价的 PC 服务器组成集群来完成大数据计算任务。Ha ..
-
开源分析数据库 ClickHouse 以快著称,真的如此吗?我们通过对比测试来验证一下。 ClickHouse vs Oracle 先用 ClickHouse(简称 CH)、Oracle 数据 ..
-
用户画像分析需要使用众多标签来描述用户属性,通常有两类标签。一类用户标签的值可能有多个,比如用户学历是中学、大学、研究生、博士等,年龄段是 children、juvenile、youth、mi ..
-
高并发帐户查询的应用场景有很多,例如:手机银行查流水、电商系统查购物订单、手游帐户查充值记录等等。这些场景一般会涉及众多帐户,数据总量非常大,需要外存。每个帐户的数据量通常不大(几条到几千条) ..
-
物理上存储数据的表(简称物理表)往往会采用一些有利于提升性能、减小空间占用的存储机制。 但是,这些机制往往会降低数据可读性,且增加使用的复杂度。比如用整数代替枚举值,或者用整型字段的二进制位存 ..
-
观察一些大型用户的 BI 系统,经常会发现数据仓库中有很多快照表。如某交易业务的 BI 系统,交易明细表很大,被按月存储成多个分段表。还有一些相对不太大的表,计算时要和交易明细表关联,比如客户 ..
-
用户分析(或帐户分析),是指对用户、帐户明细数据进行统计分析计算。常见的有:用户行为分析、银行帐户统计、漏斗转化率、保险单分析等等。 这类场景涉及众多用户的历史数据,总数据量巨大(几千万甚至上 ..
-
依据用户、帐户明细数据做统计分析的场景比较常见。比如:用户行为分析、银行帐户统计、漏斗转化率、保险单分析等等,我们统称为帐户分析。这类场景的特征是:总数据量巨大但单个帐户数据量相对很小;数据涉 ..
-
很多数据仓库产品都采用了列式存储。如果数据表的总列数很多而计算涉及的列很少,采用列存就只读取需要的列即可,能够减少硬盘访问量,提高性能。特别是数据量非常大时,硬盘扫描和读取的时间占比很大,这时 ..
-
与以磁盘存储为主的普通数据库相比,内存数据库的数据访问速度可以高出几个数量级,能大幅提高运算性能,更适合高并发、低延时的业务场景。 不过,当前大部分内存数据库仍然采用 SQL 模型,而 SQL ..
-
JOIN 一直是数据库性能优化的老大难问题,本来挺快的查询,一旦涉及了几个 JOIN,性能就会陡降。而且,参与 JOIN 的表越大越多,性能就越难提上来。 其实,让 JOIN 跑得快的关键是要 ..
-
部分预汇总 多维分析后台的运算本质是分组汇总,可以直接对数据执行这个计算。但是,当数据量非常大的时候,很难做到即时响应。 预汇总是个容易想到的办法,即事先把各种汇总结果计算好,保存为中间结果( ..
-
大数据表关联时,有时会先对关联表做条件过滤。对于关联字段是主键或者部分主键的情况,SPL 在有序归并关联算法(参考这里)的基础上提供关联定位算法,来提升过滤后关联的计算性能。 先来看关联表按照 ..
-
在大数据表关联场景中,如果各个表按照主键或部分主键关联,我们可以采用 SPL 附表机制来做性能优化。 附表机制是将上述要关联的表绑在一起存储。以客户表 customer 和联系方式表 cont ..
-
大表关联常常会出现性能问题。对于关联字段是主键或者部分主键的情况,SPL 提供有序归并算法来计算。 有序关联算法,要事先把这些关联表的数据按其主键排序。排序的成本虽然较高,但是一次性的。一旦完 ..
-
大数据计算场景下,很多比较复杂的算法都会产生落地的中间结果,出现对外存的读写,从而影响性能。 例如,帐户交易表 trades 包含帐号 id,交易日期 dt 和交易金额 amou ..
-
遍历复用的原理 对外存数据表做遍历计算时,大部分时间都用来从硬盘上读取数据了。所以我们会希望一次读取能做尽量多的事情,也就是尽量做到能复用遍历过程中读出来的数据。 比如我们对订单 ..
-
结构化数据查询中,常常会遇到全文检索的需求。比如,在国家表中,查找 Ch 开头的国家;或者在“帖子”表中,查找“内容”字段包含 water 的记录。 面向搜索的全文检索虽然能解决这个问题,但不 ..
-
外存索引是在原表之外建立的,被查找字段值和原表记录物理位置的关联表。在查找时,用指定值从这个关联表中迅速获得原表物理位置,再去读取原表记录。 这样,索引中会存储很多被查找字段值。要在其中找到指 ..
-
索引类似于原表的 '目录',是在原表之外,另外建立的存储结构。在做查找计算时,先查索引,在 '目录' 中找到原表的位置,再去原表找到对应的记录。查索引比查原表快的越多,索引提速的效果越明显。 ..
-
两个大表做关联,常常会出现性能问题。其中比较常见的一种情况,是用一个大表的非主键字段,去关联另一个大表的主键。例如:订单表 orders 和客户表 customer 都很大,内存无法装下。订单 ..