我在做 SAP HANA 或 HANA Cloud 项目时,经常会碰到一种很典型的场景,我们已经把远端系统连上了,Remote Source也已经建好,但业务上并不想一上来就把数据整批复制到本地。原因很现实,远端表可能很大,数据更新也频繁,项目又正处在验证阶段,这时候最合适的动作,往往不是建本地物理表,而是先建一张Virtual Table。它给人的感觉很像在本地目录里挂了一个入口,开发、查询、联接、建视图这些动作都能继续往前走,但底层数据仍然留在远端系统。SAP 官方对这一点说得很清楚,Virtual Table的价值就在于让我们访问其他数据库里的对象,而不必先把数据复制到 SAP HANA 里。(SAP Help Portal)我们创建的不是数据副本,而是一张可被本地识别的远端映射表很多人第一次接触Virtual Table时,心里会下意识把它理解成一种轻量复制。这个理解容易把后面的判断带偏。更准确一点的说法是,我们在本地 Catalog 里创建了一个数据库对象,这个对象指向远端源里的某个表,或者某个可被虚拟化的远端对象。对开发者来说,它在 SAP HANA 里看起来像一张普通表,能够被