【发布时间】:2019-09-26 08:23:17
【问题描述】:
我正在运行一个 spark 分析应用程序并使用 spark jdbc 直接读取 MSSQL Server 表(整个表)。该表有超过 30M 的记录,但没有任何主键列或整数列。由于表格没有这样的列,我无法使用partitionColumn,因此阅读表格需要太多时间。
val datasource = spark.read.format("jdbc")
.option("url", "jdbc:sqlserver://host:1433;database=mydb")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("dbtable", "dbo.table")
.option("user", "myuser")
.option("password", "password")
.option("useSSL", "false").load()
在这种情况下,有什么方法可以提高性能,并在从关系数据库源(源可能是 Oracle、MSSQL Server、MySQL、DB2)读取数据时使用并行性。
【问题讨论】:
-
太模糊了。加入?只想要增量或所有数据 oer 表?
-
我已经更新了这个问题。如果我们没有任何 CLI 列,我肯定必须阅读整个表格。
-
@user10958683 - 不是真的,我的表没有任何主键或更改数据标识符列或整数列。
-
使用 sqoop 并进行一些分析以确定合适的拆分列
标签: scala apache-spark apache-spark-sql spark-jdbc