【问题标题】:How to insert Date into mongoDB using NIFI如何使用 NIFI 将日期插入 mongoDB
【发布时间】:2018-02-12 08:11:18
【问题描述】:

我正在尝试使用 NIFI 1.4 将数据从 csv 文件添加到 mongoDB。 CSV 文件包含如下数据:

101,ISODate(2006-01-02T15:04:05.000Z)

我正在使用PutMongoRecord 处理器和CSVReader 1.4.0 控制器服务。 我已将我的架构定义为:

{"name" :"agent","type":"string"},
{"name" :"transactiondate","type":"string"}

因此,我在 mongoDB 中将 output 作为 "ISODate(2006-01-02T15:04:05.000Z)" 作为数据类型作为 String 但它应该是 Date 。因此,我需要 output 作为 ISODate("2006-01-02T15:04:05.000Z") 。 如果有任何方法,请提供帮助。

TIA

【问题讨论】:

    标签: mongodb csv apache-nifi isodate


    【解决方案1】:

    我认为您需要将日期从字符串转换为 Avro 逻辑类型。根据this,“对于PutMongoRecord,您所要做的就是使用一个长注释作为时间戳或一个整数注释作为日期,并确保记录阅读器为时间戳和日期正确配置了格式选项。”

    【讨论】:

      【解决方案2】:

      @mattyb 答案是完美的。只是在这里添加更多细节,因为我遇到了同样的情况并且能够解决它。

      1.这是一个关于如何在 AVRO 架构中处理日期和时间戳的示例。

      {
        "type": "record",
        "namespace": "com.example",
        "name": "TestRecord",
        "fields": [
          { "name": "FLOAT_TO_INT", "type": "float" },
          { "name": "TIMESTAMP"   , "type": { "type":"long", "logicalType":"timestamp-millis"} },
          { "name": "TEXT"        , "type": "string" },
          { "name": "DATE"        , "type": { "type":"int", "logicalType":"date"} }
        ]
      } 
      

      2.在您的 CSV 阅读器配置中,使用上述 AVRO 模式,并在日期格式中指定 yyyy-MM-dd

      【讨论】:

        猜你喜欢
        • 2018-09-01
        • 2016-01-21
        • 1970-01-01
        • 2016-02-14
        • 1970-01-01
        • 1970-01-01
        • 2015-01-10
        • 2018-01-18
        • 1970-01-01
        相关资源
        最近更新 更多