2016-10-11 69 views
2

我正試圖部署新的數據發佈者汽車。我看着裏邊反APIM_LAST_ACCESS_TIME_SCRIPT.xml火花腳本(通過API管理器使用),不明白創建的兩個臨時工表之間的差異:API_LAST_ACCESS_TIME_SUMMARY_FINALAPILastAccessSummaryDataWSO2 DAS火花腳本

回答

2

兩個星火臨時表代表不同的JDBC表(可能在不同的數據源中),其中一個用作Spark的源,另一個用作目的地。

爲了說明這一點比較好,有問題看看簡化腳本:

create temporary table APILastAccessSummaryData using CarbonJDBC options (dataSource "WSO2AM_STATS_DB", tableName "API_LAST_ACCESS_TIME_SUMMARY", ...); 

CREATE TEMPORARY TABLE API_LAST_ACCESS_TIME_SUMMARY_FINAL USING CarbonAnalytics OPTIONS (tableName "API_LAST_ACCESS_TIME_SUMMARY", ...); 

INSERT INTO TABLE APILastAccessSummaryData select ... from API_LAST_ACCESS_TIME_SUMMARY_FINAL; 

正如你所看到的,我們首先建立在星火臨時表的名稱APILastAccessSummaryData,這代表實際在WSO2AM_STATS_DB數據源中名稱爲API_LAST_ACCESS_TIME_SUMMARY的關係數據庫表。請注意,using CarbonJDBC關鍵字可用於在Spark中直接映射JDBC表。這些表格(及其行)不被編碼,並且可以由用戶讀取。

其次,我們正在創建另一個名爲API_LAST_ACCESS_TIME_SUMMARY_FINAL的Spark臨時表。然而,在這裏,我們使用CarbonAnalytics分析提供程序,這意味着此表不會是一個vanilla JDBC表,而是一個類似於previous question的編碼表。

現在,從第三條語句可以看出,我們正在從第二個表API_LAST_ACCESS_TIME_SUMMARY_FINAL中讀取(SELECT)一些字段並將它們插入(第一個),即APILastAccessSummaryData。這代表Spark總結過程。

有關CarbonAnalyticsCarbonJDBC分析提供程序之間差異或Spark如何處理此類表格的更多詳細信息,請參閱文檔頁面Spark Query Language

+0

非常感謝Gokul對此解釋:) – Zizou