精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一套 SQL 搞定數據倉庫?Flink有了新嘗試

開發 開發工具 大數據 數據倉庫
數據倉庫是公司數據發展到一定規模后必然需要提供的一種基礎服務,也是“數據智能”建設的基礎環節。迅速獲取數據反饋不僅有利于改善產品及用戶體驗,更有利于公司的科學決策,因此獲取數據的實時性尤為重要。

數據倉庫是公司數據發展到一定規模后必然需要提供的一種基礎服務,也是“數據智能”建設的基礎環節。迅速獲取數據反饋不僅有利于改善產品及用戶體驗,更有利于公司的科學決策,因此獲取數據的實時性尤為重要。目前企業的數倉建設大多是離線一套,實時一套。業務要求低延時的使用實時數倉;業務復雜的使用離線數倉。架構十分復雜,需要使用很多系統和計算框架,這就要求企業儲備多方面的人才,導致人才成本較高,且出了問題難以排查,終端用戶也需要熟悉多種語法。本文分析目前的數倉架構,探索離線和實時數倉是否能放在一起考慮,探索Flink的統一架構是否能解決大部分問題。

數倉架構

??

??

 

數據倉庫可以分為三層:ODS(原始數據層)、DW(數據倉庫層)、ADS(應用數據層)。

1. ODS (Operation Data Store) 層

從日志或者業務DB傳輸過來的原始數據,傳統的離線數倉做法也有直接用CDC (Change Data Capture) 工具周期同步到數倉里面。用一套統一的Kafka來承接這個角色,可以讓數據更實時的落入數倉,也可以在這一層統一實時和離線的。

2. DW (Data warehouse) 層

DW層一般也分為DWD層和DWS層:

  • DWD (Data warehouse detail) 層:明細數據層,這一層的數據應該是經過清洗的,干凈的、準確的數據,它包含的信息和ODS層相同,但是它遵循數倉和數據庫的標準Schema定義。
  • DWS (Data warehouse service) 層:匯總數據層,這一層可能經過了輕度的聚合,可能是星型或雪花模型的結構數據,這一層已經做了一些業務層的計算,用戶可以基于這一層,計算出數據服務所需數據。

3. ADS (Application Data Store) 層

和DWS不同的是,這一層直接面向用戶的數據服務,不需要再次計算,已經是最終需要的數據。

主要分為兩條鏈路:

  • 業務DB和日志 -> Kafka -> 實時數倉 (Kafka + Dim維表) -> BI DB -> 數據服務
  • 業務DB和日志 -> Kafka -> 離線數倉 (Hive metastore + HDFS) -> BI DB -> 數據服務

主流的數倉架構仍然是Lambda架構,Lambda架構雖然復雜,但是它能覆蓋業務上需要的場景,對業務來說,是最靈活的方式。

Lambda架構分為兩條鏈路:

  • 傳統離線數據具有穩定、計算復雜、靈活的優點,運行批計算,保證T+1的報表產生和靈活的Ad-hoc查詢。
  • 實時數倉提供低延時的數據服務,傳統的離線數倉往往都是T+1的延時,這導致分析人員沒法做一些實時化的決策,而實時數倉整條鏈路的延遲最低甚至可以做到秒級,這不但加快了分析和決策,而且也給更多的業務帶來了可能,比如實時化的監控報警。Flink的強項是實時計算、流計算,而Kafka是實時數倉存儲的核心。

上圖標出了1-9條邊,每條邊代表數據的轉換,就是大數據的計算,本文后續將分析這些邊,探索Flink在其中可以發揮的作用。

Flink一棧式計算

元數據

先說下元數據的管理,離線數倉有Hive metastore來管理元數據,但是單純的Kafka不具備元數據管理的能力,這里推薦兩種做法:

1. Confluent schema registry

搭建起schema registry服務后,通過confluent的url即可獲取到表的schema信息,對于上百個字段的表,它可以省編寫Flink作業時的很多事,后續Flink也正在把它的schema推斷功能結合Confluent schema registry。但是它仍然省不掉創建表的過程,用戶也需要填寫Confluent對應的URL。

2. Catalog

目前Flink內置已提供了HiveCatalog,Kafka的表可以直接集成到Hive metastore中,用戶在SQL中可以直接使用這些表。但是Kafka的start-offset一些場景需要靈活的配置,為此,Flink也正在提供 LIKE [1] 和 Table Hints [2] 等手段來解決。

Flink中離線數倉和實時數倉都使用Hive Catalog:

use catalog my_hive; 
-- build streaming database and tables;
create database stream_db;
use stream_db;
create table order_table (
id long,
amount double,
user_id long,
status string,
ts timestamp,
… -- 可能還有幾十個字段
ts_day string,
ts_hour string
) with (
‘connector.type’ = ‘kafka’,
… -- Kafka table相關配置
);
-- build batch database and tables;
create database batch_db;
use batch_db;
create table order_table like stream_db.order_table (excluding options)
partitioned by (ts_day, ts_hour)
with (
‘connector.type’ = ‘hive’,
… -- Hive table相關配置
);

使用Catalog,后續的計算可以完全復用批和流,提供相同的體驗。

數倉導入

計算①和⑤分別是實時數倉的導入和離線數倉的導入,近來,更加實時的離線數倉導入越來越成為數據倉庫的常規做法,Flink的導入可以讓離線數倉的數據更實時化。

以前主要通過DataStream + StreamingFileSink的方式進行導入,但是不支持ORC和無法更新HMS。

Flink streaming integrate Hive后,提供Hive的streaming sink [3],用SQL的方式會更方便靈活,使用SQL的內置函數和UDF,而且流和批可以復用,運行兩個流計算作業。

insert into [stream_db.|batch_db.]order_table select … from log_table;

數據處理

計算②和⑥分別是實時數倉和離線數倉的中間數據處理,這里面主要有三種計算:

  • ETL:和數據導入一樣,批流沒有區別。
  • 維表Join:維表補字段是很常見的數倉操作,離線數倉中基本都是直接Join Hive表即可,但是Streaming作業卻有些不同,下文將詳細描述。
  • Aggregation:Streaming作業在這些有狀態的計算中,產生的不是一次確定的值,而可能是不斷變化的值。

維表Join

與離線計算不同,離線計算只用關心某個時間點的維表數據,而Streaming的作業持續運行,所以它關注的不能只是靜態數據,需要是動態的維表。

另外為了Join的效率,streaming作業往往是join一個數據庫表,而不僅僅是Hive表。

例子:

-- stream 維表 
use stream_db;
create table user_info (
user_id long,
age int,
address,
primary key(user_id)
) with (
‘connector.type’ = ‘jdbc’,
...
);

-- 將離線數倉的維表導入實時數倉中
insert into user_info select * from batch_db.user_info;

-- 維表Join,SQL批流復用
insert into order_with_user_age select * from order_table join user_info for system_time as of order_table.proctime on user_info.user_id = user_info.user_id;

這里有個非常麻煩的事情,那就是在實時數倉中,需要按時周期調度更新維表到實時維表數據庫中,那能不能直接Join離線數倉的Hive維表呢?目前社區也正在開發Hive維表,它有哪些挑戰:

Hive維表太大,放不進Cache中:

  • 考慮Shuffle by key,分布式的維表Join,減少單并發Cache的數據量
  • 考慮將維表數據放入State中

維表更新問題:

  • 簡單的方案是TTL過期
  • 復雜一些的方案是實現Hive streaming source,并結合Flink的watermark機制

有狀態計算和數據導出

例子:

select age, avg(amount) from order_with_user_age group by age;

一句簡單的聚合SQL,它在批計算和流計算的執行模式是完全不同的。

Streaming的聚合和離線計算的聚合最大的不同在于它是一個動態表[4],它的輸出是在持續變化的。動態表的概念簡單來說,一個streaming的count,它的輸出是由輸入來驅動的,而不是像batch一樣,獲取全部輸入后才會輸出,所以,它的結果是動態變化的:

  • 如果在SQL內部,Flink內部的retract機制會保證SQL 的結果的與批一樣。
  • 如果是外部的存儲,這給sink帶來了挑戰。

有狀態計算后的輸出:

  • 如果sink是一個可更新的數據庫,比如HBase/Redis/JDBC,那這看起來不是問題,我們只需要不斷的去更新就好了。
  • 但是如果是不可更新的存儲呢,我們沒有辦法去更新原本的數據。為此,Flink提出了Changelog的支持[5],想內置支持這種sink,輸出特定Schema的數據,讓下游消費者也能很好的work起來。

例子:

-- batch:計算完成后,一次性輸出到mysql中,同key只有一個數據-- streaming:mysql里面的數據不斷更新,不斷變化insert into mysql_table select age, avg(amount) from order_with_user_age group by age;-- batch: 同key只有一個數據,append即可insert into hive_table select age, avg(amount) from order_with_user_age group by age;-- streaming: kafka里面的數據不斷append,并且多出一列,來表示這是upsert的消息,后續的Flink消費會自動做出機制來處理upsertinsert into kafka_table select age, avg(amount) from order_with_user_age group by age;

AD-HOC與OLAP

離線數倉可以進行計算⑨,對明細數據或者匯總數據都可以進行ad-hoc的查詢,可以讓數據分析師進行靈活的查詢。

目前實時數倉一個比較大的缺點是不能Ad-hoc查詢,因為它本身沒有保存歷史數據,Kafka可能可以保存3天以上的數據,但是一是存儲成本高、二是查詢效率也不好。

一個思路是提供OLAP數據庫的批流統一Sink組件:

  • Druid sink
  • Doris sink
  • Clickhouse sink
  • HBase/Phoenix sink

總結

本文從目前的Lambda架構出發,分析了Flink一棧式數倉計算方案的能力,本文中一些Flink新功能還在快速迭代演進中,隨著不斷的探索和實踐,希望朝著計算一體化的方向逐漸推進,將來的數倉架構希望能真正統一用戶的離線和實時,提供統一的體驗:

  • 統一元數據
  • 統一SQL開發
  • 統一數據導入與導出
  • 將來考慮統一存儲

參考

[1]https://cwiki.apache.org/confluence/display/FLINK/FLIP-110%3A+Support+LIKE+clause+in+CREATE+TABLE

[2]https://cwiki.apache.org/confluence/display/FLINK/FLIP-113%3A+Supports+Table+Hints

[3]https://cwiki.apache.org/confluence/display/FLINK/FLIP-115%3A+Filesystem+connector+in+Table

[4]https://ci.apache.org/projects/flink/flink-docs-master/dev/table/streaming/dynamic_tables.html

[5]https://cwiki.apache.org/confluence/display/FLINK/FLIP-105%3A+Support+to+Interpret+and+Emit+Changelog+in+Flink+SQL

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-10-20 18:59:40

數據湖數據倉庫采集

2025-11-17 09:36:23

Harbor開源Docker

2009-01-18 16:17:00

2009-01-18 16:01:42

數據倉庫數據建模常用術語

2021-01-21 11:44:20

云計算數據倉庫云數據倉庫

2021-08-31 07:02:34

數據響應Vue偵測數據變化

2022-06-29 18:12:26

Doris數據倉庫

2023-11-23 16:53:56

數據倉庫大數據

2024-02-20 08:56:50

JavaScript模塊打包器

2020-12-08 08:12:14

SQL腳本行轉列

2009-02-25 08:56:26

數據倉庫SQL Server SQL Server

2010-07-20 09:26:17

SQL Server

2009-02-24 12:14:27

微軟SQLServer20數據倉庫

2021-09-01 10:03:44

數據倉庫云數據倉庫數據庫

2021-06-28 09:56:54

微軟AI編程

2022-02-25 09:00:00

數據科學工具架構

2019-10-11 15:58:25

戴爾

2021-05-27 07:12:19

單點登錄系統

2021-08-09 08:09:19

字節教育裁員
點贊
收藏

51CTO技術棧公眾號

日韩在线www| 色综合色综合色综合| 国产欧美丝袜| 亚洲国产精品无码久久久| 欧洲美女日日| 日韩欧美不卡在线观看视频| 国产99久久九九精品无码| 9色在线视频网站| 国产成人鲁色资源国产91色综| 欧美在线观看网站| 懂色av蜜臀av粉嫩av永久| 在线一区二区三区视频| 日本道在线观看一区二区| 日本道在线视频| 日本精品专区| 国产91丝袜在线观看| 国产精品久久久久久久久久久久 | 久久精品免费电影| 在线xxxxx| 亚洲一区二区小说| 狠狠操狠狠色综合网| 蜜臀在线免费观看| 国产露出视频在线观看| 成年人午夜久久久| 91社区国产高清| 在线永久看片免费的视频| 激情综合网址| 久久国产精品偷| www亚洲色图| 天堂在线精品| 亚洲精品电影网站| 性欧美18—19sex性高清| 五月天色综合| 欧美性色黄大片| 国产又黄又大又粗视频| 成全电影大全在线观看| 一区二区在线观看免费视频播放| 午夜老司机精品| 蜜桃视频在线观看网站| 99国产精品久久久久久久久久久| 99久久99久久| 精品国产亚洲AV| 韩国一区二区视频| 国产色综合天天综合网| 伊人久久成人网| 麻豆免费看一区二区三区| 欧美亚洲视频一区二区| 国产无码精品视频| 国自产拍偷拍福利精品免费一| 国产午夜精品全部视频在线播放 | 精品自拍偷拍| 精品国产露脸精彩对白| 欧美一级大片免费看| 日本伊人久久| 精品欧美黑人一区二区三区| 中文字幕 欧美 日韩| 蜜桃精品视频| 欧美成va人片在线观看| 免费看91视频| 精品国产午夜肉伦伦影院| 亚洲精品一线二线三线无人区| 亚洲成人福利视频| www.豆豆成人网.com| 日韩亚洲欧美成人一区| 岛国大片在线免费观看| 伊人www22综合色| 欧美成人三级电影在线| 一级欧美一级日韩片| 日本妇女一区| 亚洲最大在线视频| 国产黄a三级三级| 亚洲国产不卡| 欧美国产日韩xxxxx| 国产精品50页| 日本中文字幕一区二区视频| 国产精品亚洲精品| 精品人妻无码一区二区色欲产成人| 国产999精品久久久久久| 国产一区二区三区色淫影院| 男人天堂网在线观看| 国产精品久久久久久久久晋中| 亚洲免费视频播放| 国产99在线观看| 日本高清不卡视频| 久久久久久久久久毛片| 北条麻妃一区二区三区在线| 亚洲天堂av在线免费| 欧美激情精品久久久久久免费| 欧美午夜不卡影院在线观看完整版免费| 欧美激情精品久久久久久| 青青草av在线播放| 蜜桃一区二区三区在线| 高清国产在线一区| 成人在线观看网站| 一区二区三区国产| 国产三区在线视频| 免费看日产一区二区三区| 日韩精品视频中文在线观看| 中文字幕91视频| 精品电影一区| 成人h猎奇视频网站| 同心难改在线观看| 自拍偷拍亚洲综合| 97xxxxx| 国产不卡精品在线| 亚洲图片在线综合| 久久高清无码视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人欧美一区二区三区黑人免费| 国产在线91| 午夜国产精品影院在线观看| 午夜剧场在线免费观看| 日日狠狠久久偷偷综合色| 久久电影一区二区| 欧美特级黄色片| 成人av先锋影音| 中文字幕日韩精品一区二区| 国模套图日韩精品一区二区| 精品国产电影一区二区| 午夜激情福利电影| 日韩中文字幕1| 好吊色欧美一区二区三区| 91麻豆免费在线视频| 欧美怡红院视频| 国产黄色网址在线观看| 午夜久久黄色| 91精品久久久久久久久久另类| 日韩av资源| 午夜视频久久久久久| 美女日批在线观看| 欧美一区视频| 91在线视频一区| 永久免费av在线| 日本黄色一区二区| 久久精品无码一区| 午夜亚洲性色视频| 久久精品国产一区二区三区不卡| 第一中文字幕在线| 欧美电影精品一区二区| 国产极品国产极品| 国产麻豆精品95视频| 一区二区三区四区视频在线观看| 亚洲日本在线观看视频| 国产亚洲激情视频在线| 亚洲 日本 欧美 中文幕| 91麻豆免费看| 日批视频在线免费看| 欧美一区 二区| 91地址最新发布| 亚洲欧美日韩免费| 欧美日韩在线视频首页| 短视频在线观看| 久久精品在线| 欧洲精品码一区二区三区免费看| 国产日韩电影| 中文字幕成人精品久久不卡| 在线视频 91| 亚洲日本在线天堂| 国产人妻精品久久久久野外| 欧美成人有码| 激情伦成人综合小说| 在线高清av| 中文字幕日韩专区| 国产又粗又长视频| 亚洲精品午夜久久久| www.四虎在线| 乱码第一页成人| 污视频在线免费观看一区二区三区| 免费日韩成人| 欧美福利视频在线| 天天干,天天操,天天射| 色94色欧美sute亚洲线路一久| 在线观看免费黄色网址| 国产乱码字幕精品高清av| 97视频在线免费| 亚洲丁香日韩| 国产欧美 在线欧美| 18视频在线观看| 精品一区电影国产| 一级片在线免费观看视频| 亚洲一区二区三区自拍| 99久久久久久久久久| 免费精品视频在线| 白白操在线视频| 自拍视频一区| 成人午夜一级二级三级| 国产精品yjizz视频网| 国产一区二区动漫| 精品免费久久久| 色香蕉久久蜜桃| 欧美做爰爽爽爽爽爽爽| 99re8在线精品视频免费播放| 在线黄色免费观看| 雨宫琴音一区二区在线| 亚州欧美一区三区三区在线| 一区二区中文字幕在线观看| 国产精品久久久久久久天堂| 麻豆av在线免费观看| 亚洲午夜未删减在线观看| va视频在线观看| 在线视频一区二区免费| avtt天堂在线| 国产色产综合产在线视频| 97免费公开视频| 日韩精品一级二级| 国产69精品久久久久999小说| 色综合狠狠操| 日本成人三级| 成人香蕉社区| 91久久久久久久一区二区| 激情都市亚洲| 性色av香蕉一区二区| 麻豆91在线| 天堂久久一区二区三区| 亚洲老司机av| www久久久com| 欧美日韩国产小视频在线观看| 日韩三级小视频| 亚洲欧美日韩久久| 我不卡一区二区| 97超碰欧美中文字幕| 涩视频在线观看| 国产在线观看一区二区| 亚洲高清在线免费观看| 久久av一区| 日韩a∨精品日韩在线观看| 在线电影一区二区| 亚洲欧洲精品在线| 亚洲国产欧美日韩在线观看第一区| av日韩免费电影| 深夜福利亚洲| 国产精品自在线| 欧美与亚洲与日本直播| 国产97在线|亚洲| 男人久久天堂| 91国产精品视频在线| 国语对白在线刺激| 欧美激情在线有限公司| 性欧美ⅴideo另类hd| 精品中文字幕在线2019| 免费a在线看| 美女视频久久黄| 日本www在线观看| 久久精品在线视频| 日本三级在线视频| 色天天综合狠狠色| 男人天堂久久久| 久久视频在线视频| 成人国产免费电影| 欧美不卡视频一区发布| av免费网站在线| 欧美高清激情视频| 欧洲性视频在线播放| 欧美激情一级二级| а_天堂中文在线| 国产69精品久久久久久| 成人av三级| 国产精品美乳一区二区免费| 91p九色成人| 成人免费网站在线| 欧美一区一区| 国产精品手机视频| 先锋影音国产精品| 日本不卡在线播放| 91蜜臀精品国产自偷在线| 尤物国产精品| 欧美日韩hd| 黄色片网址在线观看| 久久青草久久| 天堂中文av在线| 国产不卡免费视频| 好吊视频在线观看| 国产精品久久午夜| 国产一级视频在线播放| 色综合久久中文字幕| 最新在线中文字幕| 欧美一级理论性理论a| 涩涩视频免费看| 一区二区国产精品视频| a毛片在线看免费观看| 91禁外国网站| 亚洲综合资源| 狠狠干一区二区| 不卡一区综合视频| 九一免费在线观看| 久久九九免费| 99视频在线观看视频| 99国产精品久久久| 97在线观看免费高| 懂色av一区二区三区| 国产一区二区在线不卡| 亚洲国产小视频| 欧美成人高清在线| 午夜精品在线视频| 亚洲精品大片| 免费影院在线观看一区| 欧美电影《轻佻寡妇》| 成人免费观看cn| 久久精品国产精品青草| 美女又爽又黄免费| 亚洲欧美视频在线观看| 麻豆成人免费视频| 日韩欧美亚洲国产精品字幕久久久| 男男激情在线| 欧美黄色成人网| 久久国产三级| 麻豆成人在线播放| 欧美性色综合| 天天综合网久久| www日韩大片| 欧美xxxx黑人xyx性爽| 在线视频亚洲一区| 五月婷婷六月丁香综合| 九九久久久久99精品| 91p九色成人| 欧美一区二区综合| 日韩一区二区久久| 波多野结衣中文字幕在线播放| 久久只精品国产| 国产一国产二国产三| 欧美一级二级在线观看| 69xxxx欧美| 国产成人一区二区三区| 五月综合久久| 欧美中日韩在线| 国产一区美女在线| 在线免费看视频| 在线观看成人小视频| 天天操天天插天天射| 欧美黑人狂野猛交老妇| 国产精品一区二区三区av| 亚洲国产一区在线| 日本网站在线观看一区二区三区| 中出视频在线观看| 亚洲成av人片一区二区| 亚洲av综合色区无码一区爱av| 日韩亚洲国产中文字幕| 亚洲成人va| 日韩黄色影视| 视频一区二区不卡| 欧美黄色一级生活片| 色偷偷88欧美精品久久久| 日韩欧美电影在线观看| 欧美一区在线直播| 欧美日韩爱爱| 激情视频综合网| 国产欧美一区二区三区网站| 欧美视频xxxx| 在线精品高清中文字幕| 97人人做人人爽香蕉精品| 日韩欧美一区二区三区四区五区| 日本视频在线一区| 美国美女黄色片| 欧美日韩一区二区三区四区| 在线观看美女网站大全免费| 国产欧美精品xxxx另类| 999精品色在线播放| 992tv人人草| 亚洲线精品一区二区三区八戒| 丰满肉嫩西川结衣av| 91精品国产免费久久久久久| 亚洲a级精品| 美女喷白浆视频| 亚洲欧美在线视频| www.污视频| 91豆花精品一区| 成人高清电影网站| 欧美日韩理论片| 亚洲妇女屁股眼交7| 青青青草原在线| 国产视频999| 亚洲激情欧美| 精品人妻无码一区| 欧美日韩国产小视频在线观看| 操你啦视频在线| 久久精品一二三区| 日本vs亚洲vs韩国一区三区 | 国产大片精品免费永久看nba| 色琪琪久久se色| www.四虎在线| 欧美午夜精品理论片a级按摩| a级影片在线观看| 精品国产乱码久久久久久郑州公司 | 国产欧美一区视频| 国产日韩一级片| 4p变态网欧美系列| 亚洲成av人片乱码色午夜| 中国极品少妇videossexhd| 欧洲精品一区二区三区在线观看| 高清免费电影在线观看| 久久国产一区| 国产在线不卡一区| 日韩精品一区不卡| 欧美成人第一页| 精品日韩一区| www.四虎在线| 正在播放亚洲一区| 在线高清av| 久草视频国产在线| 综合自拍亚洲综合图不卡区|