开发者社区> 问答> 正文

Table API 架构是什么?

Table API 架构是什么?

展开
收起
游客qzzytmszf3zhq 2021-12-07 15:50:58 506 0
1 条回答
写回答
取消 提交回答
  • 通过这个架构图,可以看到,Python Table API 是建立在 Java Table API 的基础上的,我们并没有单独的从上到下实现一套 Python Table API。

    Python Table API 是一个特别的存在,它是在 Java Table API 的基础上加了一层薄薄的 API,这两层 API 是可以相互调用的。

    在 client 端的时候,会起一个 Python VM 然后也会起一个 Java VM ,两个 VM 进行通信。通信的细节可以看下面这张图。 我们可以看到 Python 跟 Java VM 里面都会用 Py4J 各自起一个 Gateway。然后 Gateway 会维护一些对象。

    比如我们在 Python 这边创建一个 table 对象的时候,它也会在相应的 Java 这边创建一个相同 table 对象。如果创建一个 TableEnvironment 对象,在 Java 部分也会创建一个 TableEnvironment 对象。

    如果你调用 table 对象上的方法,那么也会映射到 Java 这边,所以是一个一一映射的关系。

    基于这一套架构,我们可以得出一个结论:如果你用 Python Table API 写出了一个作业,这个作业没有 Python UDF 的时候,那么这个作业的性能跟你用 Java 写出来的作业性能是一样的。因为底层的架构都是同一套 Java 的架构。

    2021-12-07 15:51:19
    赞同 展开评论 打赏
问答分类:
API
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载