小点
小点
哥伦布112
Apache IoTDB contributor
https://github.com/WilliamSong11/iotdb
展开
-
数据仓库之拉链表(原理、设计以及在Hive中的实现)
全文由下面几个部分组成:先分享一下拉链表的用途、什么是拉链表。 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。 举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下的设计为例)。 分析一下拉链表的优缺点,并对前面的提到的一些内容进行补充说明,比如说拉链表和流水表的区别。0x01 什么是拉链表拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记原创 2020-07-25 23:25:54 · 845 阅读 · 0 评论 -
orc与parquet格式的选择
对于orc与parquet这两种列式存储格式,网上能找到大量的介绍以及对比,此处简单总结一下:orc VS parquet:orc存储压缩率比parquet要高;一般来说,orc读取效率比parquet要高;parquet支持嵌套数据格式,orc原生不支持嵌套数据类型(但可通过复杂数据类型如map<k,v>间接实现,此处情况即对应第二条中的“特例”,影响性能);parquet支持字段扩展,orc原生不支持字段扩展(但可手动重写读取方法实现,此处也对应第二条中的“特例”);应用场景:原创 2020-07-25 23:11:10 · 925 阅读 · 0 评论 -
文件操作中file.seek()方法
摘要:file.seek()可以将文件游标移动到文件的任意位置,本文具体的file.seek()文件游标移动操作方法、file.seek()方法标准格式是:seek(offset,whence=0)offset:开始偏移量,也就是代表需要移动偏移的字节数。whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。代码:f = open('111.py','rb')print(f.tell...原创 2020-07-25 20:17:20 · 3608 阅读 · 0 评论 -
MySQL对时间的处理总结
1、to_days函数查询今天的数据:select * from 表名 where to_days(时间字段名) = to_days(now()); to_days函数:返回从0000年(公元1年)至当前日期的总天数2、DAYOFWEEK(date) ,返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。3、WEEKDAY(date) ,返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。4、DAYOFMONTH(date)原创 2020-07-22 22:46:45 · 285 阅读 · 0 评论 -
MySQL5.7:of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘userinfo.
only_full_group_by说明:only_full_group_by : 使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好...原创 2020-07-22 20:19:27 · 149 阅读 · 0 评论 -
《设计数据密集型应用》第三章(1) 存储索引:LSM-tree
本章主要解决的是如何为应用选择一个合适的数据库,使之能够正确地进行数据的存储和检索。不同的数据库的工作方式可能会差异很大,因此我们作为开发者需要对每个数据库的特性了然于胸,才能选择到适合应用的数据库。本节内容先介绍数据结构和索引的相关知识。数据库的数据结构先从一个世界上最简单的数据库来引起话题,这两个bash函数就实现了一个数据库:#!/bin/bashdb_set () { echo "$1,$2" >> database}db_get () { .原创 2020-07-13 13:39:29 · 272 阅读 · 2 评论 -
【数据仓库】元数据血缘分析
现在数据仓库基本上采用Hadoop平台了,那么数据仓库里面元数据的血缘分析的思路有哪些呢基本上有下面这两种思路:1、解析hql脚本,通过正则表达式去匹配每一行字符串2、采用Hadoop自带的语法分析类解析这里比较建议采用第二种,比较直接简单,因为第一种方式比较复杂,需要考虑场景比较多,容易出现遗漏Hadoop 自带的类 org.apache.hadoop.hive.ql.tools.LineageInfo将hql语句通过解析语法tree,获取hive表的源表和目标表,达到血缘.原创 2020-07-01 17:37:51 · 1950 阅读 · 0 评论 -
Neo4j 数据血缘分析可视化
用工具获取数据的血缘关系 用Neo4j可视化添加节点 CREATE (PRODUCT:TABLES {title:'PRODUCT', tagline:'once upon a time'}) CREATE (PROFIT_RATE_89:TABLE1 {name:'PRODUCT', id_:89,column_name:'PROFIT_RATE'}) CREATE (PROFIT_RATE_75:TABLE2 {name:'TMP_TABLE', id_:75,c..原创 2020-07-01 17:36:24 · 3429 阅读 · 0 评论 -
数仓中的全量表,增量表,拉链表,流水表,快照表
预热:我们先从几个物理概念入手理解什么是流量,存量,增量(1)存量:系统在某一时点时的所保有的数量;(2)流量:是指在某一段时间内流入/出系统的数量(3)增量:则是指在某一段时间内系统中保有数量的变化(4)增量=流入量--流出量(5)本期期末存量=上期期末存量+本期内增量正题一般公司只是简单分成 全量表,增量表,和拉链表。所以重点关注如下三个表就OK了。全量表:每天的所有的最新状态的数据。(1)全量表,有无变化,都要报(2)每次上报的数据都是所有的数据(变化的+..原创 2020-06-23 00:33:30 · 1229 阅读 · 0 评论 -
建模涉及概念
例如,可以按照季度汇总的销售数据下钻,观察按月汇总的数据。也可以按城市汇总的销售数据上卷,观察按国家汇总的数据。这就是数据钻取的两个简单例子。事实表技术简述事实表结构1,总是包含外键,且外键不能唯空。2,事实表的设计完全依赖业务活动,不受最终报表的影响。3,每行对应一个度量事件。可加、半可加、半可加事实1,可加事实:最灵活,最有用的事实。可以按照和事实表关联的任意维度汇总。2,半可加事实:可以按照某些维度汇总。例如差额,或者新增额,对于时间就只能是筛选条件不能用作维度。3,不可加事实:原创 2020-06-20 18:35:57 · 200 阅读 · 0 评论 -
星型雪花型的区别
如果要对维度进行分析,雪花型更优雪花模型使得维度分析更加容易1、一个用户维度表且数据量较大。其中,80%的事实度量表是匿名访问者,仅包含少数详细信息。20%的是可靠的注册用户,且这些注册用户有较为详细的信息,与多个维度表中的数据相连。2、例如一个金融产品维度表,且这些金融产品有银行类的,保险类等等区别。因此不同种类的产品有自己一系列的特殊属性,且这些属性并非是所有产品共享的。3、多个企业共用的日历维度表。但每个企业的财政周期不同,节假日不同等等。在数据仓库的环境中用雪花模型,降低储...原创 2020-06-20 18:14:16 · 469 阅读 · 0 评论 -
构建用户画像
一、什么是用户画像?男,31岁,已婚,收入1万以上,爱美食,团购达人,喜欢红酒配香烟。这样一串描述即为用户画像的典型案例。如果用一句话来描述,即:用户信息标签化。如果用一幅图来展现,即:二、为什么需要用户画像用户画像的核心工作是为用户打标签,打标签的重要目的之一是为了让人能够理解并且方便计算机处理,如,可以做分类统计:喜欢红酒的用户有多少?喜欢红酒的转载 2017-05-17 16:15:13 · 785 阅读 · 1 评论 -
常用git命令整合github/gitlab
公司所用版本控制是gitlab 命令其实与github是相同的git config --global ------usernamegit config --global ------pwd以上命令细节自己百度cd 到 代码目录 看看有哪些发生改变git statusgit add git commit -m '代码描述'原创 2017-09-12 18:08:05 · 277 阅读 · 0 评论 -
sql – JOIN和WHERE中的过滤查询之间的区别?
脚本之家收集整理的这篇文章主要介绍了sql – JOIN和WHERE中的过滤查询之间的区别?,脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。在SQL中,我试图根据ID过滤结果,并想知道是否存在任何逻辑差异SELECT value FROM table1 JOIN table2 ON table1.id = table2.id WHERE table1.id = 1和SELECT value FROM table1 JOIN table2 ON tab..原创 2020-06-11 20:18:32 · 374 阅读 · 0 评论 -
sql练习题
有2张表,为父子关系表:1 Employee 表id Name Age1 张三 312 李四 283 王五 40...2 Wages 表-------------------------------------------------------------Emp_id | 工资项目 | 工资金额 |-------------------------转载 2017-03-20 20:41:43 · 17686 阅读 · 0 评论 -
实现查询时差在五分钟以内的数据 (sql)
方案大致三种,核心的原理都一样 都是逐行比对第一种:使用游标实现第二种:写一个存储过程 ,存储过程中实现 逐行比对逻辑第三种:在代码中进行逐行比对逻辑(推荐,数据库对服务器的性能影响最小)·create table #tempTable(id int,dateS datetime)declare @id intdeclare @date varchar(50原创 2017-03-09 17:23:42 · 6928 阅读 · 1 评论 -
vi和vim的区别
vi 和vim 的区别它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。vim的这些优势主要体现在以下几个方面:1、多级撤消我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。2、易用性vi只能运行于unix中,而vim不仅可以运行于unix,wi转载 2017-12-17 16:54:11 · 337 阅读 · 0 评论 -
Ubuntu下修改环境变量的三种方法
Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户: 一:用于当前终端:在当前终端中输入:export PATH=$PATH:不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。 export NDK_ROOT=/home/jiang/soft/android-ndk-r8e 只能转载 2017-09-21 10:03:45 · 570 阅读 · 0 评论 -
ssh 免密码登录
ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。1.在A机下生成公钥/私钥对。[chenlb@A ~]$ ssh-keygen -t rsa -P ''-P表示密码,-P '' 就表示空转载 2017-04-24 18:50:38 · 284 阅读 · 2 评论