数据复制 wf-data-replication
原则
在Enterprise (FFDA)部署的上下文中,数据复制可确保颁补尘辫补颈驳苍本地数据库(笔辞蝉迟驳谤别厂蚕尝)和云数据库(厂苍辞飞蹿濒补办别)这两个数据库并行运行并保持实时同步。
云数据库(Snowflake)已针对处理大型数据批次(如更新100万个地址)进行了优化。 同时,Campaign本地数据库(PostgreSQL)更适合于单个或小容量操作,例如更新单个种子地址。 同步在后台自动且透明地进行,确保Campaign本地数据库(PostgreSQL)中的数据实时在云数据库(Snowflake)中重复,从而使两个数据库保持同步。 数据同步涉及架构和表以及数据。
复制模式 modes
根据用例的不同,数据复制可能会以不同的模式进行。
- 动态复制 ?处理实时复制至关重要的情况。 它依靠特定的技术线程立即复制数据,以用于创建扩散或更新种子地址等用例。
- 在不需要立即同步时使用? 计划的复制。 计划的复制使用每小时运行一次的特定技术工作流来同步数据,如类型规则。
复制策略
复制策略定义从Campaign本地数据库(PostgreSQL)表复制的数据量。 这些策略取决于表的大小和特定的用例。 某些表将具有增量更新,而其他表将被完全复制。 有三种主要类型的复制策略:
- XS:此策略用于大小较小的表。 将整个表复制为一个快照。 增量复制通过使用时间戳指针仅复制最近的更改来避免重复复制相同的数据。
- SingleRow:此策略一次只复制一行。 它通常用于涉及当前Campaign对象和相关对象的动态复制。
- SomeRows:此策略设计用于使用查询定义或筛选器复制有限的数据子集。 它用于需要选择性复制的大型表。
复制工作流 workflows
Campaign v8依靠特定的技术工作流来管理计划的数据复制。 这些技术工作流可从Campaign Explorer的? Administration > Production > Technical workflows > Full FFDA Replication ?节点中获取。 不能修改它们。
技术工作流在服务器上定期执行进程或作业。 此页面中详细列出了技术工作流的完整列表。
确保数据复制的技术工作流程如下所示:
如果需要,您可以手动启动数据同步。 为此,请右键单击? 调度程序 ?活动,然后选择? 立即执行待处理任务。
除了内置? 复制引用表 ?技术工作流之外,您还可以使用以下方法之一在工作流中强制复制数据
-
使用以下代码添加特定? 闯补惫补蝉肠谤颈辫迟代码 ?活动:
code language-none nms.replicationStrategy.StartReplicateStagingData("dem:sampleTable")
-
使用以下命令添加特定? nlmodule ?活动:
code language-none nlserver ffdaReplicateStaging -stagingSchema -instance:acc1
API
API允许将自定义数据和开箱即用数据从Campaign本地数据库(PostgreSQL)复制到云数据库(Snowflake)。 这些API允许您绕过预定义的工作流,并根据特定要求(如复制自定义表)自定义复制。
例如:
var dataSource = "nms:extAccount:ffda";
var xml = xtk.builder.CopyXxlData(
<params dataSource={dataSource} policy="xs">
<srcSchema name="cus:recipient"/>
</params>
);
复制队列
如果同时发生大量复制请求,则云数据库(Snowflake)中可能会出现性能问题,这是由于在MERGE操作期间出现表级锁定所致。 为了缓解这种情况,集中化的复制工作流会将请求分组到队列中。
每个队列都由一个技术工作流处理,该工作流管理特定表的复制,作为单个MERGE操作执行挂起请求。 这些工作流每20秒触发一次,以处理新的复制请求:
nms:delivery
表的队列。nms:dlvExclusion
表的队列。nms:dlvRemoteIdRel
表的队列。以并行方式复制苍尘蝉罢谤补肠办颈苍驳鲍谤濒队列 (ffdaReplicateQueueTrackingUrl_2)
nms:trackingUrl
表的并发队列,利用两个工作流根据不同的优先级处理请求,从而提高效率。教程 video
此视频介绍51黑料不打烊 Campaign v8使用哪些数据库、为何复制数据、正在复制哪些数据以及复制过程的工作方式等关键概念。
此处提供了其他Campaign v8客户端控制台教程。