久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

從零構(gòu)建Flink SQL計算平臺 - 1平臺搭建概述

 新進小設(shè)計 2020-11-22

一、理想與現(xiàn)實

Apache Flink 是一個分布式流批一體化的開源平臺,。Flink 的核心是一個提供數(shù)據(jù)分發(fā),、通信以及自動容錯的流計算引擎。Flink 在流計算之上構(gòu)建批處理,,并且原生的支持迭代計算,,內(nèi)存管理以及程序優(yōu)化。

?

實時計算(Alibaba Cloud Realtime Compute,,Powered by Ververica)是阿里云提供的基于 Apache Flink 構(gòu)建的企業(yè)級大數(shù)據(jù)計算平臺。在 PB 級別的數(shù)據(jù)集上可以支持亞秒級別的處理延時,,賦能用戶標準實時數(shù)據(jù)處理流程和行業(yè)解決方案,;支持 Datastream API 作業(yè)開發(fā),提供了批流統(tǒng)一的 Flink SQL,,簡化 BI 場景下的開發(fā),;可與用戶已使用的大數(shù)據(jù)組件無縫對接,更多增值特性助力企業(yè)實時化轉(zhuǎn)型,。

?

Apache Flink 社區(qū)迎來了激動人心的兩位數(shù)位版本號,,F(xiàn)link 1.10.0 正式宣告發(fā)布!作為 Flink 社區(qū)迄今為止規(guī)模最大的一次版本升級,,F(xiàn)link 1.10 容納了超過 200 位貢獻者對超過 1200 個 issue 的開發(fā)實現(xiàn),,包含對 Flink 作業(yè)的整體性能及穩(wěn)定性的顯著優(yōu)化、對原生 Kubernetes 的初步集成以及對 Python 支持(PyFlink)的重大優(yōu)化,。

Flink 1.10 同時還標志著對 Blink的整合宣告完成,,隨著對 Hive 的生產(chǎn)級別集成及對 TPC-DS 的全面覆蓋,F(xiàn)link 在增強流式 SQL 處理能力的同時也具備了成熟的批處理能力,。

在過去的2019年,,大數(shù)據(jù)領(lǐng)域的Flink異常火爆,,從年初阿里巴巴高調(diào)收購Flink的母公司,,到秋天發(fā)布的1.9以及最近的1.10版本完成整合阿里Blink分支,各類分享文章和一系列國內(nèi)外公司應用案例,,都讓人覺得Flink是未來大數(shù)據(jù)領(lǐng)域統(tǒng)一計算框架的趨勢,。尤其是看過阿里云上的實時計算平臺,支持完善的SQL開發(fā)和批流都能處理的模式讓人印(直)象(流)深(口)刻(水),。但是相對于公有云產(chǎn)品,,稍微有點規(guī)模的公司都更愿意使用開源產(chǎn)品搭建自己的平臺,可是仔細研究Flink的官方文檔和源碼,,準備擼起袖子開干時,,才發(fā)現(xiàn)理想和現(xiàn)實的差距很大……

首先是阿里實時計算平臺產(chǎn)品的SQL開發(fā)界面:

平臺

然而現(xiàn)實中Flink所支持的SQL開發(fā)API是這樣的:

// create a TableEnvironment for specific planner batch or streaming
TableEnvironment tableEnv = ...; // see "Create a TableEnvironment" section

// register a Table
tableEnv.registerTable("table1", ...)            // or
tableEnv.registerTableSource("table2", ...);     // or
tableEnv.registerExternalCatalog("extCat", ...);
// register an output Table
tableEnv.registerTableSink("outputTable", ...);

// create a Table from a Table API query
Table tapiResult = tableEnv.scan("table1").select(...);
// create a Table from a SQL query
Table sqlResult  = tableEnv.sqlQuery("SELECT ... FROM table2 ... ");

// emit a Table API result Table to a TableSink, same for SQL result
tapiResult.insertInto("outputTable");

// execute
tableEnv.execute("jobName");

最后翻遍Flink文檔發(fā)現(xiàn)提供了一個實驗性質(zhì)的命令行SQL客戶端:

flinksqlclient

此外當我們用開源Flink代碼部署一套集群后,,整個集群有 JobManager 和 TaskManager 兩種角色,其中 JobManager 提供了一個簡單的管理界面,,提供了上傳Jar包執(zhí)行任務的功能,,以及一些簡單監(jiān)控界面,此外還提供一系列管理和監(jiān)控的 Rest Api,,可惜都沒有和SQL層面直接相關(guān)的東西,。

之所以有這一系列理想與現(xiàn)實的差異,是因為Flink更多的定位在計算引擎,,在開發(fā)界面等方面暫時投入較少,,但是每寫一個SQL然后嵌入到代碼中編譯成JAR包上傳到Flink集群執(zhí)行是客(小)戶(白)所不能接受的,這也就需要我們自己開發(fā)一套以SQL作業(yè)為中心的管理平臺(對用戶暴露的web系統(tǒng)),,由該平臺管理 Flink 集群,,共同構(gòu)成 Flink SQL 計算平臺。

二,、平臺功能梳理

一個完整的SQL平臺在產(chǎn)品流程上至少(第一版)需要有以下部分。

  • SQL作業(yè)管理:新增,、調(diào)試,、提交、下線SQL任務

  • 數(shù)據(jù)源和維表管理:用DDL創(chuàng)建數(shù)據(jù)源表,,其中維表也是一種特殊數(shù)據(jù)源

  • 數(shù)據(jù)匯管理:用DDL創(chuàng)建數(shù)據(jù)結(jié)果表,,即 insert into 結(jié)果表 select xxx

  • UDF管理:上傳UDF的jar包

  • 調(diào)度和運維:任務定時上下線、任務縮容擴容,、savepoint管理

  • 監(jiān)控:日志查看,、指標采集和記錄、報警管理

  • 其他:角色和權(quán)限管理,、文檔幫助等等……

除了作為Web系統(tǒng)需要的一系列增刪改查和交互展示功能外,,大部分Flink集群管理功能可以通過操作Flink集群提供的Rest接口實現(xiàn),但是其中沒有SQL相關(guān)內(nèi)容,,也就是前面四項功能(提交SQL,、DDL、UDF,,后文統(tǒng)稱提交作業(yè)部分)都需要自己實現(xiàn)和 Flink 的交互代碼,,因此如何更好地提交作業(yè)就成了構(gòu)建該平臺的第一個挑戰(zhàn)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多