cube

Apache Kylin在美团点评的应用

♀尐吖头ヾ 提交于 2019-11-27 23:54:39
本文原载自大数据杂谈微信公众号。 感谢美团点评工程师高大月撰文并授权转载。 高大月,美团点评工程师,Apache Kylin PMC成员,目前主要在美团点评数据平台负责OLAP查询引擎的建设。 背景 美团点评的OLAP需求大体分为两类: 即席查询:指用户通过手写SQL来完成一些临时的数据分析需求。这类需求的SQL形式多变、逻辑复杂,对响应时间没有严格的要求。 固化查询:指对一些固化下来的取数、看数的需求,通过数据产品的形式提供给用户,从而提高数据分析和运营的效率。这类需求的SQL有固定的模式,对响应时间有比较高的要求 。 我们针对即席查询提供了Hive和Presto两个引擎。而固化查询由于需要秒级响应,很长一段时间都是通过先在数仓对数据做预聚合,再将聚合表导入MySQL提供查询实现的。但是随着公司业务数据量和复杂度的不断提升,从2015年开始,这个方案出现了三个比较突出的问题: 随着维度的不断增加,在数仓中维护各种维度组合的聚合表的成本越来越高,数据开发效率明显下降; 数据量超过千万行后,MySQL的导入和查询变得非常慢,经常把MySQL搞崩,DBA的抱怨很大; 由于大数据平台缺乏更高效率的查询引擎,查询需求都跑在Hive/Presto上,导致集群的计算压力大,跟不上业务需求的增长。 为了解决这些痛点,我们在2015年末开始调研更高效率的OLAP引擎,寻找固化查询场景的解决方案。

通过patch 方式解决cube.js 集成cratedb 的问题

梦想与她 提交于 2019-11-27 21:02:45
今天有写过一个简单的cube.js 集成cratedb 的说明,主要是在driver 上的兼容问题,处理方法是删除不兼容的代码 实际上我们也可以通过类似linux c 开发中的patch 方式解决,简化手工干预 生成patch 文件 安装npm 依赖 yarn 生成patch 重命名原有的文件(进入npm 包目录) cp PostgresDriver.js PostgresDriver-origin.js 修改PostgresDriver.js ,删除不兼容的部分: 生成patch diff -Nur node_modules/@cubejs-backend/postgres-driver/driver/PostgresDriver-origin.js node_modules/@cubejs-backend/post gres-driver/driver/PostgresDriver.js > cratedb-driver-patch.patch 恢复原有文件内容 新项目应用patch 需要先安装依赖,同时copy patch 文件 patch < cratedb-driver-patch.patch 效果 patch < cratedb-driver-patch.patch can't find file to patch at input line 3 Perhaps you

cube.js 集成cratedb 的尝试

橙三吉。 提交于 2019-11-27 20:39:01
cratedb 提供了pg协议的兼容,我们可以直接使用pg client 连接,但是也不是完整实现pg 协议的 以下是 cube.js 集成cratedb 的一些尝试 环境准备 docker-compose 文件 主要是数据库环境的 version: "3" services: db: image: crate ports: - "5432:5432" - "4200:4200" cube.js pg 项目创建 cubejs create -d postgres cratedemo 修改cube 环境变量 CUBEJS_DB_HOST=127.0.0.1 CUBEJS_DB_USER=crate CUBEJS_DB_TYPE=postgres CUBEJS_API_SECRET=c35c282663b0ba7918ad48740ab7bb326bcb733b97b0b5f434ba188c685b8dffbfb47c9ad37650643ff24ebffdc618255f967f60a6a50bd1d189692f14e76fe0 schema 生成的尝试 启动cratedb docker-compose up -d 效果 启动cube dev yarn dev 错误信息: 说明: 主要是cube pg driver 在时区处理上使用了cratedb 不支持的命令代码如下:

How to plot 3D grid (cube) in Matlab

淺唱寂寞╮ 提交于 2019-11-27 19:49:48
Hi I would like to plot transparent cube-shaped grid with lines in it. Something like this: However, I managed only to draw a 2D grid: [X,Y] = meshgrid(-8:.5:8); Z = X+1; surf(X,Y,Z) I use Matlab R2009b. If it is impossible to plot this in matlab could you recommend me a software I could use. If you don't mind a few for loops, something like this will work: clf figure(1) for g = 0:.2:2 for i = 0:.2:2 plot3([g g], [0 2], [i, i]) hold on end end for g = 0:.2:2 for i = 0:.2:2 plot3([0 2], [g g], [i, i]) hold on end end for g = 0:.2:2 for i = 0:.2:2 plot3([i i], [g g], [0 2]) hold on end end You

博客园添加旋转的正方体特效

送分小仙女□ 提交于 2019-11-27 18:04:40
哇,这个旋转的正方体特效也十分好看呢 参考链接: https://www.cnblogs.com/Trojan00/p/9497480.html 效果展示 具体步骤 将代码复制即可 代码如下:(在 博客侧边栏公告(支持HTML代码)中粘贴即可 ) <style> /*最外层容器样式*/ .wrap { width: 100px; height: 100px; margin: 150px; position: relative; } /*包裹所有容器样式*/ .cube { width: 50px; height: 50px; margin: 0 auto; transform-style: preserve-3d; transform: rotateX(-30deg) rotateY(-80deg); animation: rotate linear 20s infinite; } @-webkit-keyframes rotate { from { transform: rotateX(0deg) rotateY(0deg); } to { transform: rotateX(360deg) rotateY(360deg); } } .cube div { position: absolute; width: 200px; height: 200px; opacity: 0.8

CSS3 Transform变形(3D转换)

和自甴很熟 提交于 2019-11-27 13:16:27
CSS3 3D 转换 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换,你们发现3D变形的功能和2D变换的功能相当类似。CSS3中的3D变换主要包括以下几种功能函数: 3D位移:CSS3中的3D位移主要包括translateZ()和translate3d()两个功能函数; 3D旋转:CSS3中的3D旋转主要包括rotateX()、rotateY()、rotateZ()和rotate3d()四个功能函数; 3D缩放:CSS3中的3D缩放主要包括scaleZ()和scale3d()两个功能函数; 3D矩阵:CSS3中3D变形中和2D变形一样也有一个3D矩阵功能函数matrix3d()。 1.3D位移 在CSS3中3D位移主要包括两种函数translateZ()和translate3d()。translate3d()函数使一个元素在三维空间移动。这种变形的特点是,使用三维向量的坐标定义元素在每个方向移动多少。 随着px的增加,直观效果上: X:从左向右移动 Y:从上向下移动 Z:以方框中心为原点,变大 从上图的效果可以看出,当z轴值越大时,元素也离观看者更近,从视觉上元素就变得更大;反之其值越小时,元素也离观看者更远,从视觉上元素就变得更小。 例子: height: 300px; float: left; margin: 15px; position: relative;

Kylin工作原理、体系架构

五迷三道 提交于 2019-11-27 07:04:05
核心思想:预计算。   对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,并存在HBase中,供查询时直接访问   将高复杂度的聚合运算、多表连接……操作转换成对预计算结果的查询。决定了Kylin拥有很好的快速查询、高并发能力   理论基础:空间换时间 Cuboid:Kylin中将维度任意组合成为一个Cuboid Cube:Kylin中将所有维度组合成为一个Cube,即包含所有的Cubeid   为了更好地使用Hadoop大数据环境,Kylin从通常用来做数据仓库的HIve中读取源数据,使用Mapreduce作为Cube构建的引擎,并将于计算结果保存在HBase中,对外暴露Restful API/JEBC/ODBC的查询接口。   Kylin支持标准的ANSI SQL,所以可以和常用分析工具(Tableau、Excel)进行无缝对接 restful api:   符合REST架构设计的API。   RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用   REST,即Representational State Transfer的缩写   如果一个架构符合REST原则,就称它为RESTful架构   什么是RESTful架构:   (1)每一个URI代表一种资源;   (2)客户端和服务器之间

kylin(一): 原理架构

坚强是说给别人听的谎言 提交于 2019-11-27 07:03:55
由eBay开源的一个大数据OLAP框架,2014年11月加入了Apache,项目名字也改成了“Apache Kylin”,Apache Kylin是唯一来自中国的Apache顶级开源项目,定位于在Hadoop平台之上实现 传统数据仓库,商业智能的能力,提供交互式的,多维分析能力 ,并提供在传统数据仓库技术所不能做到的 超大规模数据集的快速查询 ,并使用普通的PC硬件,而无需采购专用的,私有的一体机或者高端存储等 kylin是一个MOLAP系统,通过预计算的方式缓存了所有 需要查询的的数据结果,需要大量的存储空间( 原数据量的10+倍 )。一般我们要分析的数据可能存储在关系数据库、HDFS上数据、文本文件、excel 等。kylin主要是对 hive中的数据进行预计算,利用hadoop的mapreduce框架实现 当前已经有超过100多家国内国外的公司正式使用Kylin作为其大数据分析平台的核心。包括eBay、Glispa、微软、Expedia、百度、美团、网易、京东、唯品会、中国移动、中国电信、国泰君安、华泰证券、联想、〇PP〇、魅族、去哪儿等等。Apache Kylin被用到了诸多如数据仓库,用户行为分析,流量(日志)分析,自助分析平台,电商分析,广告效果分析,实时分析,数据服务平台等各种场景 目录 系统架构 组件介绍 部署结构 (参考: https://www.sdk.cn

css3之3D 旋转立方体与哆啦A梦

狂风中的少年 提交于 2019-11-27 03:52:59
主要记录两个css3 3D转换的示例 ㈠哆啦A梦 三个哆啦A梦的图片,分别让其围绕X轴,Y轴,Z轴旋转60度,鼠标放上开始发生变化。 具体代码如下图所示: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>3d变换</title> 6 <style type="text/css"> 7 #stage{ 8 width: 910px; 9 margin:100px auto; 10 perspective:100px; 11 } 12 .box{ 13 width:300px; 14 height: 327px; 15 float: left; 16 transition:linear 1s; 17 transition-style:preserve-d; 18 } 19 img{ 20 width:300px; 21 height: 327px; 22 } 23 .x:hover{ 24 transform:rotateX(60deg); 25 } 26 .y:hover{ 27 transform:rotateY(60deg); 28 } 29 .z:hover{ 30 transform:rotateZ(60deg); 31 } 32 </style> 33 <

unity中的简单延时方法

大憨熊 提交于 2019-11-27 00:54:07
unity中的简单延时方法 在 unity 中我们经常会需要考虑一件事,如何让一个物体或者功能在特定的条件下出现,这时我们就可以考虑应用延时的方式来解决,我们可以通过设定不同的时间点,让物体干不同的事情,从而达到想要的效果。下面需要讲的的是两种比较常见的延时方法,一个是 unity 自带的 Invoke 和 InvokeRepeating,还有一个是协程。 一、场景的搭建 首先我们先搭建一个简单的场景,为了达到直观的效果,我们先创建两个Cube,一个Cube用来验证Invoke和InvokeRepeating的方法,另一个用来验证协程。我们可以通过不同时间段改变Cube的材质来体现延时的效果。比如让Cube从初始的白色通过不同时间段,由白变红,再由红变黄,最后再变绿,通过改变颜色变换时需要的时间来达到延时效果。 二、功能实现 我们在其中一个Cube中添加一个自定义脚本delayedOne。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class delayedOne : MonoBehaviour { public MeshRenderer skin; //定义一个网格渲染器 void Start () { skin = this.transform