Flink CEP程式設計入門一

2021-10-13 07:45:58 字數 2259 閱讀 7859

flink中的cep(complex event processing)是處理複雜事件流的庫,可以自動在流式資料處理中對相關事件進行處理和檢索。比如用乙個使用者在1min內連續登入的失敗次數超過2次,則將該使用者的登入的行為判斷為惡意登入的行為。

本篇是cep程式設計入門的第一篇

2.11

<

/scala.binary.version>

1.10

.0<

/flink.version>

<

/properties>

org.apache.flink<

/groupid>

flink-cep_$

<

/artifactid>

$<

/version>

<

/dependency>

org.apache.flink<

/groupid>

flink-cep-scala_$

<

/artifactid>

$<

/version>

<

/dependency>

<

/dependencies>

// 定義輸入資料的樣例類

case

class

loginevent

(userid: long, ip: string, eventtype: string, eventtime: long)

object loginfailwithcep )

//// val pattern: pattern[loginevent, loginevent] = pattern.begin[loginevent]("start")

// .where(new ******condition[loginevent] )

// .next("next")

// .where(new ******condition[loginevent] )

// .times(2)

// .within(time.seconds(2))

//// val patternstream: patternstream[loginevent] = cep.pattern(datastream, pattern)

// val value: datastream[(string, string, string)] = patternstream.process(new patternprocessfunction[loginevent, (string, string, string)]

// }

// })

// 定義乙個匹配模式,next緊鄰發生的事件,判斷在2s內緊鄰發生的事件是否為fail

val loginfailpattern = pattern.begin[loginevent]

("begin").

where

(_.eventtype ==

"fail").

next

("next").

where

(_.eventtype ==

"fail"

)// .times(2) //匹配的次數為2

.within

(time.

seconds(2

))//在keyby之後的流中匹配出pattern stream

val loginpatternstream = cep.

pattern

(datastream, loginfailpattern)

import scala.collection.map

val logfaildatastream = loginpatternstream.

select

((pattern: map[string, iterable[loginevent]])

=>

) logfaildatastream.

print()

env.

execute

("loginfailwithcep")}

}

(1,

192.168

.0.3

,fail)(2

,192.168

.10.12

,fail)

程式設計的入門(一)

在我看來程式設計是一件輕鬆而又快樂的事情。淡然我現在是這麼認為,但是以前學習程式設計的經歷實在是無法讓我輕鬆快樂起來,反倒給我帶來了很大的痛苦,很多時候我都會迷茫,迷茫不知道自己在什麼水平,或者感覺自己懂了些,但是很多東西卻不知道如何下手,這種停頓在乙個地方的感覺實在是不好受,以前聽過網上的前輩說多...

shell程式設計入門(一)

shell程式設計簡介 在linux系統中,雖然有各種各樣的圖形化介面工具,但是shell仍然是乙個非常靈活的工具。shell不僅僅是命令的收集,而且是一門非常棒的程式語言。我們可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性 可維護性和便攜性比效率更重要...

Shell入門程式設計(一)

class creativecommons href rel license class article source link2222 href class markdown views prism github gist id content views shell 有多個版本 bourne s...