oracle - 如何通过 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()
解决方案
推荐阅读
- php - 具有动态参数/参数数量的匿名函数
- php - 仅在表单下拉 symfony 3.4 上返回唯一值
- python - 它称我的 pygame 无效
- mysql - 将以下 MDX 查询更改为 MYSQL 查询
- iis - 出现错误 800cce05 - 使用 cdosys.dll 时
- javascript - 如何从平面数据创建 javascript json 多维树
- json - 如何在 BASH 脚本中处理 nodejs JSON?
- docker - 推送自己的id。Confluent kafka 连接 elasticsearch docker
- javascript - 提高这种组合算法的性能?
- angular - 将 Font-Awesome 与 Webpack 4 和 Angular 6 集成