WSO2 DAS火花脚本

时间:2016-10-11 09:53:29

标签: wso2 wso2-das

我正在尝试部署新的数据发布者汽车。我查看了APIM_LAST_ACCESS_TIME_SCRIPT.xml spark脚本(由api manager使用)并且不理解创建的两个临时表之间的区别: API_LAST_ACCESS_TIME_SUMMARY_FINAL APILastAccessSummaryData

1 个答案:

答案 0 :(得分:2)

两个Spark临时表代表不同的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;

如您所见,我们首先在Spark中创建一个名为APILastAccessSummaryData的临时表,它表示API_LAST_ACCESS_TIME_SUMMARY数据源中名为WSO2AM_STATS_DB的实际关系数据库表。请注意using CarbonJDBC关键字,该关键字可用于直接映射Spark中的JDBC表。这些表(及其行)未编码,可由用户读取。

其次,我们正在创建另一个名为API_LAST_ACCESS_TIME_SUMMARY_FINAL的Spark临时表。但是,我们正在使用CarbonAnalytics分析提供程序,这意味着此表不是一个vanilla JDBC表,而是一个类似于previous question中的编码表。

现在,从第三个语句中,您可以看到我们正在读取(SELECT)第二个表API_LAST_ACCESS_TIME_SUMMARY_FINAL中的多个字段并将它们(INSERT INTO)插入到第一个表中,{{1 }}。这代表Spark总结过程。

有关APILastAccessSummaryDataCarbonAnalytics分析提供程序之间差异的详细信息,或者Spark一般处理此类表的方式,请查看Spark Query Language的文档页面。