教程:聲明一個數據管道使用SQL在三角洲住表
本教程向您展示了如何使用SQL語法來聲明一個數據管道與達美住表。磚建議三角洲生活表和SQL SQL用戶的首選方法建立新的ETL,攝入和轉換管道磚。δ生活表的SQL語法擴展標準火花SQL和許多新的關鍵字,結構,和表值函數。這些添加到標準SQL允許用戶聲明數據集之間的依賴關係和部署工業生產基礎設施,而不需要學習任何新工具或額外的概念。
為用戶熟悉火花DataFrames欲望廣泛的測試和支持元編程操作,磚建議使用Python的三角洲生活表。看到與Python教程:聲明一個數據管道三角洲生活表。
請注意
你不能混合的語言在一個δ住表源文件。您可以使用多個筆記本或文件與不同的語言在一個管道。
在這個例子中,使用代碼選擇
蜂巢metastore
當您創建管道的存儲選項。因為這個例子從DBFS讀取數據,不能運行這個例子與管道配置為使用統一目錄存儲選項。
你在哪裏運行三角洲住表的SQL查詢嗎?
你必須添加SQL文件管道配置來處理查詢的邏輯。了解執行邏輯定義在三角洲生活表,看看教程:管道運行第一個三角洲住表。
雖然您可以使用筆記本或SQL文件編寫三角洲住表的SQL查詢,三角洲表不是設計運行交互式地生活在筆記本電池。執行一個細胞包含三角洲住表語法在磚筆記本返回一個信息查詢語法是否有效,但不運行查詢邏輯。
聲明一個三角洲生活表管道使用SQL
本教程使用SQL語法來聲明一個三角洲生活表管道數據集包含維基百科點擊流數據:
閱讀原始JSON點擊流數據到表中。
閱讀從原始數據表記錄和使用三角洲生活表預期創建一個新表,其中包含清洗數據。
利用潔淨的記錄數據表三角洲生活表查詢,創建派生的數據集。
這段代碼演示了一個圖案架構的簡化示例。看到獎章lakehouse架構是什麼?。
將SQL代碼複製粘貼到一個新的筆記本。您可以將示例代碼添加到筆記本的單細胞或多細胞。回顧筆記創建選項,看看創建一個筆記本。
創建一個表在對象存儲文件
三角洲生活表支持加載所有數據格式支持的磚。看到在磚與外部數據。
所有三角洲住表的SQL語句使用創建或刷新
語法和語義。當你更新一個管道,δ生活表決定表的邏輯上正確的結果可以通過增量處理或是否需要全部重新計算。
下麵的示例創建一個表通過加載數據從JSON文件存儲在對象存儲:
創建或刷新生活表clickstream_raw評論“原始維基百科點擊流數據集,從/ databricks-datasets攝取。”作為選擇*從json。' /磚- - - - - -數據集/維基百科- - - - - -數據集/數據- - - - - -001年/點擊流/生- - - - - -未壓縮的- - - - - -json/2015年_2_clickstream。json”;
表從一個上遊數據集添加到管道
您可以使用生活
虛擬模式從其他數據集查詢數據聲明的在你當前的三角洲住表管道。宣布新表以這種方式創建一個依賴項,三角洲生活表自動執行更新之前解決。的生活
模式是一個自定義關鍵字實現三角洲生活表,可以代替目標模式如果您希望發布您的數據集。看到從三角洲住表發布數據蜂巢metastore管道。
下麵的代碼的例子還包括監測和執行數據質量與預期相符。看到管理數據質量與達美住表。
創建或刷新生活表clickstream_prepared(約束valid_current_page預計(current_page_title是不零),約束valid_count預計(click_count>0)在違反失敗更新)評論“維基百科點擊流數據清洗和準備分析。”作為選擇curr_title作為current_page_title,投(n作為INT)作為click_count,prev_title作為previous_page_title從生活。clickstream_raw;
創建一個豐富的數據視圖
因為δ生活表流程更新管道作為一係列的依賴圖,您可以聲明高純度儀表板視圖權力,BI和分析通過聲明表與特定的業務邏輯。
生活表物化視圖在概念上是等價的。而引發傳統意見執行邏輯視圖查詢,每次住表的最新版本查詢結果存儲在數據文件。因為δ生活表管理在一個管道中更新所有數據集,您可以安排管道更新以匹配物化視圖和延遲要求知道查詢這些表包含數據可用的最新版本。
下麵的代碼創建了一個豐富的物化視圖上遊數據:
創建或刷新生活表top_spark_referers評論“一個表包含頁麵鏈接到Apache火花頁麵頂部。”作為選擇previous_page_title作為介紹人,click_count從生活。clickstream_prepared在哪裏current_page_title=“Apache_Spark”訂單通過click_countDESC限製10;
下一個步驟
欲了解更多,請看三角洲生活表SQL語言參考。