DIY数据库复制的危险
数据库复制是一个特殊的实例数据集成,并包含从数据库中提取和加载数据到数据仓库。数据在中央存储库中,您可以模拟和分析数据以在您的操作中产生可操作的洞察力。
但是,构建数据流水线以将来自运营数据库的数据移动到数据仓库是一个高度涉及的过程,包括解决和构建功能的广泛的非明显技术挑战,包括:
增量更新
幂等
架构更新
历史模式
数据类型映射
复制和同步监控
加载优化
安全
可扩展性
支持和帮助
为什么数据库复制很复杂
如果您的数据流水线没有充分解决上面列出的挑战或功能,那么您的数据运营将遭受不佳的性能,严重的数据完整性问题和不流化的贡献者。这是原因。
增量更新
每次更新目标时,您的数据流水线都不应该在每次更新目标时都会为每个数据源进行完整副本。虽然您第一次同步数据时,必须完全同步,但常规执行它将:
增加每个SYNC的持续时间,使得不可能提供快速或实时更新
使用否则使用操作和分析所需的资源越击源数据库和目标数据仓库
消耗过多的网络带宽
当您添加更多数据源和数据的整体量增加时,这些问题的增长率均匀增长。
解决方案仅仅是同步已经更新的数据,而不是整个数据集,即执行增量更新。在数据库分析的情况下,这通常意味着查询变更乐包含更新,新记录和已删除记录的完整历史记录。
幂等
幂等意味着如果您多次执行操作,则初始执行后结果不会更改。一个很好的例子是一个电梯控制台 - 将按钮推动多次,将与推动它的推动相同的结果。
在数据管道方面,幂等防止创建重复记录当数据同步失败时,必须重复。
没有idemotence,已经失败且必须重复的数据同步将产生重复或冲突的数据。这将产生以下问题:
误导性或错误的见解 - 计数,排名订单,总和,平均值和其他指标将被抛出
破碎的操作 - 特别是如果他们依赖记录和标识符之间的一对一对应关系
浪费的存储空间和计算带宽 - 您将最终存储更大量的数据
数据同步可能由于源中的中断或错误而失败,即数据流水线和目标中的操作数据库。
架构更改
您的来源将随着时间的推移而发展,添加,删除或修改字段或表格。您的数据流水线必须在不破坏旧数据的情况下协调源和目的地之间的更改。
有几个解决这个问题的不同实例的解决方案(如软删除),其中标记了弃用字段或表格而不是删除。但是数据库字段亚值如何随时间变化的数据库字段?
历史模式
这能够跟踪对度量的更改随着时间的推移对于学习组织的过去至关重要,特别是识别诸如此类的趋势随着时间的推移,使用情况和账户的状态和增长的变化。如果在源处的特定字段发生变化,如果您不跟踪更改,旧值将永远丢失。对于追溯分析可能是必不可少的表格,您需要找到某种方式跟踪每个记录的每个版本并重新审视过去的版本。
数据类型映射
并非源和目的地之间的所有数据类型都将兼容。您必须创建数据类型的层次结构,并为源中的每个字段分配目标中的最小适当大小。超过一个字段和几百或数千行,每个记录的16个字节或8个字节之间的差异在存储或内存使用方面都不意味着很多。然而,这些问题加起来超过多个字段和数百万行。
复制和同步监控
您的数据流水线应允许您通过在上次同步和该同步状态时通过观察来确定数据的新鲜度。它也应该允许您设置同步的间隔。如果没有某种图形用户界面,您将完全依赖于您的工程师来跟踪此信息。
优化
您的数据管道有很多方法是瓶颈。如果您的数据管道在云基础架构上运行(它应该),您需要优化管道,查询,数据仓库和数据库的性能,因为您的数据遍历各种网络。最终,您必须确定成本和性能概况适合您的需求并相应地调整系统。
这种微积分因安全措施而进一步复杂化SSH隧道那堡垒主持人和其他安全网络池点。
安全
关于安全主题,有许多考虑因素除了上面列出的网络交通问题外。数据存储,访问控制,列阻塞和哈希,数据治理,SAML访问,法规合规性,以及更多所有人都值得关注。
支持和帮助
没有技术是无可救药的。当您的数据流水线不可避免地破坏时,您的分析师将需要工程师和其他专家的注意力来维护和支持。
可扩展性
随着数据成熟的使用,您的数据需求将不可避免地以规模增长。您需要访问更多硬件并解决上面列出的每个问题的更大,更复杂的版本。
支持自动数据集成数据库分析
从数据库中提取,加载和转换数据应该是无痛的并且涉及最少的人为干预。即使在最好的情况下,数据集成的Homespun解决方案也将是痛苦的高度劳动密集型。
在Fivetran,我们为数据集成提供自动的现成解决方案。考虑A.免费试用或者演示,并查看自己如何规避整合和分析数据库数据中固有的所有并发症和挑战。