【问题标题】:Databricks Delta Lake Structured Streaming Performance with event hubs and ADLS g2具有事件中心和 ADLS g2 的 Databricks Delta Lake 结构化流性能
【发布时间】:2021-02-10 16:32:32
【问题描述】:

我目前正在尝试使用 Azure Databricks 上的 Delta Lake 处理每天大约 4TB 量的遥测数据。

我有一个专用的事件中心集群,事件被写入其中,我正在尝试通过数据块结构化流将这个 eventthub 摄取到 delta Lake 中。有一个相对简单的作业,它获取事件中心输出并提取几列,然后使用流写入器写入 ADLS gen2 存储,该存储安装到按日期和小时分区的 DBFS。

最初在一个干净的增量表目录上,性能跟上事件中心每秒写入大约 18k 条记录的速度,但几个小时后,它下降到每秒 10k 条记录,然后进一步直到它似乎稳定在每秒大约 3k 条记录。

用不同的分区方案在数据块方面尝试了一些事情,白天的时间分区似乎在最长的时间内表现最好,但在这种情况下暂停并重新启动后,性能下降并开始落后于事件中心.

寻找一些关于如何保持性能的建议。

【问题讨论】:

  • 在 Delta 上改用 Straight parquet 的进一步举措似乎也跟上了活动中心的步伐。但如果可能的话,我更愿意使用 Delta。
  • 您需要提供更多信息 - 查看每个批次的统计信息,例如处理所需的时间等。另外,您是否在 delta 表上启用了自动优化和自动压缩功能?看这里:docs.databricks.com/delta/optimizations/auto-optimize.html

标签: spark-structured-streaming azure-databricks azure-eventhub delta-lake


【解决方案1】:

我曾经遇到过类似的问题,不是 Delta Lake,而是 Spark Azure EventHubs 连接器。它非常慢并且占用了大量资源。

我通过切换到Azure EventHubs的Kafka接口解决了这个问题:https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-for-kafka-ecosystem-overview

设置起来有点棘手,但几个月来一直运行良好。

【讨论】:

  • 可以证实这一观察 - Kafka 连接器与 EventHubs 配合良好(您需要标准层),而且它更灵活
猜你喜欢
  • 2020-11-17
  • 2023-03-03
  • 2021-02-10
  • 2021-12-04
  • 1970-01-01
  • 2021-06-15
  • 2022-12-18
  • 1970-01-01
  • 2021-02-20
相关资源
最近更新 更多