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

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

2020-04-28    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

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

正文

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

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

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

 

 

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

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

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

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

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

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

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

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

PartiQL 設計原則

以下設計原則概括了我們的設計目標,是 PartiQL 的基礎:

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

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

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

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

格式獨立:PartiQL 的語法和語義并不綁定到任何特定的數(shù)據(jù)格式。底層數(shù)據(jù)可以是 JSON、Parquet、ORC、CSV、Ion 等格式,編寫的查詢是相同的。查詢在映射到不同底層格式的綜合邏輯類型系統(tǒng)上運轉(zhuǎn)。

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

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

從它的設計原則就可以預料到,對于 SQL 用戶而言,PartiQL 簡單而熟悉。自 2018 年以來,它已經(jīng)被 Amazon Redshift Spectrum 的多個客戶使用:

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

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

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

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

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

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

PartiQL 參考引擎

 

 

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

準備開始

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

前提條件

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

按照說明安裝JDK 軟件并將 JAVA_HOME 設置為 Java 運行時的安裝路徑。

下載 PartiQL REPL

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

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

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

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

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

lib 包含運行 PartiQL 所需的所有 Java 庫。

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

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

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

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

運行 PartiQL REPL

在 Windows 上

運行(雙擊)particl.bat 應該會打開一個命令行提示符,并啟動 PartiQL REPL,界面如下:

在 macOS(Mac)和 Unix 上

打開一個終端,并導航到 partiql-cli 文件夾。該文件夾的名稱以 PartiQL 的版本號作為后綴,即 partiql-cli-0.1.0.

輸入./bin/partiql 并回車啟動 REPL ,界面如下:


 

測試 PartiQL REPL

編寫一個簡單的查詢驗證 PartiQL REPL 是否正常。在 PartiQL> 后面輸入以下查詢:

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

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

退出 PartiQL REPL:

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

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

或者關閉終端 / 命令行窗口。

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

將所需數(shù)據(jù)載入 REPL 的一個簡單方法是在啟動 REPL 時使用 -e 開關,并提供包含數(shù)據(jù)的文件名稱:

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

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

如何參與 PartiQL

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

你可以向 good first issue 通過發(fā)送 pull 請求來為項目做出貢獻。如果存在 Bug 或缺少特性,則請?zhí)峤粏栴}。閱讀本教程了解 PartiQL 語法、如何擴展 SQL 和分步演練。想了解 PartiQL 的每個細節(jié)嗎?請通讀規(guī)范。

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

作者:Jon Wilsdon Brad Ruppert Almann Goo Yannis Papakonstantinou

譯者:平川

標簽: 數(shù)據(jù) 

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

上一篇:什么是數(shù)據(jù)科學?數(shù)據(jù)科學相關的名詞解釋

下一篇:數(shù)據(jù)湖:下一代企業(yè)數(shù)據(jù)倉庫