手工编码的ETL与talend开放工作室

时间:2016-04-28 13:50:51

标签: etl talend

我开发了一个带shell scripting的ETL。

之后,我发现现有解决方案Talend open studio。 我想在将来的任务中使用它。

但我的问题是我想要集成到数据库中的文件必须在结构中进行转换。这是我的结构:

19-08-02  Name                         appel    ok    hope    local  merge   (mk)   
                                                       juin    nov    sept    oct
00:00:t1  T1                            299       0      24      8      3     64
          F2                            119       0      11      8      3     62
          I1                             25       0       2      9      4     64
          F3                            105       0      10      7      3     61
          Regulated F2                    0       0       0
          FR T1                         104       0      10      7      3     61

我必须将其转换为平面文件格式。

talend是否可以在将csv文件中的数据整合到database之前进行多次转换?

修改

这是我想在将数据集成到数据库之前实现的平面文件的示例(仅涉及第一行):

Timer,T1,F2,I1,F3,Regulated F2,FR T1
00:00:t1,299,119,25,105,0,104  
00:00:t2,649,119,225,165,5,102
00:00:t5,800,111,250,105,0,100

1 个答案:

答案 0 :(得分:2)

我们可以将任务分成三部分,即提取,转换,加载。

摘录

首先,您必须了解如何连接到源。使用Talend可以连接到不同类型的源,如数据库,XML文件,平面文件,csv等。它们被称为 tFileInput tMySQLInput ,仅举几例

<强>变换

然后你必须告诉Talend如何将数据拆分成列。在您的示例中,这可能是空格,尽管分割可能很困难,因为字段Name也被空格分割。

之后,由于它是一个行到列的转置,您必须在 tJavaRow 组件中编写一些Java代码,或者可以使用条件映射的 tMap 组件: (row.Name.equals("T1") ? row.value : 0)

<强>加载

然后转换将完成,您的数据可以存储在数据库,目标文件等中。例如,此处的组件将被称为 tFileOutput tOracleOutput 。< / p>

<强>结论

是的,可以在Talend中构建您的ETL过程。如果你是Talend的新手,那么转置可能会有点复杂。但是如果你记住Talend逐行处理数据(正如你的脚本所做的那样,我认为)这不是一个大问题。