云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_百度云看片资源_稳定性好

小七 141 0

在上一篇文章中,我展示了在xsadvanced中使用同义词的完整端到端场景。在本文中,我将展示如何实现更大的灵活性。

灵活性选项实际上并不取决于访问经典模式还是生成的HDI容器。所有不同之处都在上一篇文章中解释过。因此,我将只使用经典模式或HDI容器作为目标,大数据分析技术,而不是两者。我将重点介绍与灵活同义词目标不同的地方。

对于本章中的示例,我将使用回购https://github.com/CGilde/syn-prov-classic(见上一篇文章)作为目标。这是一个经典的DB模式。

当同义词的目标模式在设计时未知时,或者如果您希望能够轻松地切换到另一个模式作为目标,我们需要一种机制,医疗物联网,物联网断路器,在部署过程中用具体的模式替换一些符号或默认模式。配置文件和模板机制提供了所需的功能。配置文件还提供更改中心位置同义词目标的功能。

起始点是repohttps://github.com/CGilde/syn-hdi-classic-1上一篇文章。我把它复制到一个新项目中。完整的回购可以在https://github.com/CGilde/syn-hdi-classic-2。

由于我不想再硬编码.hdbsynonym文件中的目标对象,我从这些文件中删除了目标。剩下的可以看作是同义词的"仅声明",没有定义任何特定的目标:

SNWD.hdb同步在删除目标信息之前…

和之后:

现在我将有关目标对象的信息移动到一个.hdbsynonymconfig文件中。这些配置文件必须位于文件夹cfg中,该文件夹必须是db模块根文件夹的子文件夹。cfg文件夹可以包含反映项目结构的子文件夹。.hdbsynonym文件的位置保持不变。

如果存在,则配置文件是定义同义词目标的位置。或者,我们可以在.hdbsynonym文件中保留默认配置,然后由.hdbsynonymconfig文件中的配置覆盖。但我发现更清楚的是,配置只存在于一个地方,因此没有使用任何默认配置。

.hdbsynonymconfig文件的语法与.hdbsynonym文件几乎相同,但允许使用"架构.配置,后跟"/schema",而不是固定的架构名称。在部署(或内置webide)期间,该模式将被引用服务的实际模式替换。这意味着,我们不必事先知道所引用的模式!

在部署过程中,cfg文件夹被递归扫描,以查找找到的所有同义词配置。它们定义同义词的目标(或替换现有的默认配置)。

出于与旧版本兼容的原因,也可以使用.hdbsynonymtemplate文件。同义词SNWD\u SO\u SL的一个例子包含在project repo中。

在构建项目之前,我将.hdiconfig文件从src文件夹复制到cfg文件夹,以防它不在那里。

我在Web IDE中构建项目,并在DB Explorer中检查同义词。模式名是EPMïu DEV,尽管我们没有在项目中的任何地方明确提到它:

如果我们想将项目部署到另一个系统或另一个空间,我们所要做的就是通过该系统和空间中的"xs cups"创建一个服务"EPMïXXX-table-ender",指向我们想要访问的模式。访问另一个HDI容器的工作方式相同。我们在项目中使用的具有相同服务名称的HDI容器必须在部署的目标组织/空间中可用。

有时不希望或不可能使用开发描述符中使用的名称创建授权人服务mta.yaml公司以及其他文件,如.hdbsynonymconfig或.hdbgrants文件。相反,应在Web IDE中或在部署期间使用现有服务。为了支持这种用例,提供了一种服务替换机制。此功能从HANA 2.0 SPS0开始提供。要使用这种机制,我们必须使用服务名称和mta.yaml公司我们的项目档案略。

对于本章的例子,我将使用回购https://github.com/CGilde/syn-prov-hdi作为同义词的目标。这是一个包含一些表的HDI容器。

服务替换的起点是repohttps://github.com/CGilde/syn-hdi-hdi-0上一篇文章。我把它复制到一个新项目中。完整的回购可以在https://github.com/CGilde/syn-hdi-hdi-1。

首先,我将目标对象的信息移动到cfg文件夹中的.hdbsynonymconfig文件中。这与上一章相同,我将不作进一步解释。

不同的是,我在.hdbgrants和.hdbsynonymconfig文件中不使用物理服务名称。相反,我在开发描述符中使用一个逻辑服务名称("EPM\u log-table-designer")。

mta.yaml公司文件I定义了逻辑服务名称和物理服务名称之间的映射。

开发描述符首先定义了从键为"EPM\u log-table-ender"的逻辑服务到资源"EPM\u XXX-table-ender"的映射。资源名称"EPM\u XXX-table-designer"也是物理服务名称的默认值。当不提供替换时,将使用此默认服务名称。它可以被该资源的参数"servicename"覆盖。我强调了创建逻辑服务名称、资源名称(默认物理服务)和通过属性和参数"服务名称"的可选替换之间的映射的行。

这给了我们很大的灵活性。我将展示三个不同的用例。

一个例子是一个已部署的HDI容器,其中包含开发系统的测试数据,在开发过程中应用程序可以访问该容器。

对于这个用例,我可以使用mta.yaml公司如上图所示的文件。在部署/构建之前,我部署了服务名为"EPM\u XXX-table-ender"的目标HDI容器:

在Web IDE中构建项目后,同义词的目标是生成的模式:

示例是与访问此HDI容器中对象的应用程序并行开发的HDI容器。

对于此用例,我插入服务Web IDE生成的目标HDI容器的名称,作为mta.yaml公司文件:

更改行mta.yaml公司文件,提供用于Web IDE的固定参数:

在Web IDE中构建项目后,同义词的目标现在是Web IDE生成的模式:

一个示例正在升级到生产,在开发过程中,您不知道生产服务的名称。