tonglin0325的个人主页

Hive学习笔记——函数

1.cast函数

数据类型转换函数

比如date的值为

参考:Hive中CAST()函数用法

2.explode函数

explode() 函数接收一个 array 或 map 作为输入,然后将 array 或 map 里面的元素按照每行的形式输出。其可以配合 LATERAL VIEW 一起使用

参考:Hive应用:explode和lateral view

3.lateral view

lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。

4.json_tuple

全文 >>

Flink学习笔记——窗口

Flink窗口(window)可以用于keyed streams和non-keyed streams

参考官方文档:https://nightlies.apache.org/flink/flink-docs-master/zh/docs/dev/datastream/operators/windows/

1.一些概念

1.时间语义

flink支持3种时间语义,分别是Event time,Processing time和Ingestion time。

参考:https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/learn-flink/streaming_analytics/

1.Event time

Event time的时间戳是每个单独事件在其产生设备上发生的时间。Event time通常在record进入Flink之前就嵌入到record中,这样就可以从每条record中提取事件时间戳。在Event time中,时间的进程取决于数据,而不是任何时钟。Event time程序必须指定如何生成Event time watermarks,这是一种以事件时间表示进度的机制。

在理想情况下,Event time处理将产生完全一致和确定的结果,而不管事件何时到达或它们的顺序如何。然而,除非事件是按顺序到达的(按时间戳),否则事件时间处理在等待乱序事件时会产生一些延迟。因为只能等待一段有限的时间,这就限制了Event time应用程序的确定性。

2.Processing time

全文 >>

Spring MVC学习笔记——Welcome

1.SpringMVC概念

2.整个springmvc运行的流程

  请求–><1>Dispatcher servlet(controller控制器)–><2>HandlerMapping(这个在配置文件中写,可以通过这个找到url该给哪个具体的controller来处理)

                       –><3>controller(具体的控制器)–><4>Model and logical viewname(具体的控制器再将值传给dispatcher servlet)

                       –><5>view resolver(通过这来找到对应的视图)

                       –><6>view

 

3.创建SpringMVC项目

全文 >>

Java多线程——延迟队列DelayQueue

DelayQueue是一个基于优先队列(PriorityQueue)实现的阻塞队列(BlockingQueue),队列中的消息的优先级是根据消息的TTL来决定的。

参考:Java延迟队列DelayQueue

使用延迟队列实现定时任务调度器

参考:https://soulmachine.gitbooks.io/system-design/content/cn/task-scheduler.html