[从SAP BO向Spark Thrift服务器的SYNTHJOIN查询

问题描述 投票:0回答:1

当前体系结构:

[在我们当前的体系结构中,我们使用Hadoop File System将报告数据存储为Parquet文件格式,而我们是Spark Thrift Server,它通过SQL接口(JDBC / ODBC)公开这些数据。使用此界面,SAP BO配置为提取报表数据。

BO版本:SAP BO 4.2 SP07

Spark版本:2.1.0

当前行为:

我们有一个具有28个联接的报告正在生成一个中级查询(显示在查询面板中。

但是当报表在Webi中运行时,我们看到在Spark中触发了另一个查询(核心逻辑是相同的),并向每个字段,表和联接中添加了复杂的长字符串别名(下面是两列的片段) )。

`SYNTHJOIN_9445517e`.`SYNTHJOIN_e7712c1dSYNTHJOIN_ae302cd9bi_financial_timeFINANCIAL_DATE` `_SYNTHJOIN_9445517e___SYNTHJOIN_e7712c1dSYNTHJOIN_ae302cd9bi_financial_timeFINANCIAL_DATE_`,

`SYNTHJOIN_9445517e`.`SYNTHJOIN_e7712c1dSYNTHJOIN_ae302cd9SYNTHJOIN_f7386c62SYNTHJOIN_12a564e7SYNTHJOIN_e7907874SYNTHJOIN_151b5d6fSYNTHJOIN_cc7708b9SYNTHJOIN_9a61ffc9SYNTHJOIN_425d41fbbi_marketMARKET_LEVEL_1` `_SYNTHJOIN_9445517e___SYNTHJOIN_e7712c1dSYNTHJOIN_ae302cd9SYNTHJOIN_f7386c62SYNTHJOIN_12a564e7SYNTHJOIN_e7907874SYNTHJOIN_151b5d6fSYNTHJOIN_cc7708b9SYNTHJOIN_9a61ffc9SYNTHJOIN_425d41fbbi_marketMARKET_LEVEL_1_`

问题:

  1. 我能否理解为什么在查询中添加长别名的原因?
  2. 由于Spark 2.1.0仅支持查询(https://issues.apache.org/jira/browse/SPARK-19796)的64k字节值,因此基于此查询生成的查询将越过该64K值。因此,火花作业正在失败。我们希望减少并保持这些别名简单明了,以避免出现64K障碍。请提出SAP BO中缺少的任何配置?
  3. [此外,我们注意到SAP BO正在生成冗长的子查询,而不是简单的联接查询,SAP BO中是否有任何配置可将查询面板中显示的查询激发到数据库而不是展开查询?
sqlite apache-spark business-objects mapr spark-thriftserver
1个回答
0
投票
我们已经能够解决它,所以我想回答我的问题。

    我能否理解为什么在查询中添加长别名的原因?
  • 这是由于SAP BO提供的Spark Simba驱动程序的行为。 SAP BO提供了一个固定的驱动程序,发布该驱动程序后所有查询都是正常的,没有任何其他别名。

      由于Spark 2.1.0仅支持查询(https://issues.apache.org/jira/browse/SPARK-19796)的64k字节值,因此查询根据此查询生成的值越过此64K值。所以激发工作失败了。我们想减少并保留这些别名简洁明了,可以避免这种64K障碍。请提出任何建议SAP BO中缺少的配置?
  • 我们还从Apache Spark 2.2获得了修复程序,以支持超过64K字节的查询。

      另外,我们注意到SAP BO正在生成一个冗长的子查询,而不是简单的联接查询,因此,SAP BO中是否有任何配置需要触发查询面板中显示的查询到数据库而不是爆炸查询?
  • 即使没有SAP(固定驱动程序jar)的修复程序,我们也可以通过更新spark simba SBO文件以选择{BO安装路径} / sap_bobj / enterprise_xi40 / dataAccess /中可用的通用JDBC驱动程序的prm文件来解决此问题。 connectionServer / jdbc / extensions / qt / jdbc.prm。但是SAP表示,他们将不支持此替代方法,因此我们如上所述从SAP本身获得了修复程序。
  • © www.soinside.com 2019 - 2024. All rights reserved.