- 博客(323)
- 资源 (10)
- 收藏
- 关注
原创 各SQL引擎的SQL转换过程对比
SQL引擎有许多,例如HiveSQL、PrestoSQL、SparkSQL、FlinkSQL、ClickhouseSQL,这些引擎将从SQL语句转换为执行计划的过程,各自有什么特点、共同点、区别,本文将进行详述。
2023-05-03 13:16:03
1144
原创 ReplacingMergeTree:clickhouse更新表
ReplacingMergeTree:实现Clickhouse数据更新ReplacingMergeTree clickhouse官网
2022-02-25 10:50:39
721
原创 ClickHouse建表、引擎等
1 ClickHouse 表引擎之 MergeTree(合并树)参考文档:ClickHouse 表引擎之 MergeTree(合并树)
2021-07-19 16:06:50
319
原创 Flink IDEA项目创建
1 创建maven项目创建完成后,项目结构如下图所示:2 添加最低限度的API依赖开发Flink程序需要最低限度的API依赖,最低的依赖库包括flink-scala,flink-Streaming-scala。大多数应用需要依赖其他类库或连接器,例如kafka连接器,TableAPI,CEP库等,这些不是Flink核心依赖库的一部分,因此必须作为依赖项手动添加到应用程序中。打开Flink官网中的,复制最低依赖项:https://ci.apache.org/projects/flink/fl
2021-07-08 09:58:04
1232
原创 MapReducer底层全过程解析
1 Mapper阶段输入2 Mapper阶段计算3 Mapper阶段输出参考文献:[1] Mapper阶段的输出之MapOutputBuffer、环形缓冲区工作原理
2021-07-02 11:03:42
283
原创 HQL调优实操1 —— reduce卡住
1 问题任务执行缓慢。卡顿日志如下:2021-07-01 10:19:04 log INFO - Starting Job = job_1625097332819_16902, Tracking URL = http://c2-xxx-hadoopxxx.bj:8088/proxy/application_xxxxxxxx_16902/2021-07-01 10:19:04 log INFO - Kill Command = /opt/cloudera/parcels/CDH/lib/hadoop/b
2021-07-01 18:21:04
382
原创 MySQL基础使用
1 定时事件event1.1 创建事件参考网站:MySQL创建事件CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT 'comment'] DO event_body;在 ON SCHEDULE 子句中,参数 schedule 的值为
2021-07-01 17:11:42
141
原创 Flink系列——1 Idea的Flink开发环境搭建与Flink Wordcount 测试
1 下载Java1 Flink 下载Flink官网下载地址随便选个下载,本文以Flink 1.13.1为例,注意链接名称“for scala 2.12”,后面在idea下载scala时必须下载scala 2.12版。下载完成解压,一会使用。2 IDEA 下载3 scala打开idea,创建项目。File——>ProjectStrure——>Libraries点击“+”,选择Scala SDK,点击download,下载与Flink一致的scala版本。完成。...
2021-06-27 19:17:23
3697
4
转载 如何实现一个短链接服务
本文转载自如何实现一个短链接服务——rickiyang—博客园,仅作为好文收藏,请读者移步原址阅读,格式更佳喔!如何实现一个短链接服务短链接,通俗来说,就是将长的URL网址,通过程序计算等方式,转换为简短的网址字符串。大家经常会收到一些莫名的营销短信,里面有一个非常短的链接让你跳转。新浪微博因为限制字数,所以也会经常见到这种看着不像网址的网址。短链的兴起应该就是微博限制字数激起了大家的创造力。如果创建一个短链系统,我们应该做什么呢?将长链接变为短链;用户访问短链接,会跳转到正确的长链接上去。查
2021-03-11 14:42:37
595
原创 数仓理论 —— 用户画像
1 用户画像简介用户画像,即用户信息标签化。通过用户各个维度的信息,描述用户。用户画像建模,即给用户“打标签”。标签类型,可分为三类:统计类:用户的基本属性。如性别等维度,活跃天数等。规则类:在统计类标签的基础上,加规则,进一步限制。如“近30天交易次数>=2”的用户才算“消费活跃”。机器学习挖掘类:没有准确的数值,通过算法预测而来的信息。例如通过用户的行为习惯判断用户的性别。2 用户画像实例2.1 画像表结构设计表结构设计的重点:存储哪些信息、如何存储(数据分区)、如何应用(如
2021-01-22 15:17:09
660
原创 数仓理论 —— 缓慢变化维
1 什么是维度参考网址:深入解析数据仓库中的缓慢变化维在数据仓库的DW层中,表根据用途往往会分为2个类型:FACT(事实表)和 DIM(维度表)。举个例子,如果我们要描述一个餐饮过程: 小明 2020年4月19日下午3点20分 在 海底捞(万达广场) 吃了5道菜,每道菜的单价是4元,总价是20元。那么这个过程在数仓中,会如此划分:fact:餐饮过程,单价、数量、总价dim:小明,餐饮时间,餐饮门店,菜名。也就是说:吃了多少东西,多少钱——这些属于fact;在哪里吃、什么时候吃?这些
2021-01-07 20:36:59
584
1
原创 数仓理论 —— 数据分层
1 为什么分层1.1 数据仓库分层ODS(Operation Data Detail):原始数据层,直接加载原始日志、数据,不做任何处理。(备份作用)DWD(Data Warehouse detail):明细数据层,结构和粒度与原始数据层保持一致,对ODS层数据进行清洗(一条,去除空值,脏数据,超过极限范围的数)DWS(Data Warehouse Service):服务数据层,以DWD为基础,按天进行轻度汇总。(一天,eg:用户一天下单多少次)DWT(Data Warehouse Topic):
2020-12-28 13:45:14
454
原创 工作中的坑
Hive:REGEXP_REPLACE后出现大括号{}时,应如下写。即查找子串中须用双斜杠转义,替换串中不用转义: select REGEXP_REPLACE(st1,'\\},\\{','}!{') st2
2020-12-23 19:09:13
207
原创 Hive 3 物化视图学习总结
1 物化视图的更新:增量更新、全量更新、定期重建。参考网站:ALTER MATERIALIZED VIEW REBUILD:包含刷新参考网站:Materialized view commands:包含创建、刷新、删除
2020-10-20 11:41:48
3650
原创 Hive去重:distinct与group by
Hive对数据去重有两种方法:(1) distinct (2) group by本文介绍distinct、group by在去重时底层的执行逻辑、数据处理原理,并介绍在不同场景下,应采用哪种方法去重。
2020-06-02 17:07:30
2782
3
原创 Flink基础概念
# 1 Event Time / Processing Time / Ingestion Time事件时间、处理时间、摄入时间
2020-05-29 17:42:36
255
原创 Hive常用命令之MSCK REPAIR TABLE命令概述
对于MSCK REPAIR TABLE命令,小编在工作中初见时,只有简单的理解——“刷新分区”。细究其原理便不得而知了。现在来将学习的内容记录一下。首先,Hive能检测到的分区信息,存储在哪里?怎么新建分区才会存储在这个可(被Hive)检测位置上?怎么新建分区不会存储在这个可(被Hive)检测的位置上?MASK REAPRE TABLE有什么作用?Hive能检测到的分区信息,存储在哪里?分区同database、table等一样,是Hive的元数据信息之一,存储在Derby、MySQL等数据库中。
2020-05-24 10:21:15
6751
1
原创 HQL底层原理及优化:1 干预SQL的运行方式 之1.2通过Hint对计算引擎执行过程进行干预
Hint,意为提示。1 Hint简介本小节参考自文章Oracle hint详解中的一部分,感谢原作者的分享。1.1 为什么引入Hint?Hint是Oracle数据库中很有特色的一个功能,是很多DBA优化中经常采用的一个手段。那为什么Oracle会考虑引入优化器呢?基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行...
2020-04-20 12:52:20
558
转载 HQL底层原理及优化:(一)使用group by代替distinct,以防数据倾斜。
本文转载自hive性能优化使用group by替代distinct原理-weixin_42412645,感谢作者的知识分享,文章已讲解得非常清晰,笔者不再赘述。日常业务统计中经常使用除重(distinct)操作,但是当出现某一组数据特别多时就会出现数据倾斜。于是在SQL编写的时候就使用group by来代替distinct,从而让执行效率提升。下面说一下个人的理解。原始数据page_test表...
2020-04-20 11:05:23
1955
原创 Sqoop学习手册
1 sqoop 导入导出原理1.1 数据导入sqoop会通过jdbc来获取需要的数据库的元数据信息,例如:导入的表的列名,数据类型。这些数据库的数据类型会被映射成为java的数据类型,根据这些信息,sqoop会生成一个与表名相同的类用来完成序列化工作,保存表中的每一行记录。sqoop开启MapReduce作业启动的作业在input的过程中,会通过jdbc读取数据表中的内容,这时,会使用...
2020-04-16 11:29:30
349
原创 HQL不常用语法
1 删除Hive表中一个或多个分区alter table drop partition(ymd=20200415)alter table drop partition(ymd>=20200415)alter table drop partition(ymd>=20200401,ymd<=20200415) -- 分区区间,中间用逗号。...
2020-04-15 15:39:41
295
原创 工作中使用HQL踩得坑
1 distinct语句:select distinct uid,gender …错误理解:distinct只会将紧跟在distinct后的第一个字段去重。正确理解:distinct会按照后面的所有字段,去重。select distinct uid,gender ...结果uidgender10010女10010女10011男2 inser...
2020-04-10 15:25:40
393
原创 tableau连接MySQL
公司用的MySQL5.1,较老的版本了。自己的mac版本是10.14.6。下载了驱动器mysql-connector-odbc-5.3.8-macos10.12-x86-64bit.dmg,该版本下载地址:。其他版本下载地址:各版本。下载iODBC 管理器,安装上,并配置好。tableau使用的是2020.1.2。...
2020-04-07 20:14:29
2627
1
原创 高级HQL
网络上有大量好文章来解释的,本文就不再做二次解释了,只列出其网址,可自行参考。explode与posexplodelateral viewntile()分析函数ntile(组数)null first与null lastoracle排序中使用null first与null last前一小节中的《分析函数ntile(组数)》一文中也使用到了null last。collect_list...
2020-03-27 11:19:36
374
原创 HQL 工作bug总结
HQL工作BUG总结1 distinct2 insert overwrite table3 select xx1,xx2 from t group by xx1,xx21 distinctdistinct后面跟多个字段时,会根据所有字段的组合进行去重。而不是只根据紧跟在distinct后面的那一个字段去重。2 insert overwrite tableinsert overwrite...
2020-03-27 10:43:23
272
原创 Hive order by、sort by、partition by、
1 partition by分组函数,常与order by 在over中组合使用。与group by的区别是,partition by返回分组中的所有数据,而group by 往往只返回一条数据。
2020-03-24 11:36:22
1781
原创 lateral view、explode、 posexplode,解决一道面试题
核心:lateral viewexplodeposexplode1 . 朋友推荐岗面试题有如下一个数据表rec_list_info,其中有id字段,array字段(长度不相同),额外信息字段(json格式),现要求查询结果做到如第二个表所示,并且array中元素按序与json中元素对应。注意:要求array按序与json中的内容对应。解决思路参考:[1] LATERAL VIEW...
2020-03-20 10:39:55
3361
原创 《Hive编程指南学习》:HQL基础、HQL优化
HQL基于与优化1 HQL数据定义2 HQL数据操作3 HQL查询1 HQL数据定义//数据库中,表名,正则表达式use jmw;show tables like “jm.*”;//简单查询select distinct genderfrom jmw.jm_ti_accountwhere ymd>“20191230”limit 10//创建表create table i...
2020-03-18 14:43:25
1156
原创 OLTP与OLAP
OLTP与OLAP学习一、OLTP二、OLAP一、OLTPOLTP(on-line transaction processing)二、OLAPOLAP(on-line analytical processing)
2020-03-16 18:46:30
231
原创 Spark性能优化—基础篇
内容学习自美团技术团队和马中华老师,向前辈致敬。1 Spark开发中性能优化的基本原则避免创建重复的RDDval rdd1 = sc.textFile("hdfs://192.168.0.1:9000/hello.txt")rdd1.map(...)val rdd2 = sc.textFile("hdfs://192.168.0.1:9000/hello.txt")rdd2.r...
2020-02-25 18:09:15
454
原创 SchedulerBackend详解及源码介绍
SchedulerBackend涉及到Netty的知识,笔者尚未理解,先写一部分,后面会持续补充。1 SchedulerBackend是什么?首先看SchedulerBackend在Spark中的使用。如源码1,最初,在SparkContext.scala中存在一个SchedulerBackend的实例,在createScheduler()方法中同时创建了两个实例scheduler和back...
2020-02-23 12:04:00
1086
原创 TaskScheduler详解及源码介绍
1 createTaskScheduler创建TaskScheduler的源代码为SparkContext.createTaskScheduler,如下所示。该方法会根据master的配置匹配部署模式,每种部署模式中都会创建两个类(TaskSchedulerImpl、SchedulerBackend)的实例,只是TaskSchedulerImpl都相同,SchedulerBackend不同。/...
2020-02-22 19:57:06
2802
1
原创 Spark的任务执行流程及对应源码
1 将任务打成jar包2 调用spark-submit脚本提交到集群上运行3 运行sparkSubmit的main方法,在这个方法中通过反射的方式创建我们编写的主类的实例对象,然后调用main方法,开始执行我们的代码。(Spark程序中的driver就运行在sparkSubmit进程中)运行SparkSubmit的main方法//源码来自:SparkSubmit.scala ove...
2020-02-21 14:16:04
583
原创 SparkContext的初始化
SparkContext的初始化步骤如下:1 创建Spark执行环境SparkEnv1.2 什么是SparkEnv?SparkEnv是Spark的执行环境对象,其中包括许多与Executor执行相关的对象,所以SparkEnv存在于需要创建Executor的进程中。那么需要创建Executor的进程有哪些呢?在local模式下,Driver进程中会创建Executor。在local-c...
2020-02-19 11:43:55
1490
原创 Spark的产生
Spark与MapReduce 的对比减少磁盘IOMapReduce:基于磁盘。mapper的结果会存储到磁盘,reducer从磁盘读取数据,结果再存储到磁盘。Spark:基于内存。中间结果存储到内存中。(实在存不下,才会将一部分存储到磁盘中)增加并行度MapReduce:包含mapTask和reduceTask,每个Task便是一个进程。Spark:每个Task是一个线程。所以S...
2019-12-27 22:31:25
325
原创 专利申请问题
1 发送时提出,客户端不是最新版。并且更新时,提示没有安装updateSipo。(1)数据备份。系统设置——>数据备份。(2)导出正在编写的专利,即案卷备份。案卷管理——>输入发明名称,查询——>案卷导出。(3)卸载CPC客户端。(4)下载安装包和离线升级包。到中国电子专利申请网下载“CPC安装包”和最新的“离线升级包”。(5)安装CPC客户端。以管理员身份双击Set ...
2019-12-05 21:15:57
1560
1
转载 Kolakoski序列
Kolakoski 数列仅由 1 和 2 构成,其中头 100 个数是1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1,2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1,...
2019-09-25 17:33:22
500
清华大学电子学教研组编、童诗白、华成英
2018-10-30
Python数据分析基础教程:NumPy学习指南(第2版)
2018-10-30
《推荐系统实践》 程序实现 —— 2.4.1 基于用户的协同过滤算法
2018-10-17
Ansj分词工具包
2018-02-08
jna-platform-4.0.0.jar、4.1.0.jar、4.2.0.jar、4.2.1.jar、4.2.2.jar及JNA使用方法、程序示例
2018-02-07
模拟电子技术试卷十套
2016-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人