溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flink原理和基本功能是什么

發布時間:2021-11-23 14:05:46 來源:億速云 閱讀:259 作者:柒染 欄目:大數據

flink原理和基本功能是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

有界與無界

有界數據集

  • 具有時間邊界的數據集,處理過程中數據一定會在某個時間內開始和結束。

無界數據集

  • 數據只有開始沒有邊界。

flink接口結構

FLink SQL

  • SQL API支持批和流的計算。

Flink Table

  • Table API將內存中的DataStream和DataSet數據集在原有的基礎上增加Schema信息,將數據類型統一抽象成表結構,然后通過Table API接口處理對應的數據集。

  • SQL API可以直接查詢Table API注冊表的數據。

  • Tabel API 提供大量接口如GroupByKey、Join等,并支持和DataStream和DataSet的相互轉換。

DataStream

  • 有編程經驗者使用,1.12版本開始DataStream處理流批數據,DataSet接口逐步廢除。

Stateful Stream Processing API

  • Flink最底層接口,靈活性非常強,可實現復雜的流式計算邏輯,使用成本較高,一般企業級用戶使用它進行二次開發或深度封裝。

程序結構 DataStream API

  1. 設定運行環境,支持動態(本地和線上)啟動、本地啟動、遠程線上啟動三種。

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
//指定處理方式批處理、流處理、自適應
env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC);
  1. 指定數據源

DataSet<String> text = env.readTextFile("/path/to/file");
  1. 操作數據集

DataSet<Tuple2<String, Integer>> counts =
        text.flatMap(_.toLowerCase.split(" ")) //實行map轉換
        .filter(_.nonEmpty)  //過濾控制
        .map((_,1)) //執行map轉換,轉換為key-value 
        .keyBy(0)  //按照指定第一個字段key進行分區,
        .sum(1); //分區后按第二個字段求和
  1. 指定結果輸出

counts.writeAsCsv(outputPath, "\n", " ");
  1. 指定名稱并觸發

 env.execute("Streaming Count");

數據類型

  • flink有豐富的數據類型支持,統一由TypeInformation定義。支持與java、scala任意數據類型轉換。

原生數據類型

  • BasicTypeInfo類型支持任意java基礎類型和String類型。

java Tuples

  • TupleTypeInfo描述Tuple類型數據,2019年版本支持字段上線為25個。

scala Case class

  • CaseClassTypeInfo支持任意Scala Case class,包括Scala tuples,2019年支持最大字段數為22個。

POJOs類型

  • PojoTypeInfo描述任意POJO類型,

    • POJO類必須是public修飾的非內部類。

    • POJO類必須含有默認空構造器

    • PoJO類所有字段必須是public,類型必須是flink支持的。

Flink Value類型

  • Value數據類型實現了org.apache.flink.types.Value,其中包含read()和write()兩種序列化和反序列化操作。目前內建類型有IntValue、DoubleValue、StringValue。

特殊數據類型

  • scala中的List、Map、Either、Option、Try,java中Either,hadoop中Writable。

Flink作為新一代計算引擎,在實時計算領域有著及其重要的地位,同時也有這復雜的概念,時間窗口、水位線等,學習并理解成本不低。

看完上述內容,你們掌握flink原理和基本功能是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女