自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大數(shù)據(jù)處理語言U-SQL介紹

大數(shù)據(jù)
微軟宣布了新的 Azure 數(shù)據(jù)湖(Azure Data Lake)服務(wù),該服務(wù)被用于云分析,包括了一個超大規(guī)模信息庫;一個在 YARN 上建立的新的的分析服務(wù),該服務(wù)允許數(shù)據(jù)開發(fā)者和數(shù)據(jù)科學(xué)家分析全部的數(shù)據(jù);還有 HDInsight,一個全面管理 Hadoop、Spark、Storm 和 HBase 的服務(wù)。

微軟宣布了新的 Azure 數(shù)據(jù)湖(Azure Data Lake)服務(wù),該服務(wù)被用于云分析,包括了一個超大規(guī)模信息庫;一個在 YARN 上建立的新的的分析服務(wù),該服務(wù)允許數(shù)據(jù)開發(fā)者和數(shù)據(jù)科學(xué)家分析全部的數(shù)據(jù);還有 HDInsight,一個全面管理 Hadoop、Spark、Storm 和 HBase 的服務(wù)。Azure 數(shù)據(jù)湖分析包括 U-SQL,這個語言綜合了 SQL 的優(yōu)點與你自己所寫代碼的表現(xiàn)能力。U-SQL 的可擴展分布式查詢功能讓你可以有效地分析存儲器或關(guān)聯(lián)存儲器(比如 AzureSQL 數(shù)據(jù)庫(Azure SQL Database))內(nèi)的數(shù)據(jù)。這篇博文中,我將會概述 U-SQL 的開發(fā)目標(biāo)、我們的一些靈感和這個語言背后的設(shè)計理念,同時我會向你展示一些用于說明這個語言幾個主要方面的例子。

[[152228]]

為什么我們需要 U-SQL?

如果你分析了的大數(shù)據(jù)分析的特點,就會很容易的產(chǎn)生一些有關(guān)易用性的需求,一個功能強大的語言應(yīng)該:

可以處理任何類型的數(shù)據(jù)。例如從安全日志中分析僵尸網(wǎng)絡(luò)(BotNet)攻擊模式,通過機器學(xué)習(xí)來提取圖像和視頻中的特征,這種語言需要允許你操作任何類型的數(shù)據(jù)。

使用自定義的代碼很容易地表現(xiàn)復(fù)雜的(經(jīng)常是表現(xiàn)某公司自營業(yè)務(wù)的)算法。舉例來說,基礎(chǔ)的查詢語言通常不易表達(dá)自定義的過程,從用戶定義的函數(shù)到他們自定義的輸入輸出格式都是如此。

對任何尺度的數(shù)據(jù)進(jìn)行有效的縮放,你無須再關(guān)心擴展拓?fù)洌╯cale-out topology)、管道代碼或特定分布式基礎(chǔ)設(shè)施的限制。

現(xiàn)有的大數(shù)據(jù)語言該如何處理這些需求?

基于 SQL 的語言(例如 Hive 等)提供聲明性的方式,原生支持?jǐn)U容,并行執(zhí)行以及優(yōu)化。這個特性使得其簡單易用,被開發(fā)人員廣泛使用;其功能強大,適用于很多標(biāo)準(zhǔn)的分析及倉儲類型。不過他們的擴展模型和對非結(jié)構(gòu)化數(shù)據(jù)及文件的支持經(jīng)常只是些附屬功能,不容易使用。比如,即使您只想快速瀏覽一下文件或者遠(yuǎn)程數(shù)據(jù),您也需要在查詢之前先創(chuàng)建編目對象,將其系統(tǒng)化。這點嚴(yán)重降低了語言的敏捷性。雖然基于 SQL 的語言通常有一些擴展點來定制格式,定義函數(shù)以及聚合,但是他們的構(gòu)建,集成和維護(hù)相當(dāng)復(fù)雜,各種編程語言的支持也差別很大。

用基于編程語言的方式來處理大數(shù)據(jù),這樣方式可以簡單方便地添加定制化代碼。但是,程序員通常需要另外編寫代碼來處理擴容和性能,并且難以管理執(zhí)行拓?fù)浜凸ぷ髁?。比如不同?zhí)行階段的并發(fā)或者架構(gòu)擴容。這樣的代碼不僅難寫,而且不易優(yōu)化性能。有些框架支持聲明式組件,例如集成語言查詢,或者嵌入式 SQL 支持。但是 SQL 可能會被當(dāng)做字符串處理,沒有輔助工具。并且可擴展性集成較差,由于程序性代碼并不考慮副作用,所以較難優(yōu)化,而且不能重用。

綜合考慮基于 SQL 的語言以及程序語言,我們設(shè)計出了 U-SQL,他用 C# 編寫,具備聲明性 SQL 語言原生的可擴展性,又對其進(jìn)一步擴展。集各種范式于一身,集結(jié)構(gòu)化,非結(jié)構(gòu)化,遠(yuǎn)程數(shù)據(jù)處理于一身,集聲明式以及定制化命令編程于一身,集語言擴展能力于一身。

U-SQL 構(gòu)建在微軟的 SCOP 經(jīng)驗以及其他語言例如 T-SQL,ANSI SQL 以及 Hive 的基礎(chǔ)之上。例如,我們對 SQL 和編程語言的集成,執(zhí)行以及對 U-SQL 框架的優(yōu)化都基于 SCOPE,這使得每天可以運行成千上萬個作業(yè)。我們也會對調(diào)整系統(tǒng)元數(shù)據(jù)(數(shù)據(jù)庫,表等等),SQL 語法,T-SQL,ANSI SQL 等 SQL Server 用戶所熟悉的語言語義等支持,是的他們可以協(xié)同通過。 我們使用C#數(shù)據(jù)類型即表達(dá)式支持,這樣您可以在 SELECT 里無縫潛入 C# 謂詞及表達(dá)式,從而植入業(yè)務(wù)邏輯。最后,通過對 Hive 以及其他大數(shù)據(jù)語言數(shù)據(jù)模式,處理需求等研究,將其集成到我們的框架里。
簡言之,基于現(xiàn)有語言和經(jīng)驗的 U-SQL 語言,有利于您簡單地處理復(fù)雜問題。

展示 U-SQL!

我們假設(shè)我已經(jīng)下載了所有我的 Twitter 歷史記錄,包括:我推送的,轉(zhuǎn)發(fā)的,提到的。并且作為一個 CSV 文件上傳到我的 Azure Data Lake Store。

U-SQL

在這里例子里,我知道我想要處理數(shù)據(jù)的結(jié)構(gòu),第一步我只想分組查詢出每個作者的推送數(shù)據(jù)的數(shù)量:

U-SQL

上面的 U-SQL 腳本顯示了三個使用 U-SQL 處理數(shù)據(jù)的主要步驟:

  • 提取。從你的源數(shù)據(jù)中提取數(shù)據(jù)。 簡單的說就是使用 EXTRACT 申明查詢,概述數(shù)據(jù)。申明的數(shù)據(jù)類型基于 C# 的數(shù)據(jù)類型,這里我使用了內(nèi)置的 Extractors 類庫去讀取和schematize(系統(tǒng)化) CSV 文件。
  • 轉(zhuǎn)換。使用 SQL 并且(或者)用戶自定義操作 (你可以轉(zhuǎn)換為其他時間)。在上面的例子中, 使用了一個常見的 SQL 表達(dá)式,做了一個 GROUP BY 聚合操作。
  • 輸出。結(jié)果既可以是文件,也可以輸出到一個 U-SQL 表格保存在內(nèi)存中用作后續(xù)的處理。

注意 U-SQL 的 SQL 關(guān)鍵字和 C# 的語法表達(dá)式的區(qū)別是使用大寫來提供語法區(qū)別,可能兩者是一樣的,但是如果大寫就是 U-SQL 的關(guān)鍵字,他們的文字一樣但是可能有不同的意義。

還要注意每個表達(dá)式分配了一個變量 (@t , @res)。允許 U-SQL 通過一步步的表達(dá)式(增量表達(dá)式流),遞增的轉(zhuǎn)換和編譯數(shù)據(jù),增量表達(dá)式是使用函數(shù)式 lambda 表達(dá)式組成(與 Pig 語言類似)。執(zhí)行框架,并且編譯所有的表達(dá)式為一個的表達(dá)式。這個表達(dá)式可以是全局最優(yōu)化,所以擴展的方式不可能是逐行執(zhí)行表達(dá)式。下面的圖標(biāo)通過向你顯示圖表的方式,顯示在這篇博文中的下一個查詢:

3

回到我們的例子,我現(xiàn)在想要添加額外的信息:關(guān)于推文中提及的人,并且擴展我的聚合去返回在我的 tweet 網(wǎng)中出現(xiàn)的頻率,還有他們的推文中提及我的頻率。因為我可以使用 C# 去操作數(shù)據(jù),所以我可以使用 C#LINQ 表達(dá)式擴展一個 ARRAY。這時我把得到的數(shù)組使用 EXPLODE 傳入數(shù)據(jù)集,并且使用 CROSS APPLY 操作應(yīng)用 EXPLODE 到每條數(shù)據(jù)。我使用 UNION 操作聯(lián)合作者,但是需要使用@重新給變量賦值。

這里使用另外一個C#表達(dá)式(這里我使用了substring從第一位開始取數(shù)據(jù)-翻譯認(rèn)為應(yīng)該是排除@符的意思) .

4
下一步,我可以使用 Visual Studio 的 Azure 數(shù)據(jù)湖工具里的代碼轉(zhuǎn)換功能將 C# 代碼重構(gòu)成 C# 函數(shù)。提交腳本后,系統(tǒng)會將代碼自動部署到服務(wù)器上。

5

我們也可以在U-SQL元數(shù)據(jù)目錄里部署和注冊代碼集。這樣,我們或者其他人可以不時重用這組腳本。以下例子表示了,在代碼集注冊為TweetAnalysis之后,如何找到函數(shù)。

 U-SQL

由于之前提到了除了刪除@標(biāo)識符之外,還想要對 mentions 做其他清理工作,所以該代碼集還包含了一個 cleanup_mentions 函數(shù),用來在刪除@之后做其他處理。

為什么選擇U-SQL

通過上述介紹,希望您已經(jīng)窺測到了我們對 U-SQL 的想法,以及 U-SQL 是如何將查詢以及大數(shù)據(jù)處理變得簡單的。接下來的幾周里,我們會進(jìn)一步介紹該語言的設(shè)計邏輯,并會給出一些示例代碼即應(yīng)用場景,請參見Azure 博客大數(shù)據(jù)專題。我們會深入探討一下特性:

  • 通過模式匹配操作文件集合
  • 使用(分區(qū))表
  • 對 SQL Azure 數(shù)據(jù)庫進(jìn)行聯(lián)邦查詢
  • 將 U-SQL 代碼封裝為視圖,表型數(shù)據(jù)函數(shù),過程
  • SQL 窗體函數(shù)
  • 使用C#編寫用戶定義操作(定制抽取,處理過程)
  • 復(fù)合類型(MAP,ARRAY)
  • 使用 U-SQL 樹立數(shù)據(jù)管道
  • U-SQL 對物聯(lián)網(wǎng)分析中l(wèi)ambda架構(gòu)的支持

U-SQL 將大數(shù)據(jù)處理變得簡單:

  • 統(tǒng)一了聲明行查詢語言與復(fù)雜代碼
  • 統(tǒng)一了結(jié)構(gòu)化查詢與非結(jié)構(gòu)化數(shù)據(jù)
  • 統(tǒng)一了本地和遠(yuǎn)程查詢
  • 一旦上線,即可提高生產(chǎn)力和敏捷性

不只是 U-SQL – Auzre 數(shù)據(jù)湖為您的所有數(shù)據(jù)創(chuàng)建生產(chǎn)力

我們旨在將 Azure 數(shù)據(jù)湖建立成最有用的集編寫,調(diào)試和優(yōu)化各種規(guī)模數(shù)據(jù)功能的強大工具,U-SQL只是其中一個環(huán)節(jié)。通過對編寫與監(jiān)控 Hive 作業(yè)的全面支持, 我們開發(fā)了基于 C# 的編碼模型,他可以創(chuàng)建用于流處理的 Storm 作業(yè),而且從創(chuàng)建,到執(zhí)行,支持作業(yè)生命周期的每一階段。Azure 數(shù)據(jù)湖使得您可以專心于業(yè)務(wù)邏輯而不是調(diào)試分布式環(huán)境。我們的目標(biāo)就是將大數(shù)據(jù)技術(shù)變得更加簡單,被更多數(shù)人使用:大數(shù)據(jù)專家,工程師,數(shù)據(jù)科學(xué)家,分析師以及應(yīng)用開發(fā)人員。

責(zé)任編輯:李英杰 來源: 36大數(shù)據(jù)
相關(guān)推薦

2011-09-01 15:12:43

SQL ServerHadoop

2017-07-26 17:45:05

2017-11-14 05:04:01

大數(shù)據(jù)編程語言數(shù)據(jù)分析

2018-12-07 14:50:35

大數(shù)據(jù)數(shù)據(jù)采集數(shù)據(jù)庫

2020-11-02 15:56:04

大數(shù)據(jù)數(shù)據(jù)庫技術(shù)

2021-07-20 15:37:37

數(shù)據(jù)開發(fā)大數(shù)據(jù)Spark

2017-07-21 14:22:17

大數(shù)據(jù)大數(shù)據(jù)平臺數(shù)據(jù)處理

2020-07-22 08:13:22

大數(shù)據(jù)

2022-11-17 11:52:35

pandasPySpark大數(shù)據(jù)

2021-04-13 14:39:08

谷歌Logica語言

2023-11-29 13:56:00

數(shù)據(jù)技巧

2018-08-14 11:05:25

2015-11-09 09:58:31

大數(shù)據(jù)Lambda架構(gòu)

2024-06-19 21:12:02

2015-05-05 11:18:18

大數(shù)據(jù)Hadoop技術(shù)處理

2015-12-07 15:05:39

UCloudUHadoop大數(shù)據(jù)

2013-01-08 14:29:03

阿里云開放數(shù)據(jù)處理ODPS

2025-01-07 13:58:08

SQL數(shù)據(jù)處理函數(shù)數(shù)據(jù)庫

2017-01-19 15:39:47

華為大數(shù)據(jù)

2025-02-05 08:13:48

Go語言范式
點贊
收藏

51CTO技術(shù)棧公眾號