偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

[[152228]]

為什么我們需要 U-SQL?

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

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

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

對任何尺度的數(shù)據(jù)進行有效的縮放,你無須再關心擴展拓撲(scale-out topology)、管道代碼或特定分布式基礎設施的限制。

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

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

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

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

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

展示 U-SQL!

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

U-SQL

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

U-SQL

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

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

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

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

3

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

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

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

5

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

 U-SQL

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

為什么選擇U-SQL

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

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

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

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

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

我們旨在將 Azure 數(shù)據(jù)湖建立成最有用的集編寫,調試和優(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è)務邏輯而不是調試分布式環(huán)境。我們的目標就是將大數(shù)據(jù)技術變得更加簡單,被更多數(shù)人使用:大數(shù)據(jù)專家,工程師,數(shù)據(jù)科學家,分析師以及應用開發(fā)人員。

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

2011-09-01 15:12:43

SQL ServerHadoop

2017-11-14 05:04:01

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

2017-07-26 17:45:05

2018-12-07 14:50:35

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

2020-11-02 15:56:04

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

2021-07-20 15:37:37

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

2017-07-21 14:22:17

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

2022-11-17 11:52:35

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

2020-07-22 08:13:22

大數(shù)據(jù)

2021-04-13 14:39:08

谷歌Logica語言

2023-11-29 13:56:00

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

2015-05-05 11:18:18

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

2015-12-07 15:05:39

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

2015-11-09 09:58:31

大數(shù)據(jù)Lambda架構

2018-08-14 11:05:25

2013-01-08 14:29:03

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

2024-06-19 21:12:02

2025-01-07 13:58:08

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

2017-01-19 15:39:47

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

2015-03-30 10:48:17

大數(shù)據(jù)大數(shù)據(jù)處理Hadoop
點贊
收藏

51CTO技術棧公眾號