計數視窗
(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 的時間...