使用ETL工具生成随机数据

时间:2014-10-14 12:11:44

标签: etl talend

我希望生成适合业务规则的随机数据,以了解数据的外观。

数据大约有10列和1000条记录。

列值也可能依赖于另一个值,并且可能存在影响数据的其他业务规则。

示例数据可能如下所示:

ID Deal_ID    No_of_trade price quantity start_date end_date
1  2014-10-14 50          100   70       2014-10-14 2014-10-15
2  2014-10-15 80          105   90       2014-10-15 2014-10-17

在此示例中,start_date依赖于deal_id(deal_date)和 end_date取决于start_date

1 个答案:

答案 0 :(得分:1)

为此,您需要使用tRowGenerator为您提供数据的主要部分,然后使用tMap对此数据进行一些转换,以便为您提供完整的输出数据。

一个简单的工作可能看起来像:

Job layout

在此我们将tRowGenerator配置为:

tRowGenerator configuration

其中给出了Deal_id的日期,交易数量,价格和数量的随机整数,最后是我们将start_date添加到我们end_date的交易天数的随机整数获得Deal_id

在此之后,我们使用ID字段上的tSortRow进行排序,以便它们按升序排列。

最后我们使用tMap将数据转换为您想要的输出:

tMap configuration

这为我们提供了使用Talend中Numeric.sequence功能的start_date,将Deal_id设置为与end_date相同,然后设置start_date是我们在tRowGenerator中生成的.---+----------+-----------+-----+--------+----------+----------. | tLogRow_7 | |=--+----------+-----------+-----+--------+----------+---------=| |id |Deal_Id |No_of_Trade|Price|Quantity|Start_Date|End_Date | |=--+----------+-----------+-----+--------+----------+---------=| |1 |01-10-2014|86 |144 |136 |01-10-2014|06-10-2014| |2 |02-10-2014|59 |138 |114 |02-10-2014|04-10-2014| |3 |03-10-2014|86 |103 |51 |03-10-2014|09-10-2014| |4 |04-10-2014|37 |126 |50 |04-10-2014|08-10-2014| |5 |04-10-2014|49 |115 |80 |04-10-2014|06-10-2014| |6 |04-10-2014|54 |112 |26 |04-10-2014|08-10-2014| ... |95 |23-12-2014|2 |138 |72 |23-12-2014|27-12-2014| |96 |23-12-2014|94 |123 |120 |23-12-2014|26-12-2014| |97 |26-12-2014|33 |107 |131 |26-12-2014|28-12-2014| |98 |27-12-2014|36 |125 |55 |27-12-2014|02-01-2015| |99 |29-12-2014|59 |109 |55 |29-12-2014|03-01-2015| |100|31-12-2014|44 |141 |88 |31-12-2014|02-01-2015| '---+----------+-----------+-----+--------+----------+----------' 之后的随机生成天数。

输出看起来像这样:

{{1}}