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

大带宽_珠光宝气粤语百度云_企业级

小七 141 0

如何使用Delphix开发虚拟化插件

Delphix最近发布了Virtualization SDK,这是一个软件开发工具包,专为方便数据源集成到Delphix而设计。作为这一激动人心的新产品发布的一部分,这里将对一种开发策略进行技术上的深入探讨,该策略可以帮助开发人员为关系型、NoSQL、PaaS和容器化数据库构建功能强大的数据管理插件但首先,在我们深入研究这个策略之前,这里有一些一般性的说明Shell脚本:目前,只有Shell脚本(Unix上的Bash和Windows上的PowerShell)可以在远程主机上执行。无法从Delphix引擎上执行的Python代码与数据库建立网络连接,因此需要shell脚本与数据库交互。在下面的每一个步骤中,在编写任何Python代码之前编写实现每个操作所需的shell脚本将使您的生活更加轻松。shell脚本可以单独开发,但要考虑它们输出的内容。Python代码将返回stdout和stderr,并需要理解它。测试:Python代码可以用任何普通Python单元测试框架进行测试。我们在内部使用pytest。你需要模仿任何打给dlpx.virtualization.libs. 为了测试远程执行或运行端到端测试,您必须将插件上载到Delphix引擎,并通过执行Delphix最终用户工作流来测试它潜入战略插件操作有三大类:发现、摄取和供应。先从硬编码发现开始,因为这可能很棘手,然后实现摄取,然后进行资源调配。最后,回过头来,如果需要,可以实现自动发现。模式从空模式开始并根据需要添加到它们中可能是最容易的。当您实施这些操作时,您将很清楚需要哪些信息。请记住,对模式的更改将要求在上载新插件之前删除从更改模式创建的对象。这不适用于存储库或自动发现的源配置。例如,如果在链接源定义中添加了一个属性,则与插件链接的所有源都需要删除,同时还需要删除从这些链接源配置的所有VDB。发现发现包括存储库发现和源配置发现。对于传统的关系数据库,存储库通常表示RDBMS,而源配置通常表示数据库本身。存储库发现总是由插件自动执行和实现的。源配置发现可以由插件完成,也可以由最终用户通过UI手动完成。首先,最好使用测试环境的元数据返回RepositoryDefinition和SourceConfigDefinition对象,而不是运行任何远程操作。发现,特别是存储库发现,可能会很快变得棘手,因为大多数rdbms都不提供干净的api来发现它们的运行状态或位置下面是这些操作的示例:@plugin.discovery.repository()def存储库发现(源连接):return[RepositoryDefinition(name='PostgreSQL',port=5432,user='postgres')]@plugin.discovery.source_配置()def source_config_discovery(源代码连接,存储库):return[SourceConfigDefinition(name='TestDB']摄入数据摄取通过两个操作完成:linked.pre_快照以及linked.post_快照. 这两者都需要实现才能接收数据。所有数据摄取必须在中完成linked.pre_快照快照对象从linked.post_快照. 如果你正在编写一个带有分阶段摄取策略的插件,linked.mount_规格也需要实施这有助于获取已经写出的数据所需的shell命令。它们可以添加到插件的源目录中。有关更多详细信息,下面是如何最好地管理远程脚本的指南供应一旦接收到数据,就可以对其进行配置。虽然它高度依赖于您的数据源,但资源调配通常比发现和接收更直接。只有虚拟配置以及virtual.mount_规范需要实现才能使资源调配正常工作。使用快照中装载的数据,configure需要建立一个新的、正在运行的数据库。它返回一个虚拟源对象。mount_-specification返回一个mount-specification对象。源配置发现(再次)如果您的插件只支持手动源代码配置发现,请跳过这一部分。否则,请实现源配置发现的更自动化版本。大多数RDBMS都有一个查询来列出它们管理的数据库。这可能是实现它的最佳方法。存储库发现(再次)存储库发现通常是最脆弱的操作。如上所述,很少有支持的、有文档记录的方法来发现给定主机上的存储库。这种方法将高度依赖于你的插件所支持的数据源。您通常不得不求助于查找二进制文件、进程、端口和/或配置文件。下一步是什么?虽然这些都是Delphix的核心操作,但是有更多的用户工作流在不实现其他操作的情况下无法工作。您可以在这里找到工作流和相应的插件操作。您还可以继续扩展插件以支持目标数据源的更多配置和特性。现在您已经编写了插件的第一个版本,下面是一些您可能需要考虑的问题:您支持哪些操作系统?哪个版本?您支持哪些数据源版本?你的插件需要访问源数据库吗?如果是,它需要什么权限?你的插件是如何接收数据的?它使用复制吗?它是从备份中摄取的吗?还有别的事吗?如果它是从备份中摄取的,你的插件是否关心使用了哪个备份供应商?我们总是在寻找反馈、建议和有趣的用例。如果你有任何问题或只是需要一些问题的答案,不要犹豫,张贴在Delphix社区。