如何读取CSV文件,并使用骡ESB,骡工作室数据插入到PostgreSQL的(How to read

2019-07-05 12:43发布

我是很新的骡子工作室。

我面临的一个问题。 我有,我需要使用骡子Studio中的CSV文件,以PostgreSQL数据库插入数据的要求。

我使用的骡子工作室CE(版本:1.3.1)。 我在谷歌查询版和发现,我们可以使用数据映射器这样做。 但它仅适用于EE。所以我不能使用它。

此外,我在网上我检查,发现了一篇文章使用Mule的工作室从PostgreSQL的(入)读取数据并将其写入到文件(出站) -一步逼近步骤 。

这似乎是可行的,但我的要求是考虑到文章的正好相反。 我需要的文件为入站数据,而作为DATABSE出站组件。

什么是这样做的方式吗?

任何一步一步的帮助(比如哪些组件使用)和指导,将不胜感激。

Answer 1:

下面是一个插入一个两列CSV文件的示例:

<configuration>
    <expression-language autoResolveVariables="true">
        <import class="org.mule.util.StringUtils" />
        <import class="org.mule.util.ArrayUtils" />
    </expression-language>
</configuration>

<spring:beans>
    <spring:bean id="jdbcDataSource" class=" ... your data source ... " />
</spring:beans>

<jdbc:connector name="jdbcConnector" dataSource-ref="jdbcDataSource">
    <jdbc:query key="insertRow"
        value="insert into my_table(col1, col2) values(#[message.payload[0]],#[message.payload[1]])" />
</jdbc:connector>

<flow name="csvFileToDatabase">
    <file:inbound-endpoint path="/tmp/mule/inbox"
        pollingFrequency="5000" moveToDirectory="/tmp/mule/processed">
         <file:filename-wildcard-filter pattern="*.csv" />
    </file:inbound-endpoint>

    <!-- Load all file in RAM - won't work for big files! -->
    <file:file-to-string-transformer />
    <!-- Split each row, dropping the first one (header) -->
    <splitter
        expression="#[rows=StringUtils.split(message.payload, '\n\r');ArrayUtils.subarray(rows,1,rows.size())]" />
    <!-- Transform CSV row in array -->
    <expression-transformer expression="#[StringUtils.split(message.payload, ',')]" />
    <jdbc:outbound-endpoint queryKey="insertRow" />
</flow>


Answer 2:

为了读取CSV文件,并使用数据插入到PostgreSQL的 ,所有你需要遵循以下步骤:你需要有下面的东西作为先决条件

  • PostgreSQL的
  • PostgreSQL的JDBC驱动程序
  • Anypoint Studio IDE中和
  • PostgreSQL中要创建一个数据库

然后里面工作室Anypoint Studio中创建骡子流量配置Postgre SQL JDBC驱动程序中的全局元素属性如下:

  • 第1步:在文件部件裹CSV文件源
  • 步骤2:对象数组和字符串之间的转换
  • 第3步:分割每行
  • 步骤4:变换CSV行中阵列
  • 第5步:转储到目标数据库


Answer 3:

我想建议Dataweave。

脚步

  1. 读取使用FTP连接器/端点文件。

  2. 变换使用Data编织。

  3. 使用数据库连接器,将数据存储在数据库中。



文章来源: How to read CSV file and insert data into PostgreSQL using Mule ESB, Mule Studio