【问题标题】:Faster write to MySQL using databricks write使用数据块写入更快地写入 MySQL
【发布时间】:2021-10-28 01:12:07
【问题描述】:

我目前正在开发一个天蓝色的日期砖笔记本,它将文件从存储容器读取到数据框中,然后将所有记录写入 MySQL 中的表。该文件可以有 200 万到 1000 万行。使用 read 填充我的数据框后,我的笔记本中有以下编写代码。

newFile.repartition(16).write
  .format("jdbc").option("driver", "com.mysql.cj.jdbc.Driver")
  .mode("append")
  .option("url", s"${jdbc_url}")
  .option("dbtable", pathToDBTable)
  .option("user", s"user")
  .option("password", s"pass")
  .save()

我玩过分区并决定使用 16 个,因为我的集群将有 16 个内核。除此之外,还有一种更快的方法可以使用 write 将所有这些数据插入到我的数据库中吗?或者任何其他建议的方法来尝试在 azure databricks 笔记本中?目前处理 200 万行文件需要 10-15 分钟。

【问题讨论】:

    标签: scala databricks azure-databricks


    【解决方案1】:

    延迟很可能是由 MySQL 端引起的 - 您正在使用 16 个内核编写代码,并且每个内核都打开一个与 MySQL 的单独连接,因此您可能会使数据库过载。如果列上有索引等,性能也可能会受到影响。

    所以建议检查 MySQL 端是否报告问题,查看数据库节点上的负载,检查实例有多少核心等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 1970-01-01
      相关资源
      最近更新 更多