DataBathing:将查询传输到 Spark 代码的框架


DataBathing可以将 SQL 解析为 JSON,以便我们可以将其转换为其他数据存储!

沃尔玛团队已经成功地从 Hive SQL 驱动转变为数据工程的代码驱动。我们每天都在使用 Spark(Scala 或 Python),我们的计算性能显着提高。(我们将平均运行时间减少了 10-80%。)
但是,编码会花费更多时间,并且不同的开发人员会有不同版本的编码风格,从而影响 Spark 作业的性能。

从 sql 转换为 spark 后,数据工程师需要编写 ETL 管道的 spark 代码,而不是使用 YAML(SQL),这可以提高 ETL 工作的性能,但它仍然使 ETL 开发比以前更长。
那么我们有一个问题:我们能不能有一个既具有良好的计算性能(Spark)又能快速开发(YAML - SQL)的解决方案?

那么我们该如何解决以上问题呢?我们可以有一些标准化的方法来将 SQL 用于复杂的管道吗?
又不想直接使用 Spark SQL。
是的,这就是使用 DataBathing 的原因!!!

DataBathing 是一个可以将 SQL 传输到 Spark Dataframe 计算流程代码的库。DataBathing 可以解析 SQL 查询,输出将是 PySpark 或 Scala Spark 代码。
计划结合 Spark 和 YAML (SQL) 的优势来创建平台或库来开发 ETL 管道。

Spark Dataframe 与 Spark SQL
如果您之前使用过 Spark,您可能想知道为什么我们需要将 SQL 转换为 Spark Dataframe 计算。我会解释的。
技术问题

  • 在使用 Spark SQL 时,我们直到运行时才会知道语法错误——尤其是对于 Scala 部分。这将是巨大的发展成本。但是,对于 Dataframe 计算流程,我们没有这个问题,因为错误会在编译时被捕获。
  • 如果我们在 Spark SQL 运行任务中放入一个大型 SQL 查询,并且查询效率低下,这将是 ETL 作业的问题。另一方面,紧凑的 Spark Dataframe 计算可以提高性能并提供清晰的数据沿袭。这是我们从 DataBathing 获得的好处之一:将复杂的逻辑拆分成更小的部分。

DataBathing不仅是一个可以帮助开发者将SQL解析成Spark Dataframe计算流程的库;它也是我们下一代自动生成管道框架使用的重要基础。