Flink核心概念之window

2021-10-03 19:35:07 字數 2662 閱讀 7082

計數視窗

(1)windowall就是把所有資料弄到乙個slot處理,並行度始終為1

(2)keyby會把資料分到不同的slot,keyby.*window可以設定並行度

package com.fouth_sink

import org.apache.flink.streaming.api.functions.source.

import scala.util.random

/** * 自定義sourcefunction

*/class customsourcefunction extends richsourcefunction[(string, int)]

} override def cancel(): unit =

}

根據固定時間或固定大小進行切分,視窗和視窗之間的元素互補重疊

特點:比較簡單,適用於按照固定大小和週期統計某一指標的這種型別的視窗計算

缺點:可能導致某些有前後關係的資料計算結果不正確

timewindow(time.seconds(10))

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

import org.apache.flink.streaming.api.windowing.time.time

/** * 滾動視窗計算

*/object tumblingwindow1

}

window(tumblingprocessingtimewindows.of(time.seconds(10)))

window(tumblingeventtimetimewindows.of(time.seconds(10)))

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

import org.apache.flink.streaming.api.windowing.assigners.tumblingprocessingtimewindows

import org.apache.flink.streaming.api.windowing.time.time

/** * 滾動視窗計算

*/object tumblingwindow2

}

timewindow(time.seconds(10), time.seconds(5))

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

import org.apache.flink.streaming.api.windowing.time.time

/** * 滑動時間視窗

*/object slidingwindow1

}

window(slidingprocessingtimewindows.of(time.seconds(10), time.seconds(5)))

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

import org.apache.flink.streaming.api.windowing.assigners.slidingprocessingtimewindows

import org.apache.flink.streaming.api.windowing.time.time

object slidingwindow2

}

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

/** * 滾動計數視窗

* 分組之後,只要數量達到設定大小,開始計算

*/object tumblingcountwindow

}

package com.windowprogram

import com.fouth_sink.customsourcefunction

import org.apache.flink.streaming.api.scala._

/** * 滑動計數視窗

*/object slidingwindow

}

Flink核心概念

根據資料來源的型別,即有界 bounded 或無界 unbounded 資料來源,您可以編寫乙個批處理程式或流處理程式,其中dataset api用於批處理,datastream api用於流處理。flink程式看起來像轉換資料集合的常規程式。每個程式都由相同的基本部分組成 streamexecut...

Flink核心概念

一 flink的定義 flnk是乙個分布式處理引擎,用於在無邊界和有邊界資料流上進行有狀態的計算。flink能在常見集群環境中執行,並能以記憶體速度和任意規模進行計算。二 有界流和無界流 flink的核心是流處理,當然也支援批處理。flink的本質是流處理,它將批處理看作是流處理的特殊情況,即有界流...

FLINK流式概念

flink流式概念整理 動態表 1 將流轉換為動態表。2 在動態表上計算乙個連續查詢,生成乙個新的動態表。3 生成的動態表被轉換回流。時間屬性 時間屬性可以像普通的時間戳的列一樣被使用和計算。一旦時間屬性被用在了計算中,它就會被物化,進而變成乙個普通的時間戳。普通的時間戳是無法跟 flink 的時間...