最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

詳解 Flink Catalog 在 ChunJun 中的實踐之路

2023-04-07 15:09 作者:袋鼠云  | 我要投稿

我們知道 Flink 有Table(表)、View(視圖)、Function(函數(shù)/算子)、Database(數(shù)據(jù)庫)的概念,相對于這些耳熟能詳?shù)母拍?,F(xiàn)link 里還有一個 Catalog(目錄) 的概念。

本文將為大家?guī)?Flink Catalog 的介紹以及 Flink Catalog 在 ChunJun 中的實踐之路。

Flink Catalog 簡介

Catalog 提供元數(shù)據(jù),如數(shù)據(jù)庫、表、分區(qū)、視圖,以及訪問存儲在數(shù)據(jù)庫或其他外部系統(tǒng)中的數(shù)據(jù)所需的函數(shù)和信息。

Flink Catalog 作用

數(shù)據(jù)處理中最關(guān)鍵的一個方面是管理元數(shù)據(jù):

· 可能是暫時性的元數(shù)據(jù),如臨時表,或針對表環(huán)境注冊的 UDFs;

· 或者是永久性的元數(shù)據(jù),比如 Hive 元存儲中的元數(shù)據(jù)。

Catalog 提供了一個統(tǒng)一的 API 來管理元數(shù)據(jù),并使其可以從表 API 和 SQL 查詢語句中來訪問。

Catalog 使用戶能夠引用他們數(shù)據(jù)系統(tǒng)中的現(xiàn)有元數(shù)據(jù),并自動將它們映射到 Flink 的相應元數(shù)據(jù)。例如,F(xiàn)link 可以將 JDBC 表自動映射到 Flink 表,用戶不必在 Flink 中手動重寫 DDL。Catalog 大大簡化了用戶現(xiàn)有系統(tǒng)開始使用 Flink 所需的步驟,并增強了用戶體驗。

Flink Catalog 的結(jié)構(gòu)

● Flink Catalog 原生結(jié)構(gòu)

? GenericInMemoryCatalog:基于內(nèi)存實現(xiàn)的 Catalog

? Jdbc Catalog:可以將 Flink 通過 JDBC 協(xié)議連接到關(guān)系數(shù)據(jù)庫,目前 Flink 在1.12和1.13中有不同的實現(xiàn),包括 MySql Catalog 和 Postgres Catalog

? Hive Catalog:作為原生 Flink 元數(shù)據(jù)的持久化存儲,以及作為讀寫現(xiàn)有 Hive 元數(shù)據(jù)的接口

● Flink Iceberg Catalog

● Flink Hudi Catalog

HoodieCatalog、HoodieHiveCatalog

Flink Catalog 詳解

GenericInMemoryCatalog

所有的數(shù)據(jù)都保存在 HashMap 里面,無法持久化。

JDBC Catalog

如果創(chuàng)建并使用 Postgres Catalog 或 MySQL Catalog,請配置 JDBC 連接器和相應的驅(qū)動。

JDBC Catalog 支持以下參數(shù):

? name:必填,Catalog 的名稱

? default-database:必填,默認要連接的數(shù)據(jù)庫

? username:必填,Postgres/MySQL 賬戶的用戶名

? password:必填,賬戶的密碼

? base-url: 必填,(不應該包含數(shù)據(jù)庫名)

對于 Postgres Catalog base-url 應為 "jdbc:postgresql://:" 的格式

對于 MySQL Catalog base-url 應為 "jdbc:mysql://:" 的格式

Hive Catalog

Iceberg Catalog

● Hive Catalog 管理 Iceberg 表

● Hadoop Catalog 管理 Iceberg 表

● 自定義 Catalog 管理 Iceberg 表

? connector:iceberg

? catalog-name:用戶指定的目錄名稱,這是必須的,因為連接器沒有任何默認值

? catalog-type:內(nèi)置目錄的 hive 或 hadoop(默認為hive),或者對于使用 catalog-impl 的自定義目錄實現(xiàn),不做設(shè)置

? catalog-impl:自定義目錄實現(xiàn)的全限定類名,如果 catalog-type 沒有被設(shè)置,則必須被設(shè)置,更多細節(jié)請參見自定義目錄

? catalog-database: 后臺目錄中的 iceberg 數(shù)據(jù)庫名稱,默認使用當前的 Flink 數(shù)據(jù)庫名稱

? catalog-table: 后臺目錄中的冰山表名,默認使用 Flink CREATE TABLE 句子中的表名

Hudi Catalog

Flink Catalog 在 ChunJun 中的實踐

下面將為大家介紹本文的重頭戲,F(xiàn)link Catalog 在 ChunJun 中的實踐之路。

直接引入開源 Catalog

ChunJun 目前的所有 Catalog 為以下四種:

● Hive Catalog 需要的依賴

● Iceberg Catalog 需要的依賴

● JDBC Catalog

JDBC 因為 Flink 1.12 和 1.13 API 有變化,因此需要涉及源碼的改動,改動一些 API 后,從源碼引入。

● DT Catalog

結(jié)合內(nèi)部業(yè)務,自定義的一種 Catalog ,下文將會進行詳細介紹。

DT Catalog -存儲元數(shù)據(jù)表設(shè)計

● 創(chuàng)建 mysql 元數(shù)據(jù)表 database_info

● 創(chuàng)建 mysql 元數(shù)據(jù)表 table_info

● 創(chuàng)建 mysql 元數(shù)據(jù)表 properties_info

● properties_info 里面存了什么?

使用 DT Catalog

● 創(chuàng)建 DT Catalog

● 創(chuàng)建 Database

● 創(chuàng)建 Table

1)Rename Table

2)Set or Alter Table Properties

使用 DTCatalog 的具體場景和實現(xiàn)原理

● 全部是 DDL,只有 Catalog 的創(chuàng)建

· 可以執(zhí)行,但是沒有意義,ChunJun 不會存儲 Catalog 信息,只有平臺存儲;

· 不支持語法校驗。

● 全部是 DDL,包含 Catalog、Database、Table 的創(chuàng)建

· 無論創(chuàng)建數(shù)據(jù)庫、表,刪除數(shù)據(jù)庫、表,必須包含 create catalog 語句;

· 可以執(zhí)行,可以創(chuàng)建數(shù)據(jù)庫和表;

· 不支持語法校驗。

● DDL + DML,包含 create + insert 語句

1)初始化 Catalog

2.1)創(chuàng)建數(shù)據(jù)庫

2.2)創(chuàng)建源表

3.1)創(chuàng)建數(shù)據(jù)庫

3.2)創(chuàng)建結(jié)果表

4)執(zhí)行任務

· 不可以執(zhí)行,可以提交;

· 支持語法校驗。

● DML,只有 Insert 語句

?· 如果 Catalog 的 數(shù)據(jù)庫和表都已經(jīng)創(chuàng)建好了,那么直接寫 insert 就可以提交任務;

· 不可以執(zhí)行,可以提交;

· 支持語法校驗。

《數(shù)據(jù)治理行業(yè)實踐白皮書》下載地址:https://fs80.cn/l134d5?

想了解或咨詢更多有關(guān)袋鼠云大數(shù)據(jù)產(chǎn)品、行業(yè)解決方案、客戶案例的朋友,瀏覽袋鼠云官網(wǎng):https://www.dtstack.com/?src=szbzhan

同時,歡迎對大數(shù)據(jù)開源項目有興趣的同學加入「袋鼠云開源框架釘釘技術(shù) qun」,交流最新開源技術(shù)信息,qun 號碼:30537511,項目地址:https://github.com/DTStack


詳解 Flink Catalog 在 ChunJun 中的實踐之路的評論 (共 條)

分享到微博請遵守國家法律
宝丰县| 洪泽县| 伊春市| 新竹市| 万宁市| 垦利县| 竹北市| 新龙县| 汨罗市| 德令哈市| 嘉黎县| 陇川县| 大同县| 钟山县| 湘乡市| 湘潭市| 远安县| 石泉县| 临城县| 通州区| 通山县| 墨玉县| 龙井市| 长阳| 吉木乃县| 屏山县| 谢通门县| 洛南县| 容城县| 湘潭市| 黔西县| 伊金霍洛旗| 沾化县| 泉州市| 上林县| 沛县| 乌兰县| 观塘区| 黄龙县| 商河县| 彭山县|