空间维度

Kylin构建Cube过程详解

余生长醉 提交于 2019-12-01 12:15:49
1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式必须是日期格式,表示日期的含义)设定分区字段,这样一个cube就可以进行多次build,每一次的build会生成一个segment,每一个segment对应着一个时间区间的cube,这些segment的时间区间是连续并且不重合的,对于拥有多个segment的cube可以执行merge,相当于将一个时间区间内部的segment合并成一个。下面开始分析cube的build过程。 2 Cube示例 以手机销售为例,表SALE记录各手机品牌在各个国家,每年的销售情况。表PHONE是手机品牌,表COUNTRY是国家列表,两表通过外键与SALE表相关联。这三张表就构成星型模型,其中SALE是事实表,PHONE、COUNTRY是维度表。 现在需要知道各品牌手机于2010-2012年,在中国的总销量,那么查询sql为: SELECT b.`name`, c.`NAME`, SUM(a.count) FROM SALE AS a LEFT JOIN PHONE AS b ON a.`pId`=b.`id` LEFT JOIN COUNTRY AS c ON a.`cId`=c.`id` WHERE

curse of dimensionality维数灾难

跟風遠走 提交于 2019-12-01 08:41:30
curse of dimensionality维数灾难 或者翻译成维度的咒语,这个咒语出现在很多方面: sampling采样 如果数据是低维的,所需的采样点相对就比较少;如果数据是高维的,所需的采样点就会指数级增加,而实现中面对高维问题时往往无法获得如此多的样本点(即使获得了也无法处理这么庞大数据量),样本少不具有代表性自然不能获得正确的结果。 combinatorics组合数学 由于每个维度上候选集合是固定的,维度增加后所有组合的总数就会指数级增加。 machine learning机器学习 在机器学习中要求有相当数量的训练数据含有一些样本组合。给定固定数量的训练样本,其预测能力随着维度的增加而减小,这就是所谓的Hughes影响或Hughes现象。 data mining数据挖掘 在组织和搜索数据时有赖于检测对象区域,这些区域中的对象通过相似度属性而形成分组。然而在高维空间中,所有的数据都很稀疏,从很多角度看都不相似,因而平常使用的数据组织策略变得极其低效。 距离在高维环境下失去意义 在某种意义上,几乎所有的高维空间都远离其中心,或者从另一个角度来看,高维单元空间可以说是几乎完全由超立方体的“边角”所组成的,没有“中部”。一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%。这对于理解卡方分布是很重要的直觉理解。 卡方分布:若N个随机变量服从标准正态分布

Apache Kylin 概述

僤鯓⒐⒋嵵緔 提交于 2019-12-01 07:56:22
1 Kylin是什么 今天,随着移动互联网、物联网、AI等技术的快速兴起,数据成为了所有这些技术背后最重要,也是最有价值的“资产”。如何从数据中获得有价值的信息?这个问题驱动了相关技术的发展,从最初的基于文件的检索、分析程序,到数据仓库理念的诞生,再到基于数据库的商业智能分析。而现在,这一问题已经变成了如何从海量的超大规模数据中快速获 取有价值的信息,新的时代、新的挑战、新的技术必然应运而生。 在大数据处理技术领域,用户最普遍的诉求就是希望以很简易的方式从大数据平台上快速获取查询结果,同时也希望传统的商务智能工具能够直接和大数据平台连接起来,以便使用这些工具做数据分析。目前已经出现了很多优秀的SQL on Hadoop引擎,包括Hive、Impala及 SparkSQL等,这些技术的出现和应用极大地降低了用户使用Hadoop平台的难度。 为了进一步满足“在高并发、大数据量的情况下,使用标准SQL查询聚合结果集能够达到毫秒级”这一应用场景,Apache Kylin应运而生,在 eBay孵化并最终贡献给开源社区。Apache Kylin是2013年由eBay 在上海的一个中国工程师团队发起的、基于Hadoop大数据平台的开源 OLAP引擎,它采用多维立方体预计算技术,利用空间换时间的方法,把很多分钟级别乃至小时级别的大数据查询速度一下子提升到了亚秒级别,极大地提高了数据分析的效率

构建饿了么销售端与商家端的数据分析服务

爱⌒轻易说出口 提交于 2019-12-01 05:13:07
构建饿了么销售端与商家端的数据分析服务 前介 现状 需求收集 面临问题 解决办法 分析产品重点 技术方案 如何去做 先搭框架 小步迭代 未完成部分 数据看板配置化 数据产品配置化 总结 前介 今年8月,销售侧需要开始进行数据作战,我在支援销售侧业务的时候发现数据分析服务现状比较低效&不准,便和leader谈了我的想法与设计,自动请缨干这个事情,最后和总监过下方案,做一个通用的数据服务出来。这个项目我组了个小团队做到11月份,因为组织架构变更问题与领域拆分,业务移交到其他组。年底总结,写下此文,记下当时做事的思路与历程。 现状 每一个数据分析页面的需求过来,都需要经历开发在数据仓库中聚合各种数据推到mysql,在写接口读mysql数据。然后前后端联调,测试验收。 存在两个问题:1.重复开发;2.数据口径不一致;3.每次都新写代码,代码越多bug越多,数据测试也不过关。 需求收集 销售侧各个层级的经理与销售人员需要看其销售数据,基本需求如下: 查看维度:组织架构、BD、店铺、网格 时间维度:昨天、前天、最近一周、上周、本月、上月、最近30天、前30天 业务筛选聚合维度:店铺的各种标签 面临问题 需求多——数据作战是重点 数据量大,算60天订单,sum类聚合运算需提前算好 标签组合太多 解决办法 分析产品重点 与产品确认好聚合维度,固定住可以不变的 各种标签筛选、排序、算商户数都可以支持

deep_learning_MNIST数据集

ぐ巨炮叔叔 提交于 2019-11-30 16:02:59
Code_link: https://pan.baidu.com/s/1dshQt57196fhh67F8nqWow 本文是为既没有机器学习基础也没了解过TensorFlow的码农、序媛们准备的。如果已经了解什么是MNIST和softmax回归本文也可以再次帮助你提升理解。在阅读之前,请先确保在合适的环境中安装了TensorFlow( windows安装请点这里 ,其他版本请官网找),适当编写文章中提到的例子能提升理解。 首先我们需要了解什么是“ MNIST ”? 每当我们学习一门新的语言时,所有的入门教程官方都会提供一个典型的例子——“Hello World”。而在机器学习中,入门的例子称之为MNIST。 MNIST是一个简单的视觉计算数据集,它是像下面这样手写的数字图片: 每张图片还额外有一个标签记录了图片上数字是几,例如上面几张图的标签就是:5、0、4、1。 本文将会展现如何训练一个模型来识别这些图片,最终实现模型对图片上的数字进行预测。 首先要明确,我们的目标并不是要训练一个能在实际应用中使用的模型,而是通过这个过程了解如何使用TensorFlow完成整个机器学习的过程。我们会从一个非常简单的模型开始——Softmax回归。 然后要明白,例子对应的源代码非常简单,所有值得关注的信息仅仅在三行代码中。然而,这对于理解TensorFlow如何工作以及机器学习的核心概念非常重要

Kylin 入门

放肆的年华 提交于 2019-11-30 15:38:43
1 Kylin 概述 1.1 Kylin定义 Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多个维度分析(MOLAP)能力以支持超大规模数据,它能在亚秒内查询巨大的 Hive 表。 1.2 术语解释 Data Warehouse(数据仓库):数据仓库是一个各种数据(包括历史数据和当前数据)的中心存储系统,是BI( business intelligence ,商业智能)的核心部件 Business Intelligence(商业智能):商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具 OLAP(online analytical processing):OLAP(online analytical processing)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,从各方面观察信息,也就是从不同的维度分析数据,因此 OLAP 也成为多个维度分析 星型模型: 事实和维度: 1.3 架构 1、REST Server:是一套面向应用程序开发的入口点,旨在实现针对 Kylin 平台的应用开发工作,此类应用程序可以提供查询、获取结果、触发 Cube 构建任务、获取元数据以及获取用户权限等等,另外可以通过 Restful 接口实现 SQL

K-NN算法概述

梦想与她 提交于 2019-11-30 10:28:59
一、KNN算法(k-NearestNeighbor),k临近值算法:在给出一个数据点以后,判断它和已有数据点之间的距离,取k个距离最近的点,这些点中存在的那一类点最多就讲这个新的数据点归位那一类。 • 容易存在的问题:   1.、k 值过小,容易出现过 拟合问题 ,结果就是在训练集上准确度很高,但是在测试集上就很低。   2、特征的比重失衡。在计算样本点之间的距离时,如果不同的维度存在数量级差异,就会导致某些特征所起到的作用(对距离的影响)过大或过小。所以要进行归一化处理来避免这种问题的出现。 • 距离的度量:欧式距离、曼哈顿距离、取最大值等等 二、k-d(K-demension tree)树:将空间划分为特定的几个部分,在特定的部分内进行相关搜索。 来源: https://www.cnblogs.com/yyf2019/p/11578878.html

Kylin系列(一)—— 入门

落花浮王杯 提交于 2019-11-29 17:37:57
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/w124374860/article/details/82464518 总目录 Kylin系列(一)—— 入门 Kylin系列(二)—— Cube 构造算法 总目录 前言 核心概念 数据仓库 传统数仓和大数据数仓的区别 OLAP和OLTP 维度和度量 维度的基数 事实表和维度表 星型模型 Kylin中维度表的设计 Cube和Cuboid Kylin的技术架构 Kylin的核心模块 REST Server 查询引擎(Query Engine) Routing 元数据管理工具 任务引擎(Cube Build Engine) Kylin Cube三种构造 博客参考 因为平常只会使用kylin而不知其原理,故写下此篇文章。文章不是自己原创,是看过很多资料,查过很多博客,有自己的理解,觉得精华的部分的一个集合。算是自己对Kylin学习完的一个总结和概括吧。文章最后有链接,需要请自取。 前言 企业中的查询大致可分为即席查询和定制查询两种。很多的OLAP引擎包括Hive、Presto、SparkSQL,虽然很大成都上能降低数据分析的难度,但是他们都只适用于即席查询的场景。但是随着数据量和计算复杂度的增长,响应时间是无法保证的

numpy的基本使用(一)

孤人 提交于 2019-11-29 17:18:11
numpy概述 numpy(Numerical Python)提供了python对多维数组对象的支持: ndarray ,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy支持比Python更多种类的数值类型。NumPy数值是 dtype (数据类型)对象的实例,每个对象具有唯一的特征。 创建ndarray数组 ndarray :N维数组对象(矩阵),所有元素必须是相同类型。 ndarray属性:ndim属性,表示维度个数;shape属性,表示各维度大小;dtype属性,表示数据类型。 ndarray 内部由以下内容组成: 一个指向数据(内存或内存映射文件中的一块数据)的指针。 数据类型或 dtype,描述在数组中的固定大小值的格子。 一个表示数组形状(shape)的元组,表示各维度大小的元组。 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。 数组创建函数 创建一个 ndarray 只需调用 NumPy 的 array 函数 即可: numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0) 参数说明: import numpy as np

Keras.layer()

给你一囗甜甜゛ 提交于 2019-11-29 16:11:38
目录 Keras.layers Dense(全连接层) Activation(激活函数) Dropout Flatten(展平) Input(用于实例化 Keras 张量) Reshape(调整输入大小) Permute(置换输入的维度) RepeatVector(将输入重复 n 次) Lambda(将任意表达式封装为 Layer对象) ActivityRegularization(网络层) Masking(使用覆盖值覆盖序列) SpatialDropout1D(Dropout 的 Spatial 1D 版本) SpatialDropout2D(Dropout 的 Spatial 2D 版本) SpatialDropout3D(Dropout 的 Spatial 3D 版本) Keras.layers Dense(全连接层) Syntax: keras.layers.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias