自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (2)
  • 收藏
  • 关注

转载 Hive鲜为人知的宝石-Hooks

本来想祝大家节日快乐,哎,无奈浪尖还在写文章。谴责一下,那些今天不学习的人。对于今天入星球的人,今天调低了一点价格。减少了20大洋。机不可失失不再来。点击阅读原文或者扫底部二维码。hive概述Hive为Hadoop提供了一个SQL接口。 Hive可以被认为是一种编译器,它将SQL(严格来说,Hive查询语言 - HQL,SQL的一种变体)转换为一组Mapreduce / Tez / Spark作业。 因此,Hive非常有助于非程序员使用Hadoop基础架构。 原来,Hive只有一个引...

2020-06-30 19:04:02 326

转载 从底层采集所有运行的HIVE SQL

版权修改HIVE-SITE.XML,每个sql在执行之前都会去执行这个类,这个类实现ExecuteWithHookContext接口<property> <name>hive.exec.pre.hooks</name> <value>com.wending.hive.HivePreHook</value> <description> Comma-separated list of pre...

2020-06-30 18:59:52 314

转载 数仓字段血缘解析实现—hive版

【本文大纲】1、字段血缘分析的意义2、实现方案选择3、实现过程4、总结字段血缘分析的意义数仓经常会碰到的两类问题:1、两个数据报表进行对比,结果差异很大,需要人工核对分析指标的维度信息,比如从头分析数据指标从哪里来,处理条件是什么,最后才能分析出问题原因 ——数据回溯问题2、基础数据表因某种原因需要修改字段,需要评估其对数仓的影响,费时费力,然后在做方案 —— 影响分析问题这两类问题都属于数据血缘分析问题,数据血缘分析还有其它的积极意...

2020-06-30 18:05:07 1707 1

转载 [一起学Hive]之十九-使用Hive API分析HQL的执行计划、Job数量和表的血缘关系

关键字:Hive HQL Job数量、Hive执行计划、Hive LineageInfo本文介绍使用Hive的API获取一条HQL的最终执行计划,从而获取这条HQL的Job数量,另外,介绍使用API分析一条HQL中所包含的输入表和输出表。这些信息在做元数据管理和Hive表的血缘分析时候很有用。Hive在执行一条HQL的时候,会经过以下步骤:语法解析:Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象 语法树AST Tree; 语义解析:遍历AST Tree,抽象...

2020-06-30 17:57:03 1316

转载 系列:用python+antlr解析hive sql获得数据血缘关系(一)

工作刚开始,边学边记,预计不止两篇三篇的,先提个系列系列目标编程获得数据血缘关系的需求对数据仓库来说并不普遍,只有数据规模达到很大的程度,或者存在复杂数据生产关系的报表数量增加到很大的程度,单独的数据血缘关系工作才有必要。在规模没达到之前,人工的识别和管理是更经济有效的。本系列想要做到的目标是这个uber的 queryparser的一个子集,在有限知道目标数据表结构的前提下,发现并记录目标字段与来源表和字段的关系。这种功能queryparser应该是已经具备的,并且它本身是开源的,但que.

2020-06-28 18:42:45 2079 1

转载 基于spark logicplan的表血缘关系解析实现

随着公司平台用户数量与表数量的不断增多,各种表之间的数据流向也变得更加复杂,特别是某个任务中会对源表读取并进行一系列复杂的变换后又生成新的数据表,因此需要一套表血缘关系解析机制能清晰地解析出每个任务所形成的表血缘关系链。 实现思路: spark对sql的操作会形成一个dataframe,dataframe中的logicplan包含了sql的语法树,通过对logicplan的语法树解析可以获取当前stage所操作的输入表和输出表,将整套表关系链连接起来,再去除中间表即可获...

2020-06-28 17:46:07 1213

转载 如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点想裁了他。沈老师,我应不应该踢了他?”听了ZS的问题,先是一惊,然后我讲一个故事。画外音:最近讲了不少Dota的故事。2017年,Dota2 DAC世界总决赛,IG以3:0零封OG夺冠。彼时,世界冠军Burning,带领新人boboka和xxs举起了冠军奖杯,天才少年boboka和xxs逐渐声名鹊起。同年,IG在TI7世界杯拿到...

2020-06-24 16:47:11 371

转载 impala&hive大数据平台数据血缘与数据地图(三)-实时消费血缘记录写入neo4j并验证

impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka3. 实时消费血缘记录写入neo4j并验证-----------------------------------------实时消费impala血缘数据写入neo4j-----------------------------------------------------前两篇介绍了如何采集impala和hive的血缘日志以及如何实时将该日志采集到kafka消.

2020-06-24 10:22:51 619

转载 impala&hive大数据平台数据血缘与数据地图(二)-实时采集impala血缘日志推送到kafka​​​​​​​

impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka-----------------------------------------实时采集impala血缘日志推送到kafka-----------------------------------------------------使用filebeat采集impala的血缘日志并推送到kafka采用filebeat的主要原因是因为轻量,对impala的血缘日志..

2020-06-24 10:19:17 525

转载 impala&hive大数据平台数据血缘与数据地图(一)-解析impala与hive的血缘日志

impala数据血缘与数据地图系列:1. 解析impala与hive的血缘日志2. 实时采集impala血缘日志推送到kafka---------------------------------解析impala与hive血缘日志-------------------------------------------------------------Impala血缘:CDH官方文档impala数据血缘:https://docs.cloudera.com/documentation/en.

2020-06-24 10:13:19 1218

转载 细说MySQL的时间戳(Timestamp)类型

生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5.6/5.7三个大版本和N个小版本,由于MySQL在向上兼容性较差,导致相同SQL在不同版本上表现各异,下面从几个方面来详细介绍时间戳数据类型。时间戳数据存取在MySQL上述三个大版本中,默认时间戳(Timestamp)类型的取值范围为'1970-01-01 00:00:01' UTC至'2038-01-19 03:14:07' UTC,数据精确到秒级别,该取值范围包含约22亿个数值,因此在MySQL内部使用4个字节I...

2020-06-23 17:34:11 2951

转载 Mysql数据库的一个问题-----不能两个timestamp字段的默认值同时是CURRENT_TIMESTAMP

今天创建表的时候突然发现当我创建数据库的时候用如下sql语句:create table SELLHOME(IDINT not null auto_increment,ADMINIDINT,AREAIDINT,ESTATEIDINT,TITLEVARCHAR(50),SELLPRICE...

2020-06-23 17:32:49 1148

转载 mysql 多个timestamp类型字段的默认值设置问题

先看创建mysql的错误:'Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause',英文不错的朋友就能马上找到原因,此信息大致意思是‘不能有多个timestamp类型的字段同时设置默认值或者 on update为current_timestamp ’。由上可知我们在拥有多个timestamp类型字段默认值设置时就需要.

2020-06-23 17:31:47 905

转载 syntax error, expect RPAREN, actual LITERAL_INT pos 885, line 46, column 29, token LITERAL_INT

Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, expect RPAREN, actual LITERAL_INT pos 885, line 46, column 29, token LITERAL_INT at com.alibaba.druid.sql.parser.SQLExprParser.accept(SQLExprParser.java:2860) at com.alibaba...

2020-06-23 17:21:46 12145

转载 MySQL中有关TIMESTAMP和DATETIME的总结

一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP()二、关于TIMESTAMP和DATETIME的比较一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“Y.

2020-06-23 15:38:41 136

转载 细说MySQL的时间戳(Timestamp)类型

生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5.6/5.7三个大版本和N个小版本,由于MySQL在向上兼容性较差,导致相同SQL在不同版本上表现各异,下面从几个方面来详细介绍时间戳数据类型。时间戳数据存取在MySQL上述三个大版本中,默认时间戳(Timestamp)类型的取值范围为'1970-01-01 00:00:01' UTC至'2038-01-19 03:14:07' UTC,数据精确到秒级别,该取值范围包含约22亿个数值,因此在MySQL内部使用4个字节I...

2020-06-23 11:40:19 1231

转载 Apache Cassandra SSTable 存储格式详解

简介:在 Cassandra 中,当达到一定条件触发 flush 的时候,表对应的 Memtable 中的数据会被写入到这张表对应的数据目录(通过 data_file_directories 参数配置)中,并生成一个新的 SSTable(Sorted Strings Table,这个概念是从 Google 的 BigTable 借用的)。在 Cassandra 中,当达到一定条件触发 flush 的时候,表对应的 Memtable 中的数据会被写入到这张表对应的数据目录(通过 data_file...

2020-06-23 10:08:55 874

转载 提取 Druid 的 SQL 解析器

认识 DruidDruid 是阿里巴巴公司开源的一个数据库连接池,它的口号是:为监控而生的数据库连接池根据官方 wiki的介绍Druid 是一个 JDBC 组件库,包括数据库连接池、SQL Parser 等组件,DruidDataSource 是最好的数据库连接池。显然,官方有意无意地强调了 DruidDataSource 是最好的数据库连接池 -_- ...Druid SQL 解析器Druid 作为一个数据库连接池,功能很多,但我接触 Druid 的时候,却不是因为它有世界上...

2020-06-22 11:47:35 1219

转载 使用Druid的sql parser做一个表数据血缘分析工具

版权前言大数据场景下,每天可能都要在离线集群,运行大量的任务来支持业务、运营的分析查询。任务越来越多的时候,就会有越来越多的依赖关系,每一个任务都需要等需要的input表生产出来后,再去生产自己的output表。最开始的时候,依赖关系自然是可以通过管理员来管理,随着任务量的加大,就需要一个分析工具来解析任务的inputs、outs,并且自行依赖上生产inputs表的那些任务。本文就介绍一个使用druid parser,来解析SQL的input、output的血缘分析工具。建议对druid比较陌生的.

2020-06-22 11:27:11 2972 1

转载 大数据血缘分析系统设计(三)

数据级别血缘关系介绍 血缘关系数据的收集 数据ID的标识 数据流转的收集 SQL MapReduce Spark 其他 血缘关系图的可视化在前面一篇《大数据血缘分析系统设计(二)》中,对大数据血缘分析系统做了整体的介绍,任务级别的血缘关系计划放在分布式调度系统的设计当中介绍,因此本系列后面主要针对数据级别和字段级别进行介绍数据级别血缘关系介绍参考《数据级别》血缘关系数据的收集数据ID的标识要想血缘关系图中方便的定位到数据,首要解决的问题,就是数据ID的唯一标识。最...

2020-06-22 11:22:21 4012

转载 hive血缘关系之输入表与目标表的解析

  接了一个新需求:需要做数据仓库的血缘关系。正所谓兵来将挡水来土掩,那咱就动手吧。  血缘关系是数据治理的一块,其实有专门的第三方数据治理框架,但考虑到目前的线上环境已经趋于稳定,引入新的框架无疑是劳民伤财,伤筋动骨,所以就想以最小的代价把这个事情给做了。目前我们考虑做的血缘关系呢只是做输入表和输出表,最后会形成一张表与表之间的链路图。这个东西的好处就是有助于仓库人员梳理业务,后面可能还会做字段之间的血缘关系等,后面做了再说,今天只是记录一下输入表和输出表的血缘关系。  我们线上的环境用来做...

2020-06-22 10:54:04 1622 1

转载 数据管理——数据血缘关系概述

摘要:数据的血缘关系作为数据治理很重要的部分,需要引起格外的重视。数据血缘关系的概念在人类社会中,血缘关系是指由婚姻或生育而产生的人际关系。如父母与子女的关系,兄弟姐妹关系,以及由此而派生的其他亲属关系。它是人先天的与生俱来的关系,在人类社会产生之初就已存在,是最早形成的一种社会关系。大数据时代,数据爆发性增长,海量的、各种类型的数据在快速产生。这些庞大复杂的数据信息,通过联姻融合、转换变换、流转流通,又生成新的数据,汇聚成数据的海洋。数据的产生、加工融合、流转流通,到最...

2020-06-22 10:51:18 3206

转载 Apache Calcite教程-SQL解析-Calcite自定义语法解析

版权Calcite自定义SQL解析常用方法和配置config.fmpp配置和Parser.jj文件结合说明package,class,importskeywordsnonReservedKeywordsjoinTypesstatementParserMethodsliteralParserMethodsdataTypeParserMethodsalterStatementParserMethodscreateStatementParserMethodsdropStatement.

2020-06-19 15:12:50 2913

转载 使用Calcite做Sql语法解析

Flink SQL中使用Calcite作为sql语法解析、校验、优化工具,本篇是实操篇,介绍一下calcite做sql语法解析使用方式。sql经过calcite解析之后,得到一棵抽象语法树,也就是我们说的AST,这棵语法树是由不同的节点组成,节点称之为SqlNode,根据不同类型的dml、ddl得到不同的类型的SqlNode,例如select语句转换为SqlSelect,delete语句转换为SqlDelete,join语句转换为SqlJoin。使用方式:SqlParser.Config ...

2020-06-19 15:00:29 2012

转载 left join和left semi join的联系和区别

1、联系他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join),而left semi join 则属于 map join(broadcast join)的一种变体,从名字可以看出他们的实现原理有差异。2、区别(1)Semi Join,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端...

2020-06-19 11:19:05 604

转载 数据分析平台灵魂三问:是什么?为什么?怎么做?

伴随着社会发展,企业信息化程度越来越高。一个典型的制造型企业核心通用信息化系统可能就包括办公自动化系统(OA)、客户关系管理系统(CRM)、条形码系统(BCS)、供应链管理系统(SCM)、产品数据管理系统(PDM)、产品生命周期管理系统(PLM)、制造执行管理系统(MES)、高级计划排程系统(APS)、企业资源计划系统(ERP)以及人力资源管理系统(HRM)等等。每一天,这些系统都会产生大量的数据。越来越多的企业都想利用这部分数据进行分析从而获得重要信息,以此拓宽和巩固自己的经济业务和发展疆域。由...

2020-06-18 15:38:28 383

转载 Apache Cassandra性能调优-混合工作负载压缩

这是我们关于使用Apache Cassandra进行性能调整的系列文章中的第三篇。在我们的第一篇文章中,我们讨论了如何使用火焰图直观地诊断性能问题。在第二篇文章中,我们讨论了JVM调优,以及不同的JVM设置如何影响不同的工作负载。在本文中,我们将深入探讨通常被忽略的表级设置:压缩。可以在创建或更改表时指定压缩选项,如果未指定,则默认启用。当处理写入繁重的工作负载时,默认值很棒,但是对于读取繁重的混合工作负载可能会成为问题。在进行优化之前,让我们退后一步来了解Cassandra中的压缩基础。建...

2020-06-17 17:57:22 591

转载 滴滴敏捷数据中台实践

场景描述:滴滴每天处理交通大数据超过4800TB,日均车辆定位数据超过150亿,每日处理路径规划请求400亿次,数据覆盖了交通路况、用户叫车信息、司机驾驶行为、车辆数据等多个维度。滴滴目前对15分钟后供需预测的准确度已经达到了85% 。关键词:滴滴 数据中台滴滴每天处理交通大数据超过4800TB,日均车辆定位数据超过150亿,每日处理路径规划请求400亿次,数据覆盖了交通路况、用户叫车信息、司机驾驶行为、车辆数据等多个维度。滴滴目前对15分钟后供需预测的准确度已经达到了85% 。...

2020-06-17 17:26:30 338

转载 cassandra压缩——从文档看,本质上也应该是在做块压缩

CompressionCompression maximizes the storage capacity of Cassandra nodes by reducing the volume of data on disk and disk I/O, particularly for read-dominated workloads. Cassandra quickly finds the location of rows in the SSTable index and decompresse...

2020-06-16 18:48:57 212

转载 操作Cassandra(5)-Compression

压缩Cassandra为操作员提供了在每个表上配置压缩的能力。通过用户可配置压缩参数chunk_length_in_kb压缩SSTable来减小磁盘上的数据大小。因为Cassandra SSTables是不可变的,压缩的CPU成本只有在写入SSTable时才是必要的,随后的数据更新将落在不同的SSTables中,因此Cassandra不需要在发布UPDATE命令时解压缩,覆盖和重新压缩数据。在读取时,Cassandra将在磁盘上定位相关的压缩块,解压缩完整的块,然后继续读取剩余的路径(合并来自磁盘...

2020-06-16 17:35:10 452

转载 操作Cassandra(3)-Compaction

压实类型(Types of compaction)压实的概念用于Cassandra中的不同类型的操作,这些操作的常见之处在于它需要一个或多个sstables并输出新的sstables。压实的类型有:轻度压实(Minor compaction)在Cassandra中自动触发。高度压实(Major compaction)用户对节点上的所有sstables执行压实。用户自定义压实(User defined compaction)用户在给定的一组sstables上触发压实。擦洗...

2020-06-16 17:34:09 1521

转载 操作Cassandra(1)-Snitch

Snitch在cassandra中,snitch有两个功能:它指导Cassandra识别网络拓扑以有完成效地路由请求。 它允许Cassandra在您的集群周围传播副本,以避免相关的故障。它通过将机器分组到“数据中心”和“机架”来实现这一点。Cassandra将尽最大努力在同一“机架”(实际上可能不是物理位置)上拥有多个副本。动态snitching(Dynamic snitching)动态snitch监视器读取延迟,以避免从已减速的主机读取。动态snitch使用cassandra...

2020-06-16 17:33:05 266

转载 操作Cassandra(4)-Bloom过滤器

Bloom过滤器在读取路径中,Cassandra将磁盘(SSTables)中的数据与RAM(memtables)中的数据合并。为了避免为每个SSTable数据文件检查所请求的分区,Cassandra采用了一种称为bloom过滤器的数据结构。Bloom过滤器是一种概率数据结构,允许Cassandra确定两种可能状态之一: - 数据肯定不存在于给定文件中,或 - 数据可能存在于给定文件中。虽然bloom过滤器不能保证数据存在于给定的SSTable中,但是通过消耗更多的RAM来使Bloom过滤器...

2020-06-16 15:07:03 424

转载 cassandra调优

1.配置脚本文件cassandra-env.shMAX_HEAP_SIZE#java 堆总大小,cassandra是运行在java环境下的,java heap size是cassandra 运行起来后内存的总大小HEAP_NEWSIZE #heap size 初始化值java gc 配置: JVM_OPTS="$JVM_OPTS -XX:CMSInitiatingOccupancyFraction=70"#当使用内存达到heap size的 70%时就执行java gc操作(垃圾回收...

2020-06-15 18:15:17 431

转载 Cassandra学习与实践(八)——参数调优

参考资料Cassandra官方文档http://cassandra.apache.org/doc/latest/faq/index.htmlLinux优化1. 安装 jemallocjemalloc是一个在内存分配上比linux自带的malloc(ptmalloc)要优秀的分配工具Github地址:https://github.com/jemalloc/jemalloc下载后安装:tar xjf jemalloc-3.6.0.tar.bz2cd jemalloc-...

2020-06-15 18:01:23 750

转载 Cassandra的内存占用分析

最近,由于我们使用的Cassandra经常因为内存不足而挂掉,由于分析了一阵子Cassandra的内存占用的机制,总结如下:默认配置Cassandra的内存占用并非是Java的Heap(-Xmx参数控制)加上常规的Linux进程所需的少量内存即可,而是还需加上Direct Memory。假设我们在Cassandra设置MAX_HEAP_SIZE=4096M,但通过ps看到该Java内存占用达到6-7G。而根据我的理解, 除了Heap内存之外,Java进程还需要其它一些内存占用,包括Linux本地进程.

2020-06-15 15:36:13 817

转载 3.cassandra遇到内存占用过高的问题

目前cssandra的内存分配如下:https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_tune_jvm_c.html#opsTuneJVM__tuning-the-java-heap# some systems like the raspberry pi don't report cores, use at least 1if [ "$system_cpu_cores" -lt "1" ]t...

2020-06-15 15:26:25 881

转载 Cassandra_调整占用内存大小

Cassandra 下面的运行环境基于Java , 可以调整Cassandra 的占用的资源大小主要依据于以下两个参数:MAX_HEAP_SIZEHEAP_NEWSIZE这两个参数位于 cassandra-env.sh文件内Determining the heap sizeYou might be tempted to set the Java heap to consume the majority of the computer's RAM. However, this ...

2020-06-15 15:25:29 693

转载 nodetool 常用命令梳理

Cassandra 自带了多个功能强大集群或数据管理工具,数量掌握有助于诊断和维护Cassandra集群、快速解决各种问题。命令如下:nodetool: 是一个命令行的工具集,它可以监控Cassandra和执行例行的数据库操作。作为内建的工具,nodetool一般用于在节点上直接运行。nodetool工具集支持大多数重要的JMX指标和操作,并且包含了一些为管理员准备的命令。cassandra utility: Cassandra utility 其实是Cassandra提供的一个启动时配置接..

2020-06-15 14:54:25 1100

转载 hive基于json格式创建hive表

由于前段的数据是json格式的,因此想基于json建表。导入json解析包首先需要引入json的hive解析包。我使用的是cdh5.13.3,在这里下载了hive-hcatalog-core的包hive-hcatalog-core下载地址hive里是使用命令添加jar包add jar hdfs:///user/hive/jars/hive-hcatalog-core-1.1.0-cdh5.13.3.jar;添加了之后便可根据json的内容建表了##基于sjon文件建表##单条json.

2020-06-12 14:44:05 1782

Google.Android.SDK开发范例大全.pdf

Google.Android.SDK开发范例大全.pdf

2013-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除