国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

FlinkSQL 中 Catalog 的使用場景及案例詳解

大數據
Catalog 在 Flink SQL 中是一個元數據管理組件,用于存儲和管理數據庫、表、視 圖、函數等元數據對象的抽象接口。

Catalog 在 Flink SQL 中是一個元數據管理組件,用于存儲和管理數據庫、表、視 圖、函數等元數據對象的抽象接口。它類似于傳統數據庫系統中的元數據倉庫,為 Flink SQL 提供了元數據管理能力。

Catalog 使 Flink 能夠:

  • 以統一的方式訪問不同的外部系統
  • 減少代碼中的硬編 碼配置
  • 實現表元數據的持久化
  • 支持跨會話的元數據共享。

1. Catalog的作用

(1) 管理元數據對象

Catalog 可以管理以下元數據對象: - 數據庫(Database) - 表(Table) - 視圖(View) - 函數(Function) - 分區(Partition)等

(2) 支持多樣化的元數據存儲

Flink 支持多種Catalog 實現,可以連接各種外部元數據系統: - 內存Catalog(默認) - Hive Catalog - JDBC Catalog - 自定義 Catalog

(3) 提供統一的數據訪問接口

無論底層元數據存儲在哪里,都可以通過統一的接口訪問和操作

(4) 簡化元數據管理

開發者可以通過Catalog 注冊永久表,而不是在代碼中重復定義表結構

2. Flink內置的catalog類型

(1) GenericInMemoryCatalog

默認的內存 Catalog,元數據只在單個 Flink 會話中有效,會話結束數據就會丟失。

// 創建內存Catalog 
Catalog inmemory = new GenericInMemoryCatalog("in_memory_catalog"); 
tableEnv.registerCatalog("in_memory_catalog", inmemory); -- SQL 中創建和使用內存Catalog 
CREATE CATALOG my_memory_catalog WITH ( 
'type' = 'generic_in_memory' 
); 
USE CATALOG my_memory_catalog;

(2) HiveCatalog

使用Hive Metastore 存儲元數據,支持持久化,適合生產環境。

// 創建Hive Catalog 
String name = "my_hive_catalog"; 
String defaultDatabase = "default"; 
String hiveConfDir = "/path/to/hive/conf"; 
String version = "2.3.6"; 
HiveCatalog hive = new HiveCatalog(name, defaultDatabase, hiveConfDir, 
version); 
tableEnv.registerCatalog("my_hive_catalog", hive); -- SQL 中創建和使用Hive Catalog 
CREATE CATALOG my_hive_catalog WITH ( 
'type' = 'hive', 
'default-database' = 'default', 
'hive-conf-dir' = '/path/to/hive/conf', 
'hive-version' = '2.3.6' 
); 
USE CATALOG my_hive_catalog; 
3. JdbcCatalog 
使用關系型數據庫存儲元數據。 
// 創建JDBC Catalog 
String name = "my_jdbc_catalog"; 
String defaultDatabase = "default"; 
String username = "username"; 
String password = "password"; 


String baseUrl = "jdbc:mysql://localhost:3306"; 


JdbcCatalog jdbc = new JdbcCatalog(name, defaultDatabase, username, pas
 sword, baseUrl); 
tableEnv.registerCatalog("my_jdbc_catalog", jdbc); -- SQL中創建和使用JDBC Catalog(Flink 1.15+) 
CREATE CATALOG my_jdbc_catalog WITH ( 
    'type' = 'jdbc', 
    'default-database' = 'default', 
    'username' = 'username', 
    'password' = 'password', 
    'base-url' = 'jdbc:mysql://localhost:3306' 
); 


USE CATALOG my_jdbc_catalog;

(3) 使用Catalog的SQL操作

1. 創建和切換Catalog -- 創建Catalog 
CREATE CATALOG my_catalog WITH ( 
    'type' = 'hive', 
    'hive-conf-dir' = '/path/to/hive/conf' 
); 
 -- 查看所有Catalog 
SHOW CATALOGS; 
 -- 切換當前Catalog 
USE CATALOG my_catalog; 
2. 創建和使用數據庫 -- 創建數據庫 
CREATE DATABASE my_database; 
 -- 查看所有數據庫 
SHOW DATABASES; 
 -- 切換當前數據庫 
USE my_database; 
3. 管理表和視圖 -- 創建表 
CREATE TABLE my_table ( 
    id INT, 
    name STRING, 
    create_time TIMESTAMP(3) 


) WITH ( 
'connector' = 'kafka', 
'topic' = 'my_topic', 
'properties.bootstrap.servers' = 'localhost:9092', 
'format' = 'json' 
); -- 查看所有表 
SHOW TABLES; -- 查看表結構 
DESCRIBE my_table; 
4. 管理函數 -- 創建自定義函數 
CREATE FUNCTION my_function AS 'com.example.MyFunction'; -- 查看所有函數 
SHOW FUNCTIONS;

(4) Catalog 的實際應用示

// 跨會話持久化元數據 
// 會話1:注冊Hive Catalog和表 
StreamExecutionEnvironment env1 = StreamExecutionEnvironment.getExecuti
 onEnvironment(); 
StreamTableEnvironment tEnv1 = StreamTableEnvironment.create(env1); 
tEnv1.executeSql("CREATE CATALOG hive_catalog WITH ('type' = 'hive')"); 
tEnv1.executeSql("USE CATALOG hive_catalog"); 
tEnv1.executeSql("CREATE DATABASE IF NOT EXISTS db1"); 
tEnv1.executeSql("USE db1"); 
tEnv1.executeSql( 
"CREATE TABLE IF NOT EXISTS orders (" + 
"  order_id STRING, " + 
"  price DECIMAL(10, 2)" + 
") WITH (" + 
"  'connector' = 'kafka', " + 
"  'topic' = 'orders'" + 
")"); 
// 會話2:直接使用之前注冊的表 
StreamExecutionEnvironment env2 = StreamExecutionEnvironment.getExecuti
 onEnvironment(); 
StreamTableEnvironment tEnv2 = StreamTableEnvironment.create(env2); 
tEnv2.executeSql("USE CATALOG hive_catalog"); 
tEnv2.executeSql("USE db1"); 

// 不需要重新定義表結構,可以直接查詢 
tEnv2.executeSql("SELECT * FROM orders"); 
使用不同類型的Catalog實現多源數據集成 
// 注冊多個Catalog訪問不同系統 
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutio
 nEnvironment(); 
StreamTableEnvironment tEnv = StreamTableEnvironment.create(env); 
// 注冊Hive Catalog 
tEnv.executeSql("CREATE CATALOG hive_catalog WITH ('type' = 'hive')"); 
// 注冊JDBC Catalog 
tEnv.executeSql( 
"CREATE CATALOG jdbc_catalog WITH (" + 
"  'type' = 'jdbc', " + 
"  'default-database' = 'default', " + 
"  'username' = 'user', " + 
"  'password' = 'password', " + 
"  'base-url' = 'jdbc:mysql://localhost:3306'" + 
")"); 
// 從不同Catalog中的表關聯查詢 
tEnv.executeSql( 
"SELECT o.order_id, o.price, c.name " + 
"FROM hive_catalog.db1.orders o " + 
"JOIN jdbc_catalog.default.customers c " + 
"ON o.customer_id = c.id" 
); 
責任編輯:趙寧寧 來源: 大數據技能圈
相關推薦

2013-12-25 16:03:39

GitGit 命令

2022-07-29 07:48:15

HTTP常用狀態碼

2025-02-07 14:33:04

2020-02-14 13:50:32

JavaScript前端技術

2023-05-15 08:50:58

ContextGolang

2024-10-10 08:46:28

2024-10-06 12:35:50

2020-09-04 13:30:43

Java自定義代碼

2023-05-16 07:47:18

RabbitMQ消息隊列系統

2013-07-10 15:52:17

fragmentAndroid

2024-04-16 12:13:07

usingC#開發

2024-01-30 09:43:43

Java緩存技術

2024-11-12 06:27:16

Python列表元組

2022-12-08 11:54:55

元宇宙

2018-08-15 09:48:27

數據庫Redis應用場景

2009-08-03 11:38:57

linux at命令詳linux at命令

2025-02-11 09:49:12

2011-05-16 15:49:58

JAVA

2009-05-18 13:07:44

類隱藏Java關鍵字

2024-09-06 11:52:47

點贊
收藏

51CTO技術棧公眾號

一区二区三区在线视频播放 | 男人的天堂在线免费视频| 经典一区二区| 亚洲欧美一区二区三区久久| 中文字幕2019第三页| 免费成人在线网站| 成人国产精品日本在线| 97久久中文字幕| 亚洲第一精品电影| 深夜福利视频在线观看| 国产三级精品三级| 亚洲午夜精品一区二区三区| 欧美aa国产视频| 日本在线精品视频| 成人午夜亚洲| 亚洲精品99久久久久| 成年人在线看| 日本在线视频不卡| 亚洲最大成人在线| 亚洲欧美偷拍三级| 国产另类自拍| 91久久在线视频| 综合激情网...| 欧美精品一区二区精品网| 一区二区三区区四区播放视频在线观看 | 免费毛片aaaaaa| 久久新电视剧免费观看| 欧美亚洲视频一区| 久久综合伊人| 久久国产精品一区二区三区四区| 在线国产一区| 91精品在线观| 国产精品传媒精东影业在线| 九九九久久国产免费| 97在线精品| 91精品国产品国语在线不卡| 男女网站在线观看| 亚洲成人动漫一区| 黄色污网站在线免费观看| 综合av第一页| 国产三级免费观看| 国产精品久久久久久福利一牛影视| 欧美三级乱人伦电影| 成视频年人免费看黄网站| 韩国女主播成人在线| av一区二区三区四区电影| 青青草91久久久久久久久| 国产福利精品av综合导导航| 亚洲性视频大全| 国产精品第一视频| 97偷自拍亚洲综合二区| 91久久久一线二线三线品牌| 夜夜精品视频| 亚洲精品成人自拍| 成人午夜大片免费观看| 男人靠女人免费视频网站| 日本一区二区三区久久久久久久久不| 日韩大片一区二区| 一区二区免费视频| 国产综合在线观看| 制服丝袜中文字幕亚洲| 国产蜜臀一区二区打屁股调教| 亚洲国产精品人久久电影| 亚洲成人看片| 5278欧美一区二区三区| 我不卡神马影院| 日韩高清专区| 91久色porny| 一级一片免费视频| 欧美精品亚洲二区| 亚洲天堂1区| 国产91精品在线播放| 欧美黄污视频| 97久久国产亚洲精品超碰热 | 热99久久精品| 91久久夜色精品国产九色| 亚洲国产精品www| 国产午夜精品久久久久久免费视 | 欧美三级理论片| 亚洲成人一区二区在线观看| 日本精品600av| 欧美肥老妇视频| 亚洲精品高清无码视频| 亚洲1区2区3区视频| 五月天天在线| 久久九九久久九九| 一二三区高清| 国产日韩欧美一区二区三区在线观看 | 九九久久精品一区| 日韩系列欧美系列| 先锋在线资源一区二区三区| 国产香蕉久久精品综合网| 狠狠v欧美ⅴ日韩v亚洲v大胸| 亚洲第一精品自拍| 亚洲国产网址| 亚洲欧美日韩不卡一区二区三区| 国产偷国产偷亚洲高清人白洁| 视频午夜在线| 久久av在线看| 模特精品在线| 成年人黄视频网站| 亚洲人成电影在线| 天天天综合网| 91猫先生在线| 欧美一区二区三区成人| 亚洲va久久| 青青青青在线视频| 欧美主播一区二区三区| a级日韩大片| 亚洲国产欧美不卡在线观看 | 91精品视频一区二区| 亚洲在线免费看| 91啪九色porn原创视频在线观看| 成人动漫在线免费观看| 欧美国产激情18| 另类人妖一区二区av| 青青草娱乐在线| 亚州成人av在线| 国产精品夜夜爽| 久草中文在线观看| 国产盗摄xxxx视频xxx69 | www.久久草| 亚洲国产精品ⅴa在线观看| 男人天堂亚洲| 97神马电影| 亚洲午夜电影网| 欧美一区二区三区久久| 精品久久一二三| 亚洲国产女人aaa毛片在线| 欧美 日韩 国产 一区| 黄色三级高清在线播放| 欧美成人免费全部观看天天性色| 久久99精品一区二区三区三区| 九色视频在线播放| 国产成人精品优优av| 国产精品色哟哟| 欧美亚洲二区| 日韩亚洲欧美一区二区| 精品成a人在线观看| 国产精品视频久久一区| 黄色片在线看| 91久久综合亚洲鲁鲁五月天| 亚洲一级二级在线| 国产成人精品999在线观看| 中文字幕第21页| 日韩视频在线免费| 成人性生交大片免费看视频在线| av福利导福航大全在线| 涩涩涩999| 亚洲国产精品久久久久秋霞蜜臀| 久久久天天操| 欧美日韩色网| 一区二区三区av| 亚洲精品在线观看www| 激情久久五月天| 涩涩视频在线播放| 国产激情在线看| 最新中文字幕亚洲| 97精品视频在线观看自产线路二| 亚洲欧美在线成人| 国产视频九色蝌蚪| 久操成人在线视频| ...av二区三区久久精品| 日本一区福利在线| 亚洲伦理电影| 91丨九色丨国产| 3751色影院一区二区三区| 性高湖久久久久久久久| av网站免费在线观看| 伊人婷婷久久| 亚洲最新av在线网站| 91看片淫黄大片一级在线观看| 欧美三级一区| 黄色三级电影网站| 国产伦精品一区二区三区视频免费 | 国产高清在线一区| 亚洲美女在线国产| 欧美三级三级| 日韩有码电影| 久久草视频在线看| 日韩女优av电影在线观看| 久久狠狠亚洲综合| 国产第一亚洲| 91原色影院| 99re在线观看视频| 欧美变态tickle挠乳网站| 粉嫩蜜臀av国产精品网站| 91成人噜噜噜在线播放| 能在线观看av网站| 国产伦精品一区二区三区在线 | 欧美日韩国产免费一区二区三区| 精品国产凹凸成av人导航| 国产成人精品一区二| 91精品国产自产精品男人的天堂 | 3d成人h动漫网站入口| 久久av资源网| 国产伦精品一区二区三区在线播放 | 日韩人妻精品一区二区三区| 欧美国产视频一区二区| 精品久久久久久久久久国产|