欢迎讨论:用Kettle在数据集成中进行分区!

-发帖者:
-参与讨论....
【主题】:用Kettle在数据集成中进行分区

让我们假设,我们用简单的数据集进行了一次转换,该数据集具有印度城市明智的州人口数。我们需要获取总人口数。我们使用“ 内存按步骤分组” 构建一个简单的转换文件,并根据State对源数据进行分组以获得总人口数。

KTR找到明智的人口计数国家

现在,假设你有少量的源数据,而不是源中的数百万条记录。因此,逐步进行内存分组将花费你巨大的成本。我们不是简单地通过,而是利用多核计算机的功能。

Pentaho将为你提供一个定义步骤中数据副本数的选项。在Pentaho中按步骤定义内存组的多行是使用多核计算机的一种方法。因此,请按以下步骤对“内存组”进行以下操作:

>>  右键单击 “内存分组依据
 ” >>选择“更改份数以开始
 ” >>将值设置为 3或大于1的任何数字

将份数输入到3

但是,一旦执行了上面的转换,我们就会看到结果有很大的不同,这并不是预期的。这是因为源步骤是按循环方式将数据逐步发送到“内存组”的3个副本。这些内存组中的每一个都以自己的方式逐步处理数据,最后发送输出。这是PDI中的并行性,但是在这种情况下,我们没有得到正确的输出。

因此,我们在这里要做的就是对数据进行分区。这里的想法是将类似种类的数据发送到每个分区,然后通过分组而不是根据上述数据进行分组。它像3 Memory Step by Step,每个分区都有分区数据,例如分区1中的西孟加拉邦,分区2中的喀拉拉邦,等等。

在PDI中创建分区

创建分区要遵循的步骤:

>>转到转换的
设计”选项卡>>在“分区模式”选项卡中,创建一个“新模式
 ” >>输入“分区名称”。它可以是任何可读的名称。
>>输入分区ID或所需的分区数。
到目前为止,对分区没有命名约束。 
只需给出分区1,分区2等。

完成上述步骤后。现在继续进行转换并执行以下操作:

>>右键单击“内存组”,一步步
 >>选择“分区”。
>>选择“分区”方法。选择除法余数>>选择分区架构。
这是上面在“设计”选项卡中创建的所有分区架构的列表。
>>接下来,你需要选择要分区的字段。
选择一个合适的。

最后,你将看到类似以下的内容:

带有分区架构和数据的KTR

执行后,返回的结果是正是我们需要的:

最终分区输出

 发表评论     发表时间:『2019-11-14 09:35:46』


扫描二维码关注网站最新动态