数据同步参考
如果您不熟悉此概念,请从总览
数据来源定义
数据源使用菜单“管理工具同步数据源”定义。
每个数据源定义:
- 要同步的对象的目标类
- 要同步的对象的属性/字段列表
- 如何搜索/协调对象与 iTop 中已有的对象
- 在iTop中同步更新和删除对象的规则
- iTop终端用户的同步对象的行为方式(哪些字段是只读的,允许用户删除对象…)
- 可选的超链接和图标,用于将iTop用户引至外部应用中的相应对象
描述
属性的这一部分为此同步数据源定义了一些常规参数。
属性 | 强制性的吗? | 含义 | 样品价值 | 名称 | 强制性的 | 引用此数据来源的名称 | 来自SCCS的服务器同步 | 描述 | 可选的 | 附加说明,仅供参考 | | 状况 | 强制性的 | 实施,已生产或已淘汰:用于过滤和分类数据来源 | 生产 | 目标阶层 | 强制性的 | 动态的对象类 | 服务器 | 用户 | 强制性的 | 用户允许执行此同步 | 管理员 | 联系人通知 | 可选的 | 联系人,用于在执行同步时(通过发送邮件)通知结果,并包含至少一个错误 | | 图标的超链接 | 可选的 | 表示此数据源的图像的超链接(URL)。在iTop中同步的图标标题旁边的“锁定”符号上显示的工具提示中,显示此图标而不是默认图标。 | | 应用的超链接 | 可选的 | 同步到数据的远程应用的超链接(URL)。超链接可以包含占位符,例如$ this-> attcode $(将由当前对象的属性的价值替换)或$ replica-> column_name $(将由占位符中的命名列的价值替换)。复制品) | https:::myapp.acme.commdisplayyserverr$replica->primary_key$ | 数据表 | 可选的 | 将在其中存储副本信息的MySQL表的名称。如果省略,系统将为您生成一个唯一的名称。 | synchro_data_servers_from_sccs |
将基于类数据模型创建用于保存副本的表,如果稍后更改数据模型,则该表将通过安装程序进行更新(与往常一样,将添加但不删除列)。
因为需要通过同步导入 为空字段(例如日期),发布2.3.4中的日期列格式已从date更改为varchar(10) 搜索和对帐
此部分属性定义
- 副本表中包含的信息如何与iTop数据库的内容匹配
- 同步数据源有关创建新iTop对象的行为是什么。
属性 | 含义 | 对帐策略 | 使用属性:创建新副本时,系统将基于同步属性列表(将Reconciliation标记设置为Yes),在iTop中将搜索匹配对象。
使用primary_key:副本的primary_key列应包含iTop中对象的标识符。 | 功能归零 | 对帐未在iTop中找到任何对象时该怎么办。
Create指示系统创建目标类的新对象。
在这种情况下,错误将导致系统至报告作为错误(即,该同步数据源应该仅更新现有对象)。 | 功能上一个 | 对帐在iTop中找到一个完全匹配的对象时该怎么办。
更新指示系统更新此对象。
在这种情况下,错误将导致系统至报告作为错误(即,该同步数据源应该创建对象,而从不更新现有对象)。 | 功能上的很多 | 对帐在iTop中找到多个匹配的对象时该怎么办。
Create指示系统创建另一个对象。
错误将导致系统到报告成为错误。
拿第一个指示系统选取列表中的第一个对象并进行更新。 |
删除规则
本节定义如何处理同步对象的删除:
属性 | 含义 | 允许的用户 | 哪些终端用户允许删除iTop中的同步对象。
同步对象时,没有人不允许在iTop中删除它。只有同步系统才能删除它。
管理员仅允许管理员删除同步的对象。
每个人都允许删除此类对象,正常访问规则适用于此类同步对象。 | 满载间隔 | 同步的两次执行之间的持续时间,被视为已加载(接触)所有副本。如果未触摸副本的时间超过此价值的持续时间,则认为该副本已过时。 | 删除策略 | 复制副本过时该怎么办。
忽略任何操作,关联的对象仍保持在iTop中。
删除删除iTop中的关联对象(以及数据表中的副本)。
更新根据更新规则(请参阅下文)指定,更新关联的对象。
更新然后删除按照更新规则(请参阅下文)指定的方法更新关联的对象,然后在“保留期限”之后删除对象(和副本)。 | 更新规则 | attribute_code:value 值的用分号分隔的值列表,用于指定要设置关联对象的哪个属性以及将哪个价值设置。示例:价status:obsolete;description:no longer synchronized. | 保留期限 | 当“删除策略”设置为“更新然后删除”时,关联的对象更新与删除之间的持续时间。 |
如果在运行同步_exec之前在同一个数据源上运行多个同步_导入,请不要使Full load interval = 0s保留,否则删除同步将不起作用。 参数的满载间隔将被忽略[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import[/url] –synchronize=1,因为该唯一导入中未提供的任何对象被视为“过时” 如果您将满负载间隔设置为7天,保留期限为14天,则3周后将删除源不再提供的对象 属性
属性标签
“属性”标签定义:
- 如何确定是必须在iTop中创建新的对象还是必须将现有的对象与副本相关联(如果调节规则在属性中为“使用属性”)
- 关联的对象的哪些属性必须更新,以及如何更新
当synchro_data_xxx 表中出现新的记录时,同步机制将尝试将此记录与现有的iTop对象关联。如果一个或多个属性在“对帐?”中标记为“是”。列,这些列属性将用于与所有这些值匹配的iTop对象的记录。如果找到一个对象,它将与该记录关联。如果找不到对象,将创建一个新的iTop对象。
适当对帐规则的定义是数据同步正确行为的关键。为了使同步正常进行,必须使用属性列表作为对帐规则,该属性以可靠的方式唯一地标识动态的对象。
更新列
更新列定义是否必须更新属性。
- Checked = Yes:将更新属性
- Unchecked = No:此属性的外部源信息将被忽略,iTop对象上的现有价值将保持不变。
更新策略列
更新策略列定义了更新的属性的行为。可能的值为:
- 锁定:属性将完全由数据同步驱动,并在iTop用户界面中显示为只读(旁边有一个小锁图标),
- 解锁:属性将通过同步进行更新(无论源数据何时更改),但终端用户仍然可以在iTop中并行修改属性,
- 如果为空,则初始化:如果iTop中的价值为空,则同步只会设置该属性的价值。属性仍可在iTop内部进行修改。
重新对帐键列
最后,“对帐键”列定义了如何流程属性,这些属性是对另一个iTop对象的引用(即外键)。提供的数据可以包含外键(id)的实际价值,也可以包含另一个属性,例如对象的名称。它必须唯一地标识对象。
对于外键,iTop不支持对多个属性(例如名称AND组织)的组合进行对帐。如果出现这种需求,那么在将ID提供给iTop之前,必须使用ETL或脚本执行所需的对帐。
状况状况选项卡
状况选项卡显示有关同步执行的信息。如果从未运行过同步,则该选项卡显示以下消息: 该同步从未运行过。还没有日志。 否则,该选项卡将显示类似于以下模式的模式: 同步历史在屏幕的左侧,同步的每次执行都显示在历史列表中,显示了整个状况,执行的开始日期和时间。 单击此列表中的元素,以显示相应的状况详细信息,显示在右侧的两列中。 左侧的列显示 synchro_data_xxxx表中的记录的状况: - 新记录是自上一次执行同步以来已添加到表中的记录,
- 现有记录是自从上一次执行同步以来已经存在并重新加载的记录,
- 消失的记录是由于超过full_load_interval持续时间而没有加载的记录。
- 忽略的记录对应于iTop中不再存在的对象。
右边的列根据对iTop中相关对象的修改显示了同步的后果。 - 对于每个新记录,后果可能是:
- 在iTop中创建了新的对象(Created),
- iTop中已经存在的对象的更新(Updated),
- 与iTop中的对象的简单关联,它已经是最新的(Unchanged),
- 或尝试在iTop中创建或更新对象时使用错误(最可能是由于数据不一致)。
- 对于每个现有记录,后果可能是:
- 关联的对象的更新(Updated),
- 完全没有变更(Unchanged)
- 或尝试更新关联的对象时出现错误(Errors)
- 对于每个消失的记录,后果(“删除规则”上的依赖)可以是:
- iTop中关联的对象已被删除(Deleted),
- iTop中关联的对象已更新(Updated),
- iTop中关联的对象保持不变(No Action),
- 或尝试更新或删除iTop中关联的对象时发生错误(Errors)。
复制品
在iTop中,副本用于存储状况信息以及synchro_data_xxx表中加载的原始数据与关联的iTop数据之间的关系。 通过单击状况选项卡顶部的链接,可以显示给定数据同步源的副本。副本显示如下:
副本的内容对于了解数据同步机制的行为(并获取有关错误的更多信息)很有用,但是其数据由同步维护,并且永远不要手动修改。
使用MySQL语句填充synchro_data_xxxx表
如果使用SQL命令(使用ETL或自制脚本)填充表synchro_data_xxx,则必须注意不要创建重复的记录。请记住,synchro_data_xxx表中的每个记录都对应于iTop中的一个同步。
为避免此类重复,必须先将查询用于现有的记录,然后再将新的记录插入表中。为了加快此查询的运行速度,您可以构建一个唯一标识“源”对象的查询并将该查询存储在表的“ primary_key”列(具有唯一的价值)中,或者使用记录列的任何组合并更改记录_价值_xxxx表的定义以添加您自己的索引。
不要使用MySQL申明INSERT…ON DUPLICATE KEY UPDATE在synchro_data_xxx表中插入记录。依靠“插入前”触发器的内部iTop机制不支持此功能。
如果您需要清空synchro_data_xxxx表,请不要使用MySQL申明TRUNCATE TABLE,因为该申明实际上将删除并重建该表……但不会触发它!而是使用synchro_data_xxxx的DELETE。
然后触发器通过执行页面同步在iTop对象和临时表的副本之间执行“synchro/[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_exec.php]synchro_exec.php[/url]”(无论是在命令行模式下还是通过调用网页(例如使用wget))。
使用synchro_import填充synchro_data_xxxx 表
看到:[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import.php[/url] 动态参数的[ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_import.php]synchro_import.php[/url] 触发器 [ ttps://www.itophub.io/wiki/page?id=2_7_0%3Aadvancedtopics%3Asynchro_exec.php]synchro_exec.php[/url] 默认
如何指定相关对象的列表(链接集)
一些类具有称为链接集的属性。示例:UserLocal.profile_list
您可以通过在相应的列中写入所有信息来动态这些列表:
这是一个示例,指定登录名将具有一个简档:'门户用户'
INSERT login, profile_list INTO data_synchro_userlocal_1 VALUES ('johndoe', 'profileid->name:Portal User;reason:Customer')...;
您还可以指定几个链接(几个角色)。
更多信息导入链接集
|