精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久久亚洲蜜桃| 亚洲精品孕妇| 日韩欧美亚洲国产另类| av久久久久久| 日本午夜在线视频| 日日骚欧美日韩| 久久精品99久久久久久久久 | 激情网站在线| 久久久蜜臀国产一区二区| 成人av电影天堂| 日韩美女黄色片| 四季av一区二区凹凸精品| 欧美电影免费提供在线观看| www黄色av| 黄色一级大片在线免费看产| 91网站黄www| 91精品在线播放| 一级片在线观看免费| 欧美成人日本| 日韩在线欧美在线国产在线| 亚洲第一黄色网址| 欧州一区二区三区| 欧美在线看片a免费观看| 2018中文字幕第一页| aaa在线观看| 99久久久无码国产精品| 亚洲永久在线观看| 国产三级理论片| 亚洲一区二区免费看| 色综合久久中文字幕综合网小说| 天天操天天舔天天射| 天堂av一区二区三区在线播放| 91精品蜜臀在线一区尤物| 日韩欧美在线免费观看视频| 高清精品在线| 亚洲国产人成综合网站| 麻豆传媒网站在线观看| 免费黄色在线网站| 国产精品天天看| 欧美一区二区综合| 三级黄视频在线观看| 9人人澡人人爽人人精品| 91在线免费观看网站| 亚洲天堂手机在线| 日本少妇一区二区| 国产成人精品久久二区二区91 | 亚洲每日在线| 欧美激情一级精品国产| 久草国产在线视频| 欧美日韩亚洲一区在线观看| 美乳少妇欧美精品| 久久爱一区二区| 色爱综合网欧美| 在线日韩第一页| 色噜噜噜噜噜噜| 成人激情诱惑| 社区色欧美激情 | 国产美女网站视频| 99精品电影| 久久久91精品国产| 精品国产视频在线观看| 亚洲蜜桃视频| 欧美巨大黑人极品精男| 五月婷婷一区二区| 激情欧美国产欧美| 456亚洲影院| 麻豆成人免费视频| 免费观看日韩av| 成人国产在线激情| 国产同性人妖ts口直男| 激情综合色综合久久| 亚洲aⅴ男人的天堂在线观看| www.色呦呦| 99久久精品国产麻豆演员表| 久久久久久99| 阿v免费在线观看| 中文字幕佐山爱一区二区免费| 亚洲黄色网址在线观看| av手机免费在线观看| 富二代精品短视频| www.涩涩涩| 国产亚洲高清一区| 亚洲精品电影网| 青娱乐国产视频| 亚洲一区欧美| 欧亚精品在线观看| 一区二区的视频| 成人毛片视频在线观看| 欧美精品在线一区| 免费大片在线观看www| 亚洲制服丝袜在线| 亚洲精品无码久久久久久| 岛国一区二区| 欧美mv日韩mv国产网站| 色欲av无码一区二区三区| 国产精品成人av| 欧美一级成年大片在线观看| 亚洲综合视频在线播放| 粉嫩久久99精品久久久久久夜| 欧美日韩高清免费| 一二三四区在线观看| 欧美性精品220| 老女人性生活视频| 视频一区中文| 国内久久久精品| 亚洲综合免费视频| wwwwxxxxx欧美| 亚洲精品在线观看免费| 国产99在线| 欧美一区三区二区| 色婷婷在线影院| 激情91久久| 成人精品一区二区三区电影免费| 色资源在线观看| 亚洲黄色av一区| 无需播放器的av| 天堂成人娱乐在线视频免费播放网站 | 深夜福利视频网站| 亚洲男人的天堂一区二区| 免费激情视频在线观看| 国内精品偷拍| 欧美福利视频网站| 91影院在线播放| 国产三级一区二区| 免费观看日韩毛片| 国产精品白浆| 欧美黄色三级网站| 国产福利小视频| 亚洲三级电影网站| 色婷婷狠狠18| 精品国产中文字幕第一页| 91精品国产91| 人妻丰满熟妇av无码区hd| 亚洲人成电影网站色mp4| 中文字幕第38页| 欧美午夜精彩| 国产国语刺激对白av不卡| 婷婷婷国产在线视频| 婷婷久久综合九色综合绿巨人| 女人扒开腿免费视频app| 一个色综合网| 亚洲影院污污.| 51xtv成人影院| 91精品国产丝袜白色高跟鞋| 亚洲天堂一级片| 久久99精品久久只有精品| 偷拍视频一区二区| 欧美日韩在线精品一区二区三区激情综合| 日韩精品高清在线观看| 丰满少妇乱子伦精品看片| 成人午夜碰碰视频| 草草视频在线免费观看| 精品欧美午夜寂寞影院| 国产69精品99久久久久久宅男| 欧洲精品久久一区二区| 午夜av一区二区三区| 国产一级免费片| 西西人体一区二区| 欧美日韩国产精品一卡| 欧美日韩女优| 最近2019中文字幕第三页视频| 一本一道精品欧美中文字幕| 最新中文字幕一区二区三区| 黄色一级片免费播放| 欧美精品首页| 精品久久久久久一区二区里番| 黄频免费在线观看| 亚洲欧洲美洲在线综合| 中文字幕 欧美激情| 亚洲人妖av一区二区| 免费观看一区二区三区| 国产亚洲综合精品| 日韩国产欧美一区| 大胆国模一区二区三区| 久久久免费高清电视剧观看| 日本啊v在线| 欧美军同video69gay| 激情五月少妇a| 久久影院午夜论| 不卡的在线视频| 日韩亚洲国产精品| 日韩性感在线| 视频精品一区二区三区| 欧美亚洲第一页| 天堂中文а√在线| 亚洲国产一区二区三区在线观看| 亚洲图片欧美日韩| 亚洲精品国产a久久久久久 | 伊人久久大香线蕉综合网蜜芽| 国产精品久久久久影院日本| 丝袜在线观看| 国产亚洲在线播放| 亚洲成人一二三区| 在线看国产日韩| 国产乱码久久久久久| 国产嫩草影院久久久久| 午夜性福利视频| 蜜臀a∨国产成人精品| 久久av综合网| 日韩欧美视频| 久久久久欧美| 国产一精品一av一免费爽爽| 日本精品久久久| 日韩电影免费观看| 国产亚洲视频在线| 日本精品久久久久| 3atv在线一区二区三区| 无码人妻av一区二区三区波多野 | 黄色一级片国产| 国产亚洲一区二区三区不卡| 国产精品12| av一级久久| 国产精品久久久久久婷婷天堂| 不卡一本毛片| 久久人体大胆视频| 国产原创av在线| 日韩成人av网址| 国产日韩欧美一区二区东京热| 在线观看日韩av先锋影音电影院| 日韩精品无码一区二区| 亚洲精品免费在线观看| 国产精品无码一区二区三区| 99国产一区二区三精品乱码| 国产老头和老头xxxx×| 久88久久88久久久| 日本美女高潮视频| 久久精品二区三区| 国产色一区二区三区| 欧美福利在线| 国产a级片免费看| 欧美r级电影| 日韩高清av电影| 精品高清久久| 日本一区二区三区四区高清视频| 久久夜色电影| 久久99国产精品99久久| 精品国内亚洲2022精品成人| 国产精品久久国产三级国电话系列| 91麻豆精品一二三区在线| 国产精品一二三在线| 亚洲第一会所001| 国产精品国产三级国产专播精品人 | 午夜一区在线观看| 亚洲成人久久一区| 狠狠躁日日躁夜夜躁av| 精品福利一区二区三区免费视频| 国产成人麻豆精品午夜在线| 日韩一区二区精品在线观看| 99久久国产热无码精品免费| 日韩欧美中文字幕制服| 精品国产av一区二区三区| 精品剧情在线观看| 亚洲国产精品二区| 亚洲国产欧美自拍| 日本aaa在线观看| 亚洲午夜精品久久久久久性色 | 久久免费精品视频| 波多野结依一区| 69国产精品成人在线播放| 日韩av中字| 国产精品免费久久久久久| 韩国精品视频在线观看| 91色在线观看| 在线精品视频一区| 女同一区二区| 日韩精品二区| 成年在线观看视频| 一区二区精品| 视色视频在线观看| 国产福利精品导航| 久久人人爽人人爽人人片| 日本一区二区三区在线观看| 永久免费观看片现看| 一区二区三区欧美久久| 日韩精品在线免费看| 欧美伊人精品成人久久综合97 | 久久精品亚洲无码| 欧美性生交大片免网| 97精品人妻一区二区三区香蕉| 日韩天堂在线观看| 性xxxxbbbb| 日韩少妇与小伙激情| 青春草在线视频| 日韩av电影国产| 99久久这里有精品| 久久亚洲高清| 国产精品久久久久无码av| www..com日韩| 美国一区二区三区在线播放 | 久久久久成人黄色影片| 可以免费看av的网址| 亚洲成人资源在线| 在线播放亚洲精品| 亚洲精品福利免费在线观看| 在线观看免费版| 91精品国产电影| 成人噜噜噜噜| 欧美成人免费在线| 欧美精品国产一区二区| 黄色片在线免费| 成人高清免费观看| 日本免费网站视频| 色综合久久中文综合久久牛| 精品久久在线观看| 一区二区三区久久精品| 日韩伦理在线| 97人人模人人爽人人喊38tv| av永久不卡| 久久视频这里有精品| 激情五月婷婷综合网| 免费a级黄色片| 夜夜嗨av一区二区三区中文字幕| 自拍偷拍18p| 亚洲精品美女网站| 久久青青色综合| 成人欧美一区二区三区黑人| 国产一区不卡| 日本福利视频在线| 国产高清在线观看免费不卡| 五月天免费网站| 色成人在线视频| 青青草免费在线| 97超视频免费观看| aaa国产精品| 影音先锋男人的网站| 久久成人综合网| 婷婷丁香综合网| 欧美在线|欧美| 丁香婷婷在线| 国产91网红主播在线观看| 私拍精品福利视频在线一区| 国产精品一色哟哟| 懂色av中文字幕一区二区三区| avtt天堂在线| 7777精品伊人久久久大香线蕉超级流畅 | 无码无套少妇毛多18pxxxx| 日韩大陆欧美高清视频区| 任你弄在线视频免费观看| 亚洲专区在线视频| 欧美高清日韩| 久久久久久久穴| 亚洲444eee在线观看| 日韩在线一区二区三区四区| 欧美精品久久久久久久免费观看| 麻豆精品久久| av久久久久久| 成人精品一区二区三区中文字幕 | 永久免费av在线| 国产女精品视频网站免费| 日韩精品欧美| 日韩av自拍偷拍| 日韩久久一区二区| 超碰在线观看99| 国模视频一区二区三区| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美日韩黄色一级片| 久久男人中文字幕资源站| 国产主播第一页| 在线视频日本亚洲性| 欧美videos粗暴| 日韩在线视频在线| av电影一区二区| 国产91精品看黄网站在线观看| 亚洲热线99精品视频| 亚洲爱爱视频| 亚洲美女自拍偷拍| 国产成人精品网址| 91看片在线播放| 亚洲天堂成人在线| 综合欧美精品| 欧美亚洲日本一区二区三区 | 免费在线观看av网址| 亚洲国产成人久久综合| 成人开心激情| 大地资源网在线观看免费官网| 成a人片亚洲日本久久| 五月婷婷激情视频| 久久手机免费视频| 菁菁伊人国产精品| 992kp快乐看片永久免费网址| 亚洲欧美另类久久久精品| 天天操天天干天天爱| 国产精品美女www爽爽爽视频| 91精品啪在线观看国产81旧版| 国产污在线观看| 欧美网站一区二区| 激情网站在线| 亚洲精品日韩成人| 波多野结衣一区二区三区| 中文字幕在线观看精品| 久久久人成影片一区二区三区观看| 精品中文一区| 欧美人与性动交α欧美精品| 日韩欧美高清视频| 尤物视频在线看| 欧美一区二区高清在线观看| 国产精品一区二区在线观看不卡 | 国产乱码精品一区二三赶尸艳谈| 日日噜噜噜噜夜夜爽亚洲精品| 成人综合婷婷国产精品久久 |