gpt4 book ai didi

pentaho - PDI 或 mysqldump 提取数据而不阻塞数据库也不会获得不一致的数据?

转载 作者:行者123 更新时间:2023-11-29 12:02:43 29 4
gpt4 key购买 nike

我有一个定期运行的 ETL 流程。我使用kettle(PDI)从源数据库中提取数据并将其复制到阶段数据库。为此,我使用表输入和表输出步骤进行多种转换。但是,我认为如果在此过程中修改源数据库,我可能会获得不一致的数据,因为这样我就无法获得数据的快照。另外,我不知道源数据库是否会被阻止。如果提取需要几分钟(并且确实需要几分钟),这将是一个问题。 PDI 的优点是我可以只选择必要的列并使用时间戳来仅获取新数据。

另一方面,我认为带有 --single-transaction 的 mysqldump 允许我以一致的方式获取数据,并且不会阻塞源数据库(所有表都是 innodb)。缺点是我会得到不必要的数据。

我可以使用 PDI,还是需要 mysqldump?

PD:我需要从特定数据库读取特定表,所以我认为 xtrabackup 这不是一个好的选择。

最佳答案

However, I think I could get inconsistent data if the source database is modified during the process, since this way I don't get a snapshot of the data

我认为“表输入”步骤没有考虑您阅读时发生的任何修改。尝试一个简单的实验:

获取具有单个表输入和表输出的 .ktr 文件。尝试将数据加载到目标表中。在数据加载过程中,在源数据库中插入少量记录。你会发现那些记录没有读入目标表。 (注意我尝试使用 postgresql 数据库,读取的行数为:1000000)

现在,对于您的问题,我建议您使用 PDI,因为它可以让您在版本控制、序列、SCD 和所有 DWBI 相关事件方面更好地控制数据。 PDI 使加载到舞台环境变得更加容易。而不是简单地转储整个表。

希望有帮助:)

关于pentaho - PDI 或 mysqldump 提取数据而不阻塞数据库也不会获得不一致的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095059/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com