当前位置:网站首页>spark 寫入doris太慢方案解决

spark 寫入doris太慢方案解决

2022-06-09 11:46:00 菜鳥蜀黍

最近公司用到了spark讀寫doris,因為doris其實就是mysql協議,在讀取數據時候速度還是可以的,但是寫入時候就發生了數據寫入特別慢,幾千條的數據甚至要用幾十分鐘,這不是可以接受的。

經過調研查詢發現因為連接參數沒有指定,數據都是單條寫入,改造前寫入方式:

       userLogDF
          .write
          .format("jdbc")
          .mode(SaveMode.Append)
          .option("driver", "com.mysql.jdbc.Driver")
          .option("url", "jdbc:mysql://${host}:${port}")
          .option("batchsize", "50000")
          .option("user", "root")
          .option("password", "bigdata1234")
          .option("isolationLevel", "NONE")
          .option("dbtable","dev_dwd.dwd_user_act" )
          .save()

而需要增加的參數就是在URL後增加,單錶重複批量寫入,而不是單條的循環寫入

rewriteBatchedStatements=true

改造後:

userLogDF
          .write
          .format("jdbc")
          .mode(SaveMode.Append)
          .option("driver", "com.mysql.jdbc.Driver")
          .option("url", "jdbc:mysql://${host}:${port}/dev_dwd?rewriteBatchedStatements=true")
          .option("batchsize", "50000")
          .option("user", "root")
          .option("password", "bigdata1234")
          .option("isolationLevel", "NONE")
          .option("dbtable","dev_dwd.dwd_user_act" )
          .save()

寫入速度又原先的幾十分鐘變為了幾十秒。

參考:spark寫入mysql速度優化

原网站

版权声明
本文为[菜鳥蜀黍]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/160/202206091101524478.html