如何访问 delta lake 中的 gold table 用于 Web 仪表板和其他?

How to access gold table in delta lake for web dashboards and other?

我正在使用 delta lake oss 版本 0.8.0。

假设我们使用原始数据计算聚合数据和多维数据集,并使用 delta lake 将结果保存在 gold table 中。

我的问题是,是否有众所周知的方法来访问这些黄金 table 数据并将它们传送到网络仪表板?

据我了解,您需要 运行 spark 会话来查询增量 table。
因此,一种可能的解决方案是编写一个 Web api,它执行这些 spark 查询。
您也可以将黄金结果写入 postgres 等数据库中以访问它,但这似乎只是在复制数据。

是否有已知的最佳实践解决方案?

真正的答案取决于您对延迟、每秒请求数、数据量、部署选项(cloud/on-prem,数据所在位置 - HDFS/S3/...)等方面的要求. 可能的做法是:

  1. 在您的应用程序中使用本地模式的 Spark 运行 - 它可能需要大量内存等。
  2. 运行 Thrift JDBC/ODBC server 作为一个单独的进程,并通过 JDBC/ODBC
  3. 访问数据
  4. 直接使用与Rust/Python/Ruby
  5. 一起使用的Delta Standalone Reader library for JVM, or via delta-rs library读取数据