中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

PartiQL:一種用于所有數(shù)據(jù)的查詢語(yǔ)言

2020-12-04    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

數(shù)據(jù)正以前所未有的速度被收集和創(chuàng)造,但組織中不到一半的結(jié)構(gòu)化數(shù)據(jù)被積極用于決策。問(wèn)題的根源在于,有些數(shù)據(jù)可能是高度結(jié)構(gòu)化的,并存儲(chǔ)在 SQL 數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中。其他數(shù)據(jù)可能存儲(chǔ)在 NoSQL 引擎中,包括鍵值存儲(chǔ)、圖形數(shù)據(jù)庫(kù)、分類帳數(shù)據(jù)庫(kù)或時(shí)間序列數(shù)據(jù)庫(kù)。

正文

數(shù)據(jù)正以前所未有的速度被收集和創(chuàng)造。這些數(shù)據(jù)大多旨在推動(dòng)業(yè)務(wù)結(jié)果,但根據(jù)《哈佛商業(yè)評(píng)論》報(bào)道:“……平均而言,組織中不到一半的結(jié)構(gòu)化數(shù)據(jù)被積極用于決策……”

問(wèn)題的根源在于,數(shù)據(jù)通常分布在關(guān)系數(shù)據(jù)庫(kù)、非關(guān)系數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)湖的組合中。有些數(shù)據(jù)可能是高度結(jié)構(gòu)化的,并存儲(chǔ)在 SQL 數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)中。其他數(shù)據(jù)可能存儲(chǔ)在 NoSQL 引擎中,包括鍵值存儲(chǔ)、圖形數(shù)據(jù)庫(kù)、分類帳數(shù)據(jù)庫(kù)或時(shí)間序列數(shù)據(jù)庫(kù)。數(shù)據(jù)也可能駐留在數(shù)據(jù)湖中,可能以沒(méi)有模式的格式存儲(chǔ),或者可能涉及嵌套或多值(例如 Parquet 、JSON)。每種不同類型和風(fēng)格的數(shù)據(jù)存儲(chǔ)可能適合特定的用例,但是每種存儲(chǔ)都有自己的查詢語(yǔ)言。其結(jié)果是查詢語(yǔ)言和數(shù)據(jù)存儲(chǔ)格式之間的緊密耦合。因此,如果你想將數(shù)據(jù)更改為另一種格式,或者更改用于訪問(wèn) / 處理該數(shù)據(jù)的數(shù)據(jù)庫(kù)引擎(這在數(shù)據(jù)湖領(lǐng)域并不少見(jiàn)),或者更改數(shù)據(jù)的位置,你可能還需要更改應(yīng)用程序和查詢。這對(duì)于有效使用數(shù)據(jù)湖所需的敏捷性和靈活性是一個(gè)非常大的障礙。

今天,我們很高興地宣布了 PartiQL ,這是一種與 SQL 兼容的查詢語(yǔ)言,使用它可以輕松高效地查詢數(shù)據(jù),無(wú)論數(shù)據(jù)存儲(chǔ)在何處或以何種格式存儲(chǔ)。只要你的查詢引擎支持 PartiQL,你就可以處理關(guān)系型數(shù)據(jù)庫(kù)的結(jié)構(gòu)化數(shù)據(jù)(事務(wù)和分析),開(kāi)放式數(shù)據(jù)格式的半結(jié)構(gòu)化和嵌套數(shù)據(jù)(如 Amazon S3 數(shù)據(jù)湖),甚至無(wú)模式的 NoSQL 或文檔數(shù)據(jù)庫(kù)中允許不同行具有不同屬性的數(shù)據(jù)。我們?cè)?Apache2.0 許可協(xié)議下開(kāi)源了 PartiQL教程、規(guī)范和該語(yǔ)言的參考實(shí)現(xiàn),這樣每個(gè)人都可以參與、貢獻(xiàn)和使用,從而推動(dòng)這種統(tǒng)一查詢語(yǔ)言的廣泛采用。

 

 

PartiQL 開(kāi)源使開(kāi)發(fā)人員可以很容易地在自己的應(yīng)用程序中解析和嵌入 PartiQL。該實(shí)現(xiàn)支持用戶將 PartiQL 查詢解析為抽象語(yǔ)法樹(shù),應(yīng)用程序可以分析或處理這些抽象語(yǔ)法樹(shù),它也支持直接解釋 PartiQL 查詢。

PartiQL 解決了我們?cè)?Amazon 中遇到的問(wèn)題。它已經(jīng)應(yīng)用于 Amazon S3 Select、Amazon Glacier Select、 Amazon Redshift Spectrum、Amazon Quantum Ledger Database( Amazon QLDB )和亞馬遜的內(nèi)部系統(tǒng)。同時(shí), Amazon EMR 將 PartiQL S3 查詢下推到 S3 Select。更多的 AWS 服務(wù)將在未來(lái)幾個(gè)月增加支持。在亞馬遜之外,Couchbase 也期待著在 Couchbase Server 中支持 PartiQL 服務(wù)器。

我們期待數(shù)據(jù)處理引擎的創(chuàng)建者深入 PartiQL,并加入我們一起解決一個(gè)影響到所有用戶數(shù)據(jù)、所有行業(yè)的問(wèn)題。

我們?yōu)槭裁礃?gòu)建它

我們開(kāi)發(fā) PartiQL 是源于 Amazon 自己需要查詢和轉(zhuǎn)換大量多樣化數(shù)據(jù)的需求——不僅僅是 SQL 表格數(shù)據(jù),還有嵌套和半結(jié)構(gòu)化數(shù)據(jù)——這些數(shù)據(jù)以各種格式存儲(chǔ)在各種存儲(chǔ)引擎中。亞馬遜的零售業(yè)務(wù)已經(jīng)有了巨大的半結(jié)構(gòu)化數(shù)據(jù)集,通常以 lon 格式存儲(chǔ)。亞馬遜的零售業(yè)務(wù),由 Chris Suver 負(fù)責(zé),希望有一種類似于 SQL 的查詢語(yǔ)言。多個(gè) AWS 服務(wù),比如 QLDB ,驗(yàn)證了模式可選的面向文檔的數(shù)據(jù)模型所帶來(lái)的好處,但也想利用現(xiàn)有的 SQL 知識(shí)和工具。最后,AWS 關(guān)系型數(shù)據(jù)庫(kù)服務(wù),比如 Redshift ,以及許多現(xiàn)有的 SQL 客戶端,都需要擴(kuò)展為可以訪問(wèn)數(shù)據(jù)湖中的非關(guān)系型數(shù)據(jù),同時(shí)與 SQL 保持嚴(yán)格的向后兼容性。同時(shí),數(shù)據(jù)庫(kù)研究社區(qū)(使用類似 UCSD SQL++ 查詢語(yǔ)言)顯示,可以設(shè)計(jì)出簡(jiǎn)潔、有充分依據(jù)且非常接近 SQL 的查詢語(yǔ)言,同時(shí)還具有處理嵌套和半結(jié)構(gòu)化數(shù)據(jù)所需的能力。

Don Chamberlin是 SQL 語(yǔ)言規(guī)范的創(chuàng)建者,他說(shuō):“隨著 JSON 和其他嵌套和半結(jié)構(gòu)化數(shù)據(jù)格式的重要性日益增加,對(duì)于面向這些數(shù)據(jù)格式的查詢語(yǔ)言的需求變得越來(lái)越清晰。將 SQL 用于這個(gè)目的的好處在于可以利用行業(yè)在 SQL 技能、工具和基礎(chǔ)設(shè)施上的投資。Yannis Papakonstantinou 博士的 SQL++ 提案,以及基于 SQL 的語(yǔ)言 PartiQL,表明查詢半結(jié)構(gòu)式數(shù)據(jù)所需的 SQL 擴(kuò)展相當(dāng)少。我希望這些小的語(yǔ)言擴(kuò)展將有助于促進(jìn)新一代應(yīng)用程序處理 JSON 和其他格式靈活的、有或沒(méi)有預(yù)定義模式的數(shù)據(jù)。”

因此,我們開(kāi)始創(chuàng)建一種語(yǔ)言,提供了嚴(yán)格的 SQL 兼容性,以最小的擴(kuò)展實(shí)現(xiàn)嵌套和半結(jié)構(gòu)化處理,將嵌套數(shù)據(jù)作為一等公民,允許可選模式,并獨(dú)立于物理格式和數(shù)據(jù)存儲(chǔ)。

其結(jié)果是 PartiQL,它提供了一種簡(jiǎn)單一致的方式跨多種格式和服務(wù)查詢數(shù)據(jù)。這讓你可以跨數(shù)據(jù)源移動(dòng)數(shù)據(jù),而無(wú)需修改查詢。它與 SQL 向后兼容,提供多值、嵌套和無(wú)模式數(shù)據(jù)擴(kuò)展,與標(biāo)準(zhǔn) SQL 的聯(lián)合、過(guò)濾和聚合功能無(wú)縫融合。

PartiQL 設(shè)計(jì)原則

以下設(shè)計(jì)原則概括了我們的設(shè)計(jì)目標(biāo),是 PartiQL 的基礎(chǔ):

兼容 SQL:PartiQL 通過(guò)保持與 SQL 兼容來(lái)促進(jìn)應(yīng)用。現(xiàn)有的 SQL 查詢將可以繼續(xù)在(也就是說(shuō),他們將維持它們的語(yǔ)法和語(yǔ)義)經(jīng)過(guò)擴(kuò)展提供 PartiQL 支持的 SQL 查詢處理器中運(yùn)行。這就避免了對(duì)現(xiàn)有 SQL 進(jìn)行任何重寫,使開(kāi)發(fā)人員和業(yè)務(wù)智能工具更容易利用 PartiQL。

嵌套數(shù)據(jù)作為一等公民:數(shù)據(jù)模型將嵌套數(shù)據(jù)視為數(shù)據(jù)抽象的基本部分。因此,PartiQL 查詢語(yǔ)言提供的語(yǔ)法和語(yǔ)義可以全面、準(zhǔn)確地訪問(wèn)和查詢嵌套數(shù)據(jù),并且可以與標(biāo)準(zhǔn)的 SQL 特性自然地組合。

可選模式與查詢穩(wěn)定性:PartiQL 不需要在數(shù)據(jù)集上預(yù)定義模式。按照設(shè)計(jì),它可以用于有模式的數(shù)據(jù)庫(kù)引擎(寫時(shí)模式或讀時(shí)模式),也可以用于無(wú)模式的數(shù)據(jù)庫(kù)引擎。從技術(shù)上講,模式是加到現(xiàn)有的數(shù)據(jù)上,只要數(shù)據(jù)本身是相同的,一個(gè)查詢的結(jié)果就不會(huì)改變。因此,更容易為多個(gè)存儲(chǔ)提供一致的訪問(wèn),而不用管所涉及的引擎的不同模式假設(shè)。

最小擴(kuò)展:最小化 PartiQL 對(duì) SQL 的擴(kuò)展。這些擴(kuò)展容易理解,實(shí)現(xiàn)高效,彼此之間以及與 SQL 本身都可以很好地組合。這可以在結(jié)構(gòu)化、半結(jié)構(gòu)化以及嵌套數(shù)據(jù)集的組合上實(shí)現(xiàn)直觀的過(guò)濾、聯(lián)合、聚合和窗口。

格式獨(dú)立:PartiQL 的語(yǔ)法和語(yǔ)義并不綁定到任何特定的數(shù)據(jù)格式。底層數(shù)據(jù)可以是 JSON、Parquet、ORC、CSV、Ion 等格式,編寫的查詢是相同的。查詢?cè)谟成涞讲煌讓痈袷降木C合邏輯類型系統(tǒng)上運(yùn)轉(zhuǎn)。

數(shù)據(jù)存儲(chǔ)獨(dú)立:PartiQL 的語(yǔ)法和語(yǔ)義并不綁定到特定的底層數(shù)據(jù)存儲(chǔ)。得益于其表達(dá)能力,該語(yǔ)言適用于不同的底層數(shù)據(jù)存儲(chǔ)。

過(guò)去的語(yǔ)言已經(jīng)解決了這些原則的子集。例如,Postgres SQL 兼容 JSON,但是未將嵌套的 JSON 數(shù)據(jù)作為一等公民。半結(jié)構(gòu)化查詢語(yǔ)言將嵌套數(shù)據(jù)作為一等公民,但允許偶爾不兼容 SQL,或者甚至不像 SQL。PartiQL 是解決這一整套原則的第一種語(yǔ)言。

從它的設(shè)計(jì)原則就可以預(yù)料到,對(duì)于 SQL 用戶而言,PartiQL 簡(jiǎn)單而熟悉。自 2018 年以來(lái),它已經(jīng)被 Amazon Redshift Spectrum 的多個(gè)客戶使用:

Annalect 是 Omnicom 的全球數(shù)據(jù)和分析部門,提供專門的、可擴(kuò)展的解決方案,使數(shù)據(jù)可操作,它是 Omnicom 革命性精準(zhǔn)營(yíng)銷和見(jiàn)解平臺(tái)Omni背后的驅(qū)動(dòng)力。“PartiQL 讓我們能夠利用 Amazon Redshift Spectrum 直接在 Amazon S3 中查詢嵌套數(shù)據(jù)而不必展開(kāi)(un-nesting),也將使我們能夠使用標(biāo)準(zhǔn)化語(yǔ)言輕松地把嵌套數(shù)據(jù)從 Amazon S3 轉(zhuǎn)移到 Amazon Redshift 本地表中,”Annalect 高級(jí)工程師和架構(gòu)師 Eric Kamm 說(shuō)。John Briscoe 是 Annalect 的數(shù)據(jù)和業(yè)務(wù)主管,他補(bǔ)充道:“我們也很興奮,它將為我們提供跨數(shù)據(jù)平臺(tái)一致的查詢語(yǔ)法,讓我們更容易開(kāi)發(fā)多數(shù)據(jù)平臺(tái)應(yīng)用程序和進(jìn)行新員工開(kāi)發(fā)培訓(xùn)”。

Yelp 軟件工程師Steven Moy說(shuō):“PartiQL 彌補(bǔ)了多存儲(chǔ)環(huán)境中缺失的關(guān)鍵部分——一種可以跨多個(gè)領(lǐng)域特定的數(shù)據(jù)存儲(chǔ)的高級(jí)聲明式語(yǔ)言。在 Yelp,我們利用多種 AWS 數(shù)據(jù)存儲(chǔ)(Redshift、S3、DynamoDB)技術(shù)將本地最好的企業(yè)提供給用戶,并使本地企業(yè)主能以最好的方式找到本地受眾。借助 Amazon Redshift Spectrum,Yelp 能夠使用八倍的數(shù)據(jù)量來(lái)幫助我們的開(kāi)發(fā)者社區(qū)根據(jù)數(shù)據(jù)做出決定,我們期待借助 PartiQL 使這種伙伴關(guān)系更進(jìn)一步,讓 Yelp 的開(kāi)發(fā)者把時(shí)間集中在創(chuàng)造愉快的用戶體驗(yàn)上,而不是掌握一種新的查詢語(yǔ)言或解決傳統(tǒng)的一致性問(wèn)題。”

與傳統(tǒng)的 SQL 不同,PartiQL 查詢語(yǔ)言也滿足 NoSQL 和非關(guān)系型數(shù)據(jù)庫(kù)的需要。PartiQL 已經(jīng)被 Amazon Quantum Ledger Database (QLDB)采用作為查詢語(yǔ)言。

Andrew Certain是 AWS 高級(jí)首席工程師兼 Amazon Quantum Ledger Database (QLDB)架構(gòu)師,關(guān)于選擇 PartiQL,他說(shuō):“QLDB 需要一種靈活的、面向文檔的數(shù)據(jù)模型,這樣用戶可以很容易地存儲(chǔ)和處理結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),而沒(méi)有定義和改進(jìn)模式的負(fù)擔(dān)。與此同時(shí),QLDB 希望從 SQL 廣博的知識(shí)中獲益。PartiQL 很好地滿足了這兩個(gè)目的。它用于訪問(wèn)嵌套和半結(jié)構(gòu)化數(shù)據(jù)的擴(kuò)展很少,但很強(qiáng)大,也非常直觀。”QLDB 目前尚處于預(yù)覽模式,它是采用 PartiQL 的 AWS 服務(wù)之一。

Couchbase Server 利用基于 JSON 的、面向文檔的數(shù)據(jù)模型,它也希望采用 PartiQL:

Ravi Mayuram是 Couchbase 的高級(jí)工程副總裁兼首席技術(shù)官,他說(shuō):“三年多前推出 N1QL 時(shí),他們是將 SQL 帶給 JSON 的先鋒,Couchbase 認(rèn)為,面向關(guān)系數(shù)據(jù)庫(kù)的 SQL 賴以創(chuàng)建的基礎(chǔ)同樣適用于 JSON 數(shù)據(jù)模型和數(shù)據(jù)庫(kù)。在這種融合中,PartiQL 邁出了令人愉快的下一步,我們期待對(duì)它的支持。”

PartiQL 參考引擎

 

 

這張圖表從一個(gè)非常高的層面上展示了 PartiQL 的參考實(shí)現(xiàn)。我們開(kāi)源了 PartiQL 查詢表達(dá)式的詞法分析程序、解析器和編譯器。我們提供了一個(gè)庫(kù),可以嵌入或作為獨(dú)立的工具用于運(yùn)行查詢。用戶可以使用這個(gè)庫(kù)簡(jiǎn)單地驗(yàn)證 PartiQL 查詢,或者在他們的系統(tǒng)中嵌入 PartiQL 求值器用于處理數(shù)據(jù)。這個(gè)庫(kù)提供了一個(gè)數(shù)據(jù)接口,可以綁定到應(yīng)用程序中可能存在的任何數(shù)據(jù)后端,并對(duì) Ion 和 JSON 提供了開(kāi)箱即用的支持。

準(zhǔn)備開(kāi)始

PartiQL 開(kāi)源實(shí)現(xiàn)提供了一個(gè)交互式 shell(或 Read Evaluate Print Loop ,縮寫為 REPL),允許用戶編寫 PartiQL 查詢并對(duì)其求值。

前提條件

PartiQL 需要你在機(jī)器上安裝 Java 運(yùn)行時(shí)(JVM)。你可以從 OpenJDK 、 OpenJDK for Windows 或 Oracle 獲得 Java 運(yùn)行時(shí)的最新版本。

按照說(shuō)明安裝JDK 軟件并將 JAVA_HOME 設(shè)置為 Java 運(yùn)行時(shí)的安裝路徑。

下載 PartiQL REPL

PartiQL 的每個(gè)版本都有一個(gè)歸檔文件,其中包含 PartiQL REPL 的 zip 壓縮文件。

你可能需要點(diǎn)擊 Assets 來(lái)查看 zip 和 tgz 歸檔文件。把最新版本的 partiql-cli zip 歸檔文件下載到你的機(jī)器上。歸檔文件名稱后面的部分是 PartiQL 的版本,如 partiql-cli-0.1.0.zip。

在你的機(jī)器上解壓歸檔文件,會(huì)產(chǎn)生下面的文件夾結(jié)構(gòu)(… 省略的文件 / 目錄) :

根文件夾 partiql-cli 包含一個(gè) README.md 文件和三個(gè)子文件夾:

bin 包含啟動(dòng)腳本:partiql 用于 macOS 和 Unix 系統(tǒng),partiql.bat 用于 Windows 系統(tǒng)。執(zhí)行這些文件以啟動(dòng) REPL。

lib 包含運(yùn)行 PartiQL 所需的所有 Java 庫(kù)。

Tutorial 包含 pdf 和 html 格式的教程。子文件夾 code 包含三種類型的文件:

擴(kuò)展名為.env 的數(shù)據(jù)文件。這些文件包含我們可以查詢的 PartiQL 數(shù)據(jù)。

擴(kuò)展名為.sql 的 PartiQL 查詢文件。這些文件包含教程中使用的 PartiQL 查詢。

擴(kuò)展名為.output 的樣例查詢輸出文件。這些文件包含在適當(dāng)?shù)臄?shù)據(jù)上運(yùn)行教程中的查詢的樣例輸出。

運(yùn)行 PartiQL REPL

在 Windows 上

運(yùn)行(雙擊)particl.bat 應(yīng)該會(huì)打開(kāi)一個(gè)命令行提示符,并啟動(dòng) PartiQL REPL,界面如下:

在 macOS(Mac)和 Unix 上

打開(kāi)一個(gè)終端,并導(dǎo)航到 partiql-cli 文件夾。該文件夾的名稱以 PartiQL 的版本號(hào)作為后綴,即 partiql-cli-0.1.0.

輸入./bin/partiql 并回車啟動(dòng) REPL ,界面如下:


 

測(cè)試 PartiQL REPL

編寫一個(gè)簡(jiǎn)單的查詢驗(yàn)證 PartiQL REPL 是否正常。在 PartiQL> 后面輸入以下查詢:

按兩次回車。輸出類似下面這個(gè)樣子:

恭喜!你已經(jīng)成功安裝并運(yùn)行了 PartiQL REPL。PartiQL REPL 現(xiàn)在正在等待更多的輸入。

退出 PartiQL REPL:

在 macOS 或 Unix 系統(tǒng)上按下 Control+D

在 Windows 系統(tǒng)上按下 Control+C

或者關(guān)閉終端 / 命令行窗口。

從文件加載數(shù)據(jù)

將所需數(shù)據(jù)載入 REPL 的一個(gè)簡(jiǎn)單方法是在啟動(dòng) REPL 時(shí)使用 -e 開(kāi)關(guān),并提供包含數(shù)據(jù)的文件名稱:

./bin/partiql -e Tutorial/code/q1.env

你可以使用專門的 REPL 命令!global_env 查看 REPL 的全局環(huán)境中加載了什么數(shù)據(jù),即:

如何參與 PartiQL

PartiQL 是在 Apache2.0 許可協(xié)議下完全開(kāi)源的。我們歡迎你在進(jìn)一步擴(kuò)展規(guī)范、構(gòu)建技術(shù)和增加其在用戶社區(qū)的采用和份額方面做出貢獻(xiàn)。了解更多關(guān)于 PartiQL 的信息。

你可以向 good first issue 通過(guò)發(fā)送 pull 請(qǐng)求來(lái)為項(xiàng)目做出貢獻(xiàn)。如果存在 Bug 或缺少特性,則請(qǐng)?zhí)峤粏?wèn)題。閱讀本教程了解 PartiQL 語(yǔ)法、如何擴(kuò)展 SQL 和分步演練。想了解 PartiQL 的每個(gè)細(xì)節(jié)嗎?請(qǐng)通讀規(guī)范。

英文原文: Announcing PartiQL: One query language for all your data

作者:Jon Wilsdon Brad Ruppert Almann Goo Yannis Papakonstantinou

譯者:平川

標(biāo)簽: 數(shù)據(jù) 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:十個(gè)技巧,讓你成為數(shù)據(jù)分析中的“降維”專家

下一篇:大型數(shù)據(jù)庫(kù)支持面部識(shí)別抓取,隱私何處安放?