gpt4 book ai didi

mysql - 在 Kettle 上使用多个数据库连接运行相同的转换

转载 作者:行者123 更新时间:2023-11-29 06:09:45 34 4
gpt4 key购买 nike

我有很多数据库 (+100),每个数据库都具有相同的结构和不同的连接。我正在使用 Kettle 在不同的数据库中运行转换以创建数据仓库。

如何使用不同的连接自动运行相同的转换?

我已经证明了这一点Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel但它只接受 csv 中的一行。

我应该创建一个循环,还是需要创建一个脚本?

如有任何帮助,我们将不胜感激。(对不起我的英语)

最佳答案

你可以用一个循环来完成。但是,不要担心,用 Pentaho 做到这一点并不难。

首先,您将使用 JOB 来创建循环:

开始 --> Transform_that_holds_parameters --> Transform_to_run_in_a_loop

您可以猜到,在每个数据库上同样运行的转换是此流中的最后一个。但是我们需要在该 Job Entry 上设置两个 Advanced 标志:

  • 为每个输入行执行?
  • 将之前的结果复制到参数中?

然后我们需要使用以下结构构建我们的Transform_that_holds_parameters:

Some_sort_of_input --> copy_rows_to_result

在这里,您必须从某个地方获取所有连接参数,无论是 Excel 文件还是另一个数据库中的表格。但是,一旦您对这些数据进行分级,请确保为要在其中运行转换的每个数据库留出 1 行。好吗?

将其连接到“将行复制到结果”步骤,此步骤将数据发送回我们的作业,如果您还记得的话,我们的下一个转换设置为“对每个输入行执行”和“将先前的结果复制到参数” .

现在,请牢记进入该转换的最后一步的列名是什么,您将在下一步中需要它们。

回到我们的 JOB 并转到 Transform_to_run_in_a_loop 的属性,打开参数并使用我们刚刚复制到结果的列填写“参数”和“流列名称”列。

在您的转换中,您需要使用完全相同的名称设置相同的参数。并在您的连接设置中使用这些参数。

完成,现在您将拥有第一个转换设置所有参数,第二个转换针对您拥有的每个数据库配置运行。

关于mysql - 在 Kettle 上使用多个数据库连接运行相同的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025504/

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