我正在尝试使用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中将输出作为"ISODate(2006-01-02T15:04:05.000Z)"
作为字符串的数据类型,但它应该是日期。因此,我需要输出作为ISODate("2006-01-02T15:04:05.000Z")
。
如果有任何办法,请提供帮助。
TIA
答案 0 :(得分:2)
我认为您需要将日期从字符串转换为Avro逻辑类型。根据{{3}},"对于PutMongoRecord,您所要做的就是使用长注释作为时间戳或注释为日期的int,并确保记录阅读器已完成为时间戳和日期正确配置的格式选项"
答案 1 :(得分:0)
@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