【问题标题】:Spark JDBC parallelismSpark JDBC 并行性
【发布时间】:2019-02-22 07:13:30
【问题描述】:

我正在研究需要一次性卸载 JDBC 数据源的用例,在我的情况下它是 SAP Hana 数据库。我想将整个 SAP Hana 数据库卸载到 HDFS/MapR FS。最初我们尝试过sqoop,但是Sqoop的问题在于主键字段,并且通过--split-by论证只支持一个主键字段。然后我们想计划利用 Spark 来做数据集的 Sqoop。浏览 spark 中可用的各种 JDBC 选项,例如这个帖子https://forums.databricks.com/questions/14963/problems-doing-parallel-read-from-jdbc.html。它也只接受一列,而在 SAP Hana 表的情况下,它主要由共轭键(形成主键的多个键)组成。

  1. spark 如何读取 JDBC 源代码?它是否从表中读取所有数据,然后在工作人员之间按内存中的分区进行拆分?

  2. 如何在读取 JDBC SAP Hana 源时指定这样的选项并通过减少 OOM 错误在此处进行并行读取(如果上面的问题 #1 为是)

  3. 有些 SAP Hana 表甚至没有主键,这就是带来大数据集的问题。

请帮助我形成正确的方法和策略。

提前致谢。

马尼什

【问题讨论】:

    标签: apache-spark dataframe jdbc parallel-processing


    【解决方案1】:

    从 JDBC 源读取时,Spark SQL 能够进行有限级别的谓词下推和列修剪优化。鉴于此,可以肯定地说它不会将 JDBC 表中的完整数据读入内存;尽管这在很大程度上取决于您使用的提取查询的类型。

    SAP HANA's Spark Controller 提供 HANA 与 Spark 的集成。您必须检查它是否支持具有共轭主键和没有主键的表。

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多