2016-10-11 151 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