小編給大家分享一下apache flink table api和sql api的外部數據源是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
“apache flink的table api與sql api實現對接外部數據源的方式是table connector直連外部數據源,tabel connector將外部的數據源讀取到flink中進行計算或者把apache flink的結果寫入到外部數據源之中?!?br>apache flink的table api與sql api在之前已經提到了table source與table sink的方式對實現數據源的注冊于結果的寫入等。apache flink已經基本實現了對于的數據源的注冊于寫入的需求,但是仍然不夠靈活,用戶更加希望的可能是通過配置的方式實現對于不同數據源的選擇,并且實現數據的寫入。所以apache flink又提供了table connector。
table connector的實現不僅僅能夠更好的api與sql client,同時table connector類似與實現了create table 的方式對數據進行了注冊,能夠實現再不修改代碼的情況下實現把數據寫入不同的位置。tabel connector方法指定了需要連接table connector對應的descriptor,withformat方式指定了輸出或輸入的文件格式(csv,json,parquet等)。withschema方法指定了注冊在tableenvironment中的表結構。
tableenv.connect(…)
.withformat(…)
.withschema(…)
.inappendmode() //更新模式
.registertablesource(\”mytable\”)
通過以上方式注冊數據源后,我們可以直接把數據讀取或者寫入到該表中。也就是說我們可以實現類似于像操作dbms表的數據一樣操作該表進行數據讀取與寫入。
在當前的很多云場景中,類似于阿里云,華為云等均提供了實時計算的產品,產品使用sql的方式進行注冊,注冊指定云廠商的其他產品與存儲格式等 withschema ,指定讀取的數據結構 withschema 與更新的模式等即可實現數據的讀取或計算結果的寫入。
create table datahub_stream(
name varchar,
age bigint,
birthday bigint
) with (
type=\’產品\’,
endpoint=\’…\’,
project=\’…\’,
topic=\’…\’
…
);
我們在使用時涉及的步驟也大致分為這些,如下代碼。connect方法指定了連接對應的desciriptor,withformat指定輸出或輸入的文件格式,例如json,csv,avro等。withschema用以指定注冊在tableenvironment中的表結構。inappendmode指定了數據的更新模式。最終通過registertablesource方法將本次外部數據源注冊到tableenvironment中,用以進行查詢計算。
talbenv.connect(…)
.withformat(…)
.withschema(…)
.inappendmode()
.registertablesource(\”tablename\”)
以上是“apache flink table api和sql api的外部數據源是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注資訊頻道!