为了加快表的加载速度,我们将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()