首页 > 解决方案 > 如何通过 Spark 加快将 Oracle 视图加载到 HDFS 中?

问题描述

为了加快表的加载速度,我们获取 rowid,对其进行散列,并对其进行分区。它的代码如下。但是,视图没有 rowid 并且没有弄清楚要分区的列,我们没有通用的并行摄取解决方案。有没有办法在不具体化视图的情况下一般并行摄取视图?

spark.read.format("jdbc")
    .option("url", url)
    .option("user", username)
    .option("password", new String(decrypt(decodeBase64(encryptedPassword), key), "UTF-8"))
    .option("driver", "oracle.jdbc.driver.OracleDriver")
    .option("dbtable", query)
    .option("numPartitions", numPartitions)
    .option("lowerBound", 0)
    .option("upperBound", numPartitions)
    .option("partitionColumn", s"mod(ora_hash(rowid),${numPartitions})+1")
    .option("oracle.net.networkCompression", "on")
    .option("SDU", OracleSDU)
    .option("fetchsize", FetchSize)
    .load()

标签: oracleapache-sparkparallel-processingapache-spark-sql

解决方案


推荐阅读