流程流數據與達美住表

很多應用程序要求表基於連續到達的數據被更新。然而,隨著數據規模的增長,在每次更新時再處理數據所需的資源可以成為禁止的。您可以定義一個流媒體表或視圖增量計算連續到達的數據。流表和視圖減少攝取新數據的成本和延遲的新數據是可用的。

當一個觸發更新管道,一個流表或視圖過程隻到達了新的數據,自上次更新。已經處理過的數據由三角洲住自動跟蹤表運行時。

流攝入從外部數據源

要攝取流數據,您必須定義一個直播表從一個流源;例如,您可以讀取外部數據流與下麵的代碼:

inputPath=“/ databricks-datasets / structured-streaming /事件/”@dltdefstreaming_bronze_table():返回(火花readStream格式(“cloudFiles”)選項(“cloudFiles.format”,“json”)負載(inputPath))
創建刷新流媒體生活streaming_bronze_table作為選擇*cloud_files(“/ databricks-datasets / structured-streaming /事件/”,“json”)

管道內流從其他數據集

你還可以從其他表流數據在同一管道。

@dltdefstreaming_silver_table():返回dltread_stream(“streaming_bronze_table”)在哪裏()
創建刷新流媒體生活streaming_silver_table作為選擇*(生活streaming_bronze_table)在哪裏

流程流和批處理數據在一個單一的管道

因為直播表使用Apache火花結構化流是什麼?,現場直播表隻能過程附加查詢;也就是說,查詢源表中插入新行。處理來自源表的更新,例如,合並和刪除,不支持。流程更新,請參閱申請變更成命令。

常見的流模式包括攝入源數據來創建初始數據集在一個管道。這些初始數據集通常被稱為青銅表和經常執行簡單的轉換。回收效率低下的格式如JSON可以禁止這些簡單的轉換,並適合流媒體直播表。

相比之下,最後一個表在一個管道,通常被稱為黃金表,通常需要複雜的聚合或閱讀來源的目標應用變化操作。因為這些操作本質上創建更新而不是附加,他們不支持輸入流媒體直播表。這些轉換更適合作為一個生活表實體化。

通過混合流住表和住表到一個管道,可以簡化你的管道,避免昂貴的re-ingestion或加工的原始數據和完整的SQL來計算複雜的力量聚合在一個有效地編碼和過濾數據集。下麵的例子說明了這種類型的混合處理:

@dltdefstreaming_bronze():返回(#由於這是一個流源,這個表是增量。火花readStream格式(“cloudFiles”)選項(“cloudFiles.format”,“json”)負載(“s3: / /道路/ /生/數據”))@dltdefstreaming_silver():#因為我們讀青銅表流,這銀表也#增量更新。返回dltread_stream(“streaming_bronze”)在哪裏()@dltdeflive_gold():#這個表將被重新計算完全閱讀整個銀表#時更新。返回dlt(“streaming_silver”)groupBy(“user_id”)()
創建刷新流媒體生活streaming_bronze作為選擇*cloud_files(“s3: / /道路/ /生/數據”,“json”)創建刷新流媒體生活streaming_silver作為選擇*(生活streaming_bronze)在哪裏創建刷新生活live_gold作為選擇(*)生活streaming_silver集團通過user_id

了解更多關於使用自動加載程序有效地讀取JSON文件從S3增量處理。

流連接

三角洲住表支持各種連接策略更新表。

Stream-batch連接

Stream-batch連接是一個好的選擇當denormalizing擴展數據的連續流主要是靜態維度表。每次更新派生的數據集,從流與新記錄時靜態批表的快照更新開始。靜態表中的記錄添加或更新表中沒有反映,直到一個完整的執行刷新。

以下是stream-batch連接的例子:

@dltdefcustomer_sales():返回dltread_stream(“銷售”)加入((“beplay体育app下载地址顧客”),(“customer_id”),“左”)
創建刷新流媒體生活customer_sales作為選擇*(生活銷售)內心的加入生活beplay体育app下载地址使用(customer_id)

在連續管道、批處理的連接與每個micro-batch定期輪詢的更新。

流媒體聚合

簡單的分配總量計算,最小,最大,或總和,代數總量平均和標準偏差也可以計算增量與流媒體直播表。磚建議增量的聚合查詢與數量有限的組織,例如,一個查詢的集團通過國家條款。隻有新的輸入數據讀取與每個更新。